SDL2 で画像を表示する
SDL2 で画像を表示するには、ビットマップを読み込んで、サーフェスを作成し、テクスチャに変えます。そして、renderer を使ってコピーします。
SDL2 だけであれば、bmp ファイルを扱えます。それ以外のファイル形式は、SDL2_image を使うと読み込みができます。
bmp ファイルから SDL_Surface を作成するには、SDL_LoadBMP() 関数を使います。引数は読み込む bmp ファイルです。
作成したサーフェスは、SDL_CreateTextureFromSurface() 関数でテクスチャにすることができます。引数はレンダラとサーフェスです。
テクスチャは、SDL_RenderCopy() 関数で画面に表示できます。引数はレンダラ、サーフェス、コピー元の SDL_Rect、コピー先の SDL_Rect です。コピー元は NULL だと全体を表します。コピー先を NULL にすると、画面全体になります。この時拡大、縮小を行います。
まとめると、以下のようになります。
SDL_Renderer *renderer;
SDL_Surface *image;
SDL_Texture *bitmapTex;
・
・
image = SDL_LoadBMP("test.bmp");
bitmapTex = SDL_CreateTextureFromSurface(renderer, image);
SDL_FreeSurface(image);
SDL_RenderCopy(renderer, bitmapTex, NULL, NULL);
・
・
SDL_RenderPresent(renderer);
SDL_DestroyTexture(textTex);
SDL_RenderCopy() 関数の代わりに SDL_RenderCopyEx() 関数を使うと画像の回転ができます。

ディスカッション
コメント一覧
まだ、コメントがありません