Привет, я пытаюсь загрузить встроенный PNG с SDL2. Мне только удалось создать файл, но я не загружал его напрямую. Я пытался поставить
_binary_flower_png_ в IMG_LoadTexture, но это не сработало. Вот как далеко я захожу (работает нормально, но я не хочу создавать файл)
#include <stdlib.h>
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
extern const char _binary_flower_png_start[];
extern const char _binary_flower_png_end[];
extern const int _binary_flower_png_size;
int main()
{
SDL_Event event;
SDL_Renderer *renderer = NULL;
SDL_Texture *texture = NULL;
SDL_Window *window = NULL;
SDL_Init(SDL_INIT_TIMER | SDL_INIT_VIDEO);
SDL_CreateWindowAndRenderer(
500, 500,
0, &window, &renderer
);
//File create
FILE *f = fopen("flower.png", "wb");
fwrite(_binary_flower_png_start, &_binary_flower_png_end,
&_binary_flower_png_start, f);
fclose(f);
printf("File created");
//Load here
IMG_Init(IMG_INIT_PNG);
texture = IMG_LoadTexture(renderer, "flower.png");
//Render
while (1) {
SDL_RenderCopy(renderer, texture, NULL, NULL);
SDL_RenderPresent(renderer);
if (SDL_PollEvent(&event) && event.type == SDL_QUIT)
break;
}
SDL_DestroyTexture(texture);
IMG_Quit();
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return EXIT_SUCCESS;
}