Re: Windows GTK+ 2.24.10: Cairo contexts not rendering to surface
LRN <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
On 23.01.2017 21:17, Jeffrey Sheen wrote:
> On 23.01.2017 1:41, Jeffrey Sheen wrote:
>> On 22 Jan 2017 21:28, "LRN" wrote:
>>> On 22.01.2017 23:24, Jeffrey Sheen wrote:
>>>> Dear list,
>>>>
>>>> I'm trying to incorporate Cairo rendering into a cross-platform project.
>>>> Windows XP is a target platform for the project, so I am building against the
>>>> GTK+ 2.24.10 Bundle (20120208). N.B. This is a C/C++ implementation.
>>>>
>>>> The problem I'm having is that no Cairo backend contexts are rendering pixels
>>>> to their surfaces.
>>>>
>>>> I've tried the examples on the Zetcode guides for a PNG image surface and GTK
>>>> Window: http://zetcode.com/gfx/cairo/cairobackends/
>>>
>>> These are for GTK3, i think. For GTK2 you need to do something like this:
>>>
>>> ...
>>> g_signal_connect(G_OBJECT(darea), "expose-event",
>>> G_CALLBACK(on_expose_event), NULL);
>>> ...
>>>
>>> static gboolean
>>> on_expose_event (GtkWidget *widget,
>>> GdkEventExpose *event,
>>> gpointer data)
>>> {
>>> cairo_t *cr;
>>>
>>> cr = gdk_cairo_create (gtk_widget_get_window (widget));
>>>
>>> do_drawing (cr);
>>>
>>> cairo_destroy (cr);
>>>
>>> return FALSE;
>>> }
>>
>>
>> Thanks. I'll try the suggested syntax for the GDK Window example, and find an earlier API reference.
>>
>> However, I have also tried rendering with an image context, and the resulting PNG was blank too.
>>
>> Is it possible that I'm having the same issue here (the API has changed, but for Cairo specifically)?
>>
>> What I'll do is build against the very latest stable GTK libs, to check whether the code functions as expected in the reference examples (i.e. pixels are rendered).
>>
>> Then, given Windows XP is a target platform, what is the latest version of the Cairo libs that I can build against? N.B. I'm using Cairo in combination with Pango for image surface rendering only.
>
>
> An update:
>
> I implemented LRN's GTK+ 2 alterations to the Zetcode example (see
> also http://stackoverflow.com/questions/21102622/how-to-create-a-cairo-t-on-a-gtk-2-window).
> I compiled against the same GTK+ 2 bundle as before, and rendering to the
> widget worked.
>
> I then dropped in this code fragment into the example project to test image
> surface rendering:
> This also worked, outputting the expected PNG file.
>
> However, this same code fragment generates a blank PNG file in my main project.
> I have the same GTK-related parameters in both VS projects' settings (as per
> http://stackoverflow.com/questions/15906580/how-to-configure-gtk-on-visual-studio-2010).
>
> The only difference in output when building each is that I get a dozen linker
> warnings for my main project, all of the form:
>
> 1>gdk-win32-2.0.lib(libgdk-win32-2.0-0.dll) : warning LNK4006:
> __NULL_IMPORT_DESCRIPTOR already defined in
> gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored
> 1>gdk-win32-2.0.lib(libgdk-win32-2.0-0.dll) : warning LNK4221: This object
> file does not define any previously undefined public symbols, so it will
> not be used by any link operation that consumes this library
>
> I'd appreciate any advice.
>
I would suggest asking GTK+ people (specifically - GTK+ MSVS people on the gtk
mailing list[1]).
[1] [email protected]
--
O< ascii ribbon - stop html email! - www.asciiribbon.org
--
cairo mailing list
[email protected]
https://lists.cairographics.org/mailman/listinfo/cairo
0x6759BA74.asc
(application/pgp-keys, 3.4 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2 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 rb8= =8FDv -----END PGP PUBLIC KEY BLOCK-----
signature.asc
(application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJYhlLgAAoJEI2t6SdnWbp07D0QAKSalQmx/JbbE/enxPlcKivu y1kYcftQAUmkwBBy6lyO8oGK+hovy8XtAa1FP18XQxLUW+8fMYcKPwhYgMGbk3Mw BmhzbWeFvWR8WMV+3pq4cb7URR7/7OpE83pZLJLrW4QnD7gVceId2nuf7qOCshAR Q3IKXfcnlQYDkMLb3bwMjHsbbUWbXl1PF2kOMqKIbtw4f6/pmRcwMdDDsq1AQG+8 a/d17QypasqH4CXyhF/akemp/QO5znG3QZjFSYZHd1HKzg2DFa5Nl4lC0Uz8AJus KcC0WuQCys6EvRi6C91rpY0ezM33wCJSx2oHb9oy+ORlj3y078XZijWxBMkWRHW0 D/taiqemQmODHnrBNA/wwFwn+OpRsQD/LKLKrUjWg+5Xhh8sCRzRnF7PJXO+fG0M jKVqjq+yKMbvE5kIO781cCDt5uY/6ap6y2TcbFwAf4T4OIPA5c/UzXTwLnunwlOY VOqZeI2w7nfX6Lg78LU9uZhroDlV6OmtjU9aFyDs0tfiwcqr1MLCVtlGV1JKD8V7 A262N+NAI2vWtz5M/5W/6NNpWmdGaSbI95agrvEXJ7cycj6i3B8KOoBdhK3BCjaI 2mN8rVdX41uD1qAKTJ5vcTDX0MkcfvwquhZMA4JYTQRHS8Tu3r0O84+us/zvGy/J oNe1icvVx/Fuk8rA9gTh =xXOc -----END PGP SIGNATURE-----