言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

MinGW で cairo

Gtk の事を書いたのは cairo を使いたいがためでした。Windows で cairo の開発環境を作る一番簡単そうな方法が Gtk+/Win32 Development Environment に付いてくるやつを使う事らしい。では実験。FAQ にあるサンプルどおり hello.c を用意します。

#include <cairo.h>

int main(int argc, char *argv[])
{
  cairo_surface_t *surface;
  cairo_t *cr;
  
  surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 360, 80);
  cr = cairo_create(surface);
  
  cairo_select_font_face(cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
  cairo_set_font_size(cr, 64.0);
  cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
  cairo_move_to(cr, 10.0, 50.0);
  cairo_show_text(cr, "Hello, world");
  cairo_destroy(cr);
  cairo_surface_write_to_png(surface, "hello.png");
  cairo_surface_destroy(surface);
  
  return 0;
}

コンパイルはこんな感じ。pkg-config は後ろです!

cc -o hello hello.c $(pkg-config --cflags --libs cairo)

実行すると、hello.png というファイルに文字列が表示されます。cairo は、こんな風に単体では画像データを作るだけで画面表示は出来ません。

ちなみに PATH=/c/WINDOWS/system32:/c/WINDOWS:/c/msys/1.0/bin して調べてランタイムは iconv.dll libfontconfig-1.dll libpng12.dll zlib1.dll libcairo-2.dll libfreetype-6.dll libxml2.dll で、3.3 M 程でした。