Hi,

Le 18/02/2013 11:10, Rena a écrit :
> Hi, just joined the mailing list, been using GTK and related projects
> for a while now. Recently I've been developing a Game Boy emulator
> that uses GtkDrawingArea and GdkPixbuf to display the game screen.
> 
> In addition to the game output I want to also be able to draw text and
> shapes on the display window, and Cairo seems to be the ideal way to
> draw shapes. I'm already using Cairo to copy the Pixbuf to the
> GtkDrawingArea, so that seems like a good sign that Cairo and
> GdkPixbuf should interact nicely.
> 
> However, it doesn't look like they should be able to interact at all,
> as they don't seem to be able to agree on a pixel format:
> http://developer.gnome.org/gdk-pixbuf/stable/gdk-pixbuf-Image-Data-in-Memory.html#gdk-pixbuf-new-from-data
> "Currently only RGB images with 8 bits per sample are supported."
> http://developer.gnome.org/gdk-pixbuf/stable/gdk-pixbuf-The-GdkPixbuf-Structure.html#image-data
> "p[0] = red; p[1] = green; p[2] = blue; p[3] = alpha;"
> That seems to suggest that GdkPixbuf supports only RGB (24-bit) and
> RGBA (32-bit). But...
> 
> http://www.cairographics.org/manual/cairo-Image-Surfaces.html#cairo-format-t
> CAIRO_FORMAT_ARGB32 is ARGB ("each pixel is a 32-bit quantity, with
> alpha in the upper 8 bits..."). CAIRO_FORMAT_RGB24 is xRGB ("each
> pixel is a 32-bit quantity, with the upper 8 bits unused..."). Neither
> of those are RGB or RGBA. So, how can Cairo operate on a surface
> provided by GdkPixbuf?

I don't really get it.  You say you already use Cairo to draw your
pixbuf, but also that you can't see how to use a GdkPixbuf with Cairo?
This seems contradictory to me.

Anyway, what you want is gdk_cairo_set_source_pixbuf()[1] that does the
appropriate conversions to create a Cairo pattern from a GdkPixbuf.
Then you can use this pattern like any other Cairo pattern (e.g.
cairo_paint()), and you're done.

Hope it helps.
Colomban

[1]
http://developer.gnome.org/gdk/stable/gdk-Cairo-Interaction.html#gdk-cairo-set-source-pixbuf
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to