ビットマップの表示

拡張子がbmpのファイルを読み込んで描画します。

LoadBMP()で一度メモリに読み込んでDraw()で描画します。



まず、画像ファイルをメモリ上に読み込み描画の準備をします。

読み込んだ画像を識別するために戻り値を覚えておきます。

実際に描画するDraw()命令ではどの画像を描画したいのかをこの戻り値で指定します。



int bmp=LoadBMP( "test.bmp", FAST_MEM );

第一引数はファイル名です。

実行ファイルと同じフォルダに置いておきましょう。

サンプルで使っているtest.bmpSGL2Dを解凍した中い入っているので

これを実行ファイルと同じフォルダにコピーしてください。



第二引数は読み込むメモリの種類です。

メインメモリかビデオメモリを選べます

FAST_MEM, ビデオメモリ上に読み込む

FLEX_MEM, メインメモリ上に読み込む

ビデオメモリは高速ですが容量が少ないです。

ビデオカードによりますが4128MBぐらいです。

メインメモリは遅いですが量が多く数百MB使えます。

動かしたいPCのスペックなどによって使い分けてください。

ほとんどの場合はFAST_MEMで問題ないでしょう。

併用してもかまいません。



戻り値を整数型のbmpという変数に格納しています。

戻り値の内容は読み込んだ画像につけられた番号です。

Draw()関数で描画するときに何番の画像を表示したいか指定するのに使います。



Draw( bmp, 100,100 );

画像を描画します。

第一引数は画像の番号を指定します。

LoadBMPの戻り値として得られます。



第二引数

X座標です。



第三引数

Y座標です。



ソース

#include "sgl.h"



int APIENTRY WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, int )

{

if (!InitLibrary( true, NULL, hInst ))

return 1;



int bmp=LoadBMP( "test.bmp", FAST_MEM );



while ( Run() && !(KeyIn() & KEYIN_ESC) )

{

Cls();

Draw( bmp, 100,100 );

Flip();

}

EndLibrary();



return 0;

}