!!! GDKの概要 !! GDK (GIMP Drawing Kit) * GTKのグラフィック機能 * 線を描いたり、四角を描いたり、丸を描いたり * GDKの関数は、GLibの関数をそのまま呼び出しているものが多い !! Cairo(A Vector Graphics Library) * 最近はGDKの関数で直接描かずに,Cairoを使って書く * ベクターグラフィックスなのでジャギーがでない * 多くの出力デバイスに対応 !! 画像 * 2次元配列に「色」が格納されている * 左上が原点 * 横がx軸(左から右に増加、ピクセル) * 縦がy軸(上から下に増加、ライン) * 配列の1つを「ピクセル(pixel)」と呼ぶ ((img gdk-apple2.jpg)) !! GDK&Cairoで描く * 手で描くのと比較すると、 || |---手で描く---|---GDKで描く---|---cairoで描く--- ||---媒体---| 画用紙 |[[GDK2013::ドローアブル]]|[[GDK2013::ドローアブル]] ||---道具---|絵の具、筆|[[GDK2010::グラフィックコンテキスト]]|[[GDK2013::Cairo]] ||---手段---|手|[[GDK2010::描画関数]]|[[GDK2013::Cairo]] ((img Gdk-and-Cairo.png)) !! GDKで絵を描く仕組み * ウィンドウ上に絵を書くときは直接ウィンドウへ描画せず、ドローイングエリアウィジェットを介して行う * 画面の再描画(exposeイベント)などの処理はユーザが用意しなければならない + ドローイングエリアとピクスマップを作成 [[GDK2013::ドローアブル]]
((img gdk-drawingB1.jpg)) + exposeイベントの設定 [[GDK2013::exposeイベント]]
((img gdk-drawingB1B.jpg)) + ピクスマップに描画 [[GDK2013::Cairo]]
((img gdk-drawingB2.jpg)) + gtk_main()をした後に、exposeイベントが起こったらコピー [[GDK2013::exposeイベント]]
((img gdk-drawingB3B.jpg)) !! サンプル ! ソースプログラムの所在 * 以下のsvnのリポジトリ ** https://svn.cis.iwate-u.ac.jp/svn/csd/nakaya/cairo_sample/ ! 実行手順 8< #svnから持ってくる(実行した直下にcairo_sampleディレクトリができる) svn co https://svn.cis.iwate-u.ac.jp/svn/csd/nakaya/cairo_sample/ #持ってきたディレクトリに移動 cd cairo_sample #make make #実行 ./cairo_sample >8 !! リンク * [GDK Reference Manual|http://developer.gnome.org/gdk2/2.24/] ** GDK 2.24.22対応(システムは2.24.13、2013/10/24現在)、英語 * [Cairo Reference Manual|http://cairographics.org/manual/] ** Cairo 1.12.16対応(システムは1.12.2、2013/10/24現在)、英語 * [[GDK2013::GdkPixbuf]] * [[GDK2013::アニメーション]] * [[GDK2013::イベント]]