[cairo-bugs] [Bug 30003] New: surface change serial

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Sep 3 13:46:31 PDT 2010


https://bugs.freedesktop.org/show_bug.cgi?id=30003

           Summary: surface change serial
           Product: cairo
           Version: 1.9.15
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: general
        AssignedTo: cworth at cworth.org
        ReportedBy: hp at pobox.com
         QAContact: cairo-bugs at cairographics.org


What do you think of an API like:

uint32_t cairo_surface_get_change_serial(cairo_surface_t*);

where cairo surface would keep a serial that cairo increments whenever it
modifies the surface or someone calls mark_dirty().

The purpose would be to allow caching something based on the surface.
For example for an image surface, in GdkPixbuf we might cache a converted copy
of the pixels in the GdkPixbuf format. Or for GDK, it might be nice to cache an
X-server-side copy of certain images.

the intended usage is:

 cache_something(surface) {
    if (cache.serial != cairo_surface_get_change_serial(surface)) {
      cache.something = something_based_on_surface(surface);
      cache.serial = cairo_surface_get_change_serial(surface);
    }
 }

Since the serial is just checked for equality, don't think it matters that it
will wrap around eventually. may not need 32 bits. (could even keep anyone from
relying on sequence by rearranging some bits when returning the serial, to be
cute)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the cairo-bugs mailing list