1
GtkDrawingAreaにあらかじめ計算されたヒートマップ画像をレンダリングするGtk2プログラムを作成しています。この手順は一般的に次のようなものです。カイロ画像がGtkDrawingAreaにペイントされない
- カイロの画像面にヒートマップ画像を生成します。
- GtkDrawingAreaのイベントを公開します。コールバックを露出で
- は、次の関数が呼び出される: 最初の関数、無地グレー色に明確な前図中
:第二の機能で
cairo_t* cr = gdk_cairo_create(widget->window);
cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
cairo_paint(cr);
cairo_destroy(cr);
は、プリレンダリングされた画像をペイント:
第三の機能でcairo_t* cr = gdk_cairo_create(widget->window);
cairo_set_source_surface(cr, buffer_surface, 0, 0);
cairo_paint(cr);
cairo_destroy(cr);
、プロットいくつかのベクトルの適応症:
cairo_t* cr = gdk_cairo_create(widget->window);
cairo_move_to(cr, xxx, xxx);
cairo_line_to(cr, xxx, xxx);
cairo_line_to(cr, xxx, xxx);
cairo_line_to(cr, xxx, xxx);
......
cairo_stroke(cr);
cairo_destroy(cr);
ただし、第1および第3の関数のみが効果を持つため、第2の関数の画像ペイントは表示されません。結果のGtkDrawingAreaは黒い線で中間色の背景のみを持ちます。
私はそれをpngファイルにエクスポートしたものの、ソース画像サーフェスにはコンテンツが入っていると確信しています。なぜGUIで表示されないのですか?