(1 ~ 1件目表示 / 1件中)
カテゴリー「SDL2」の条件で表示中。


記事一覧

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は↓の通り。

(省略されました)


(1 ~ 1件目表示 / 1件中)
カテゴリー「SDL2」の条件で表示中。