0

我已经复制并编译了标题为“完整源代码”部分的源代码。

http://cairographics.org/threaded_animation_with_cairo/

我将此代码修改为我正在处理的项目,结果发现当我将窗口设置得太大时应用程序会崩溃。回到最初的示例代码,当窗口太大(> 1000x1000 左右)时它也会崩溃。

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

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

其中 pixmap 的类型为 GdkPixmap*。调整窗口大小会用与窗口大小相同的新像素图覆盖像素图。

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

像素图的大小有限制吗?我只是从 GTK 开始,所以如果这个例子不起作用,我不知道该去哪里。

4

1 回答 1

1

在 Debian 上尝试使用 GTK 2.24.10 和 cairo 1.12.2,它可以工作(没有崩溃),在 1280x1024 显示器上具有最大化的窗口。但是,我知道GTK for Windows 上存在内存泄漏,自 GTK 2.24.14 以来已修复。你的崩溃是很快发生的,还是再过一段时间?如果很快就崩溃了,那就是另一个问题,否则就看一下内存消耗。

Compiling GTK with debug symbols would also help to narrow down the bug...

BTW, is window->window valid at the time the crash happens?

于 2012-12-17T11:00:07.300 回答