記事一覧
SDL2で画像をウィンドウに表示する【C++】
641, 2023-03-13
SDL2で画像をウィンドウに表示する
SDL2でPNG画像を読み込んでそれをウィンドウに表示する方法。
ソースコードは以下。
#define SDL_MAIN_HANDLED #include <SDL2/SDL.h> #include <SDL2/SDL_image.h> #include <cstdio> int main(void) { bool quit = false; SDL_Event event; SDL_Init(SDL_INIT_VIDEO); SDL_Window *window = SDL_CreateWindow( "my window", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0 ); SDL_Rect rect = {0}; SDL_Surface *image = IMG_Load("d:\\res\\img\\kao.png"); if (!image) { printf("%s\n", IMG_GetError()); } rect.x = 0; rect.y = 0; rect.w = image->w; rect.h = image->h; SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, 0); SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, image); SDL_RenderCopy(renderer, texture, NULL, &rect); SDL_RenderPresent(renderer); while (!quit) { SDL_WaitEvent(&event); switch (event.type) { case SDL_QUIT: quit = true; break; } } SDL_DestroyTexture(texture); SDL_FreeSurface(image); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return 0; }
コンパイルに使ったMakefileは↓の通り。
(省略されました)