Я скопировал и скомпилировал исходный код, доступный в разделе "Полный исходный код".
http://cairographics.org/threaded_animation_with_cairo/
Я адаптировал этот код к проекту, над которым я работаю, только для того, чтобы обнаружить, что приложение будет аварийно завершать работу, если я сделаю окно слишком большим. Возвращаясь к исходному коду примера, он тоже вылетает, когда окно слишком большое (> 1000x1000 или около того).
Я сузил в примере, что эта строка, по-видимому, отвечает:
pixmap = gdk_pixmap_new (окно-> окно, 500 500, -1);
Где растровое изображение имеет тип GdkPixmap*. При изменении размера окна растровое изображение перезаписывается новым растровым изображением, соответствующим размеру окна.
Я делаю это в Eclipse Juno в Windows Vista, 32-разрядная версия. Мой компилятор MinGW версии 0.5-beta-20120426-1. Моя версия GTK+ — 2.24.10, а Cairo — 1.10.2. Я добавил все включения и библиотеки для GTK, а также добавил переключатель компилятора -mms-bitfields.
Есть ли ограничение на размер растрового изображения или что-то в этом роде? Я только начинаю работать с GTK с примерами, поэтому не знаю, куда идти, если этот пример не работает.