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