0

「フルソース」というタイトルのセクションで利用可能なソースコードをコピーしてコンパイルしました。

http://cairographics.org/threaded_animation_with_cairo/

このコードを作業中のプロジェクトに適合させたところ、ウィンドウを大きくしすぎるとアプリがクラッシュすることがわかりました。元のサンプルコードに戻ると、ウィンドウが大きすぎる(> 1000x1000程度)とクラッシュします。

この行が原因であると思われる例を絞り込みました。

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

pixmapのタイプはGdkPixmap*です。ウィンドウのサイズを変更すると、ウィンドウのサイズである新しいピックスマップでピックスマップが上書きされます。

私はこれをWindowsVistaのEclipseJuno、32ビットで行っています。私のコンパイラは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 以降で修正されています。クラッシュはすぐに発生しますか、それともしばらくしてから発生しますか? すぐにクラッシュする場合、それは別の問題です。それ以外の場合は、メモリ消費を見てください。

デバッグ シンボルを使用して GTK をコンパイルすると、バグを絞り込むのにも役立ちます...

ところで、window->windowクラッシュが発生した時点で有効ですか?

于 2012-12-17T11:00:07.300 に答える