イメージ出力@SDLサンプル

VC++の補完機能を実現しようと、躓いた主です。
EclipseVC++の補完機能(Ctrl+Space)がメッセンジャーのロック機能で乗っ取られていたことを初めて知りました。
まさかメッセンジャーとは…Orz


さて、シューティングを移植する前に、SDLの画像と文字出力方法のサンプルを作ってみようと思います。


SDLのマニュアルやサンプルを見ながら…


基本的な流れは以下の通り

/*サーフェスにビデオモード設定*/
screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
/*ビットマップ読み込み*/
image = SDL_LoadBMP(fname);
/*サーフェスに書き出し(コピー)*/
SDL_BlitSurface(image,&sr,screen,&dr);
/*スクリーンバッファを交換*/
SDL_Flip(screen);


この流れで画面に表示できます。
スクリーンバッファの概念は知っていますが、内部的にどうなっているのかはわかりません。。。。


次に、文字出力です。
ここでは、TrueTypeFontを使う為、SDL_ttfを使います。


SDL_ttf.dllとlibをlibフォルダに格納、
sdl_ttf.hをincludeフォルダに格納して、いざ…何をすればいいの?
はい。主はフォントを使うことに慣れていませんでした。


とりあえず、フリーのフォントをもらってきました。
フォントを・・・?読めばいいのかな。普通に読むといいのかな。フォント用に読む関数とかあるのかな。フォントずれたりすることってあるのかなといろいろ考えますが、結局ファイルとして読み込めばいいです。難しく考えすぎたです。
あとは、配布元にリファレンスがあったので見てみて、他サイトと見比べて…と。


だいたいの流れはこんな感じになりました。↓

/*フォント読み出し*/
fp = fopen( MIKA_FONT, "r" );
/*フォントを…定義??*/
font = TTF_OpenFont(MIKA_FONT, 16);
/*サーフェス出力*/
text = TTF_RenderUTF8_Solid(font,"testttesttetetetetsttest....",cl);
/*サーフェスに書き出し(コピー)*/
SDL_BlitSurface(text,NULL,screen,NULL);
/*スクリーンバッファを交換*/
SDL_Flip(screen);

これでいけるはず!。


と、ここで躓き。
sdl_ttfを依存ライブラリに登録しておらず、外部参照できませんでした。
libやdllの場所が悪いの!?と散らばったlibやdllが多数。
問題解決後、大量にゴミ箱へ。。。。(・w・;



そして、めでたく画面出力。


次は、画像表示関数作って、先のシューティングプログラムを移行してきたいと思います。