「blog2010/2010年10月18日/Win32アプリケーションで cairo + librsvg を使いSVGを表示する」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
#blognavi
[Visual C++]-[Win32]-[Win32 プロジェクト]のプロジェクトを作成しておく(仮にDrawSVGとする)
-http://ftp.acc.umu.se/pub/gnome/binaries/win32/ から下記のbinアーカイブとdevアーカイブをダウンロード。見つからなければ「dependencies」も探す。★マークのものは「gtk+-bundle_*_win32.zip」で代用可能
-cairo_*_win32.zip ★
-cairo-dev_*_win32.zip ★
-expat_*_win32.zip ★
-fontconfig_*_win32.zip ★
-freetype_*_win32.zip ★
-glib_*_win32.zip ★
-glib-dev_*_win32.zip ★
-gtk+_*_win32.zip ★
-gtk+-dev_*_win32.zip ★
-libcroco_*_win32.zip
-libgsf_*_win32.zip
-libpng_*_win32.zip
-librsvg_*_win32.zip
-librsvg-dev_*_win32.zip
-libxml2_*_win32.zip
-pango_*_win32.zip ★
-zlib_*_win32.zip ★
-全binアーカイブの「bin」に含まれる全DLLをプロジェクトフォルダに展開<BR>※「gtk+_*_win32.zip」は「libgdk_pixbuf-2.0-0.dll」のみ使用
-全devアーカイブの「include」以下をプロジェクトフォルダ(.vcxprojのある所)に展開<BR>「glib-dev_*_win32.zip」の「lib/glib-2.0/include/」も「include」として展開<BR>※「gtk+-dev_*_win32.zip」は「include/gtk-2.0/gdk-pixbuf」のみ使用
-「cairo-dev_*_win32.zip」の「lib/cairo.lib」をプロジェクトフォルダに展開
-http://bellard.org/tcc/ から「tcc-*-win32-bin.zip」をダウンロード
-「tiny_implib.exe」をプロジェクトフォルダに展開
-VisualStudioコマンドプロンプトを起動
-プロジェクトフォルダに移動し下記コマンドを実行
> tiny_impdef.exe librsvg-2-2.dll
> lib.exe /def:librsvg-2-2.def /machine:x86 /out:librsvg-2.2.lib
-プロジェクトの[構成プロパティ]-[C/C++]-[追加のインクルード ディレクトリ]に以下を設定
.\include
.\include\cairo
.\include\librsvg-2\librsvg
.\include\gtk-2.0
.\include\glib-2.0
-プロジェクトの[構成プロパティ]-[リンカー]-[入力]-[追加の依存ファイル]に以下を追加
-cairo.lib
-librsvg-2-2.lib
-DrawSVG.cppに以下の修正を加える
#include "cairo-win32.h"
#include "cairo-svg.h"
#include "rsvg.h"
#include "rsvg-cairo.h"
(中略)
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 描画コードをここに追加してください...
RsvgHandle *rsvg;
cairo_surface_t *cr_surface;
cairo_t *cr;
rsvg_init();
rsvg = rsvg_handle_new_from_file("test.svg", NULL);
cr_surface = cairo_win32_surface_create(hdc);
cr = cairo_create(cr_surface);
rsvg_handle_render_cairo(rsvg, cr);
cairo_destroy(cr);
cairo_surface_destroy(cr_surface);
rsvg_handle_free(rsvg);
rsvg_term();
EndPaint(hWnd, &ps);
break;
(以下略)
#right{
カテゴリ: [[[Program>blog2010/カテゴリ/Program]]] - &trackback() - 2010年10月18日 11:44:33
}
#comment(nostyle,nsize8,size30)
#blognavi
#blognavi
-[Visual C++]-[Win32]-[Win32 プロジェクト]のプロジェクト(仮にDrawSVG)を作成しておく
-http://ftp.acc.umu.se/pub/gnome/binaries/win32/ から下記のbinアーカイブとdevアーカイブをダウンロード。&br()見つからなければ「dependencies」も探す。★マークのものは「gtk+-bundle_*_win32.zip」で代用可能
--cairo_*_win32.zip ★
--cairo-dev_*_win32.zip ★
--expat_*_win32.zip ★
--fontconfig_*_win32.zip ★
--freetype_*_win32.zip ★
--glib_*_win32.zip ★
--glib-dev_*_win32.zip ★
--gtk+_*_win32.zip ★
--gtk+-dev_*_win32.zip ★
--libcroco_*_win32.zip
--libgsf_*_win32.zip
--libpng_*_win32.zip
--librsvg_*_win32.zip
--librsvg-dev_*_win32.zip
--libxml2_*_win32.zip
--pango_*_win32.zip ★
--zlib_*_win32.zip ★
-全binアーカイブの「bin」に含まれる全DLLをプロジェクトフォルダに展開&br()※「gtk+_*_win32.zip」は「libgdk_pixbuf-2.0-0.dll」のみ使用
-全devアーカイブの「include」以下をプロジェクトフォルダ(.vcxprojのある所)に展開&br()「glib-dev_*_win32.zip」の「lib/glib-2.0/include/」も「include」として展開&br()※「gtk+-dev_*_win32.zip」は「include/gtk-2.0/gdk-pixbuf」のみ使用
-「cairo-dev_*_win32.zip」の「lib/cairo.lib」をプロジェクトフォルダに展開
-http://bellard.org/tcc/ から「tcc-*-win32-bin.zip」をダウンロード
-「tiny_implib.exe」をプロジェクトフォルダに展開
-VisualStudioコマンドプロンプトを起動
-プロジェクトフォルダに移動し下記コマンドを実行
--> tiny_impdef.exe librsvg-2-2.dll
--> lib.exe /def:librsvg-2-2.def /machine:x86 /out:librsvg-2.2.lib
-プロジェクトの[構成プロパティ]-[C/C++]-[追加のインクルード ディレクトリ]に以下を設定
--.\include
--.\include\cairo
--.\include\librsvg-2\librsvg
--.\include\gtk-2.0
--.\include\glib-2.0
-プロジェクトの[構成プロパティ]-[リンカー]-[入力]-[追加の依存ファイル]に以下を追加
--cairo.lib
--librsvg-2-2.lib
-DrawSVG.cppに以下の修正を加える(本来はWM_PAINTじゃなくて適切な個所で行う)
#include "cairo-win32.h"
#include "cairo-svg.h"
#include "rsvg.h"
#include "rsvg-cairo.h"
(中略)
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 描画コードをここに追加してください...
RsvgHandle *rsvg;
cairo_surface_t *cr_surface;
cairo_t *cr;
rsvg_init();
rsvg = rsvg_handle_new_from_file("test.svg", NULL);
cr_surface = cairo_win32_surface_create(hdc);
cr = cairo_create(cr_surface);
rsvg_handle_render_cairo(rsvg, cr);
cairo_destroy(cr);
cairo_surface_destroy(cr_surface);
rsvg_handle_free(rsvg);
rsvg_term();
EndPaint(hWnd, &ps);
break;
(以下略)
#right{
カテゴリ: [[[Program>blog2010/カテゴリ/Program]]] - &trackback() - 2010年10月18日 11:44:33
}
#comment(nostyle,nsize8,size30)
#blognavi