Skip to content
  • Colin Walters's avatar
    Add _new_from_bytes() and _read_pixels() API, handle read-only pixbufs · 862e3890
    Colin Walters authored and Matthias Clasen's avatar Matthias Clasen committed
    GdkPixbuf is an old API that predates introspection and GBytes.  It
    has some confusion around whether or not pixbuf data is mutable or
    not.  The _new_from_data() API takes a *const* pointer, but it's not
    copied, and _get_pixels() returns a non-const copy of the same
    pointer.
    
    There are several cases where we get read-only data, such as a
    GResource.  For language bindings, _new_from_data() doesn't work
    because the array may be a temporary copy only allocated for the call.
    
    In order to support a clean _new_from_bytes() API, we need to add the
    concept of a read-only pixbuf into the core.  The fundamental hack
    here is that _get_pixels() now causes an implicit copy.
    
    For the cases where we don't want to copy, add a new
    gdk_pixbuf_read_pixels() that returns a proper const pointer.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=732297
    862e3890