add GetSnesPixelFormat and SNES_PIXELFORMAT_XBPP constants

This commit is contained in:
scawful
2024-07-24 01:40:15 -04:00
parent cbc6788e2e
commit f2b2bb17a5
2 changed files with 32 additions and 0 deletions

View File

@@ -46,6 +46,20 @@ void PngReadCallback(png_structp png_ptr, png_bytep outBytes,
png_error(png_ptr, "Read error in PngReadCallback");
}
}
Uint32 GetSnesPixelFormat(int format) {
switch (format) {
case 0:
return SDL_PIXELFORMAT_INDEX8;
case 1:
return SNES_PIXELFORMAT_2BPP;
case 2:
return SNES_PIXELFORMAT_4BPP;
case 3:
return SNES_PIXELFORMAT_8BPP;
}
return SDL_PIXELFORMAT_INDEX8;
}
} // namespace
bool ConvertSurfaceToPNG(SDL_Surface *surface, std::vector<uint8_t> &buffer) {

View File

@@ -22,6 +22,24 @@ namespace app {
*/
namespace gfx {
constexpr int SNES_PIXELFORMAT_2BPP = SDL_DEFINE_PIXELFORMAT(
/*type=*/SDL_PIXELTYPE_INDEX8, /*order=*/0,
/*layouts=*/0, /*bits=*/2, /*bytes=*/1);
constexpr int SNES_PIXELFORMAT_4BPP = SDL_DEFINE_PIXELFORMAT(
/*type=*/SDL_PIXELTYPE_INDEX8, /*order=*/0,
/*layouts=*/0, /*bits=*/4, /*bytes=*/1);
constexpr int SNES_PIXELFORMAT_8BPP = SDL_DEFINE_PIXELFORMAT(
/*type=*/SDL_PIXELTYPE_INDEX8, /*order=*/0,
/*layouts=*/0, /*bits=*/8, /*bytes=*/1);
// SDL_PIXELFORMAT_INDEX8 =
// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1),
constexpr int kFormat4bppIndexed = 1;
constexpr int kFormat8bppIndexed = 2;
/**
* @brief Convert SDL_Surface to PNG image data.
*/