#include <stdio.h>
#include <stdbool.h>
#include <SDL.h>
#include <SDL_image.h>
void init() {
if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {
printf("SDL_Init Error: %s\n", SDL_GetError());
exit(0);
}
IMG_Init(IMG_INIT_JPG);
}
int main(int argc, char* argv[]) {
init();
SDL_Window* window = SDL_CreateWindow("SDL2 Display Image",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
800, 600, SDL_WINDOW_SHOWN);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
char* filename = "d:\\p2232h.jpg";
SDL_Surface* image = IMG_Load(filename);
if (image == NULL) {
printf("IMG_Load Error: %s\n", IMG_GetError());
}
SDL_Texture* texture = SDL_CreateTextureFromSurface(renderer, image);
// event loop
bool close = false;
while (!close) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
close = true;
break;
}
}
SDL_RenderCopy(renderer, texture, NULL, NULL);
SDL_RenderPresent(renderer);
}
// free
SDL_DestroyTexture(texture);
SDL_FreeSurface(image);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}