From 19d0f373a8d8ae646c6905da4129daf973d458b9 Mon Sep 17 00:00:00 2001 From: erysdren Date: Tue, 15 Oct 2024 11:43:46 -0500 Subject: [PATCH] dump_textures() --- platform/sdl3/main.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/platform/sdl3/main.c b/platform/sdl3/main.c index ae6c254..bdd3fe2 100644 --- a/platform/sdl3/main.c +++ b/platform/sdl3/main.c @@ -39,6 +39,38 @@ static void die(const char *fmt, ...) exit(1); } +static void dump_textures(void) +{ + int i; + SDL_Palette *pal; + + pal = SDL_CreatePalette(256); + + for (i = 0; i < pal->ncolors; i++) + { + pal->colors[i].r = palette[i][0]; + pal->colors[i].g = palette[i][1]; + pal->colors[i].b = palette[i][2]; + pal->colors[i].a = 255; + } + + for (i = 0; i < TEXTURE_MAX; i++) + { + char filename[256]; + SDL_Surface *surf; + + surf = SDL_CreateSurfaceFrom(TEXTURE_WIDTH, TEXTURE_HEIGHT, SDL_PIXELFORMAT_INDEX8, textures[i], TEXTURE_WIDTH * sizeof(u8)); + SDL_SetSurfacePalette(surf, pal); + SDL_FlipSurface(surf, SDL_FLIP_VERTICAL); + + SDL_snprintf(filename, sizeof(filename), "texture%03d.bmp", i); + SDL_SaveBMP(surf, filename); + SDL_DestroySurface(surf); + } + + SDL_DestroyPalette(pal); +} + SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) { Uint32 format;