cairoをWindowsで直接使う #3

cairoの公式ページのFAQにあるPNGファイル出力のような形に変更するのも簡単である。

--- cairotest1.c        #
+++ cairotest2.c        #
@@ -1,13 +1,13 @@
 #include <cairo.h>
-#include <cairo-pdf.h>
 
 void draw_hello(cairo_surface_t *surf);
 
 int main (void)
 {
-    cairo_surface_t *surf = cairo_pdf_surface_create("hello.pdf", 841.68, 595.44);
+    cairo_surface_t *surf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 860, 490);
 
     draw_hello(surf);
+    cairo_surface_write_to_png(surf, "hello.png");
     cairo_surface_destroy(surf);
     return 0;
 }

描画するサーフェスを変更して、ファイルに書き込むコードを加えるだけである。
サーフェスに対する描画部分draw_hello()はサーフェスの種類に無関係で変更は必要ない。
PDFサーフェスはサーフェスの属性として出力ファイルが指定されているが、
PNG出力は内部イメージサーフェスに描画された内容をPNGファイルとして出力する形になる。