当窗口太大或最大化时,Cairo / GTK示例代码崩溃

时间:2012-12-17 02:54:53

标签: gtk mingw cairo gtk2 pixmap

我已经复制并编译了标题为“Full Source”的部分中提供的源代码。

http://cairographics.org/threaded_animation_with_cairo/

我将此代码改编为我正在处理的项目,但发现当我使窗口太大时应用程序会崩溃。回到原始示例代码,当窗口太大(> 1000x1000左右)时,它也会崩溃。

我在示例中缩小了这条线似乎是负责任的:

pixmap = gdk_pixmap_new(window-> window,500,500,-1);

pixmap的类型为GdkPixmap *。调整窗口大小会使用一个与窗口大小相关的新像素图覆盖像素图。

我在Windows Vista中的Eclipse Juno中执行此操作,32位。我的编译器是MinGW版本0.5-beta-20120426-1。我的GTK +版本是2.24.10,显然Cairo是1.10.2我添加了GTK的所有包含和库,还添加了编译器开关-mms-bitfields。

pixmap的大小是否有限制?我刚刚开始使用GTK示例,所以如果这个例子不起作用,我不知道该去哪里。

1 个答案:

答案 0 :(得分:1)

在Debian上尝试使用GTK 2.24.10和cairo 1.12.2,它可以工作(没有崩溃),在1280x1024显示器上有一个最大化的窗口。但是,我知道有一个memory leak on GTK for Windows,其中has been fixed自GTK 2.24.14起。你的崩溃很快就会发生,或者经过一段时间后会发生吗?如果它很快崩溃,那就是另一个问题,否则只需看一下内存消耗。

使用调试符号编译GTK也有助于缩小错误...

BTW,崩溃发生时window->window是否有效?