Add Pica Texture Encoding Decoding

Supported Formats: A4, A8, L4, L8, RGB565, RGB888 RGBA8888 (for now)
Add a .clang-format
Move ctrff into a subdirectory
Replace the BCLIM creation part with Pica encoder
Fix non const RGB565ToRGBA issue
This commit is contained in:
2026-01-06 21:51:51 +01:00
parent e4fa2202d2
commit 022d69dc8e
13 changed files with 626 additions and 66 deletions

34
include/ctrff/pica.hpp Normal file
View File

@@ -0,0 +1,34 @@
#pragma once
#include <ctrff/types.hpp>
/**
* 3ds GPU Stuff
*/
namespace ctrff {
namespace Pica {
enum Color : u32 {
L8, // tested
A8, // tested
LA4,
LA8,
HILO8,
RGB565, // tested
RGB888, // tested
RGBA5551,
RGBA4444,
RGBA8888, // tested
ETC1,
ETC1A4,
L4, // tested
A4, // tested
};
CTRFF_API void EncodeImage(std::vector<ctrff::u8>& ret,
std::vector<ctrff::u8> rgba, int w, int h,
Color dst);
CTRFF_API void DecodeImage(std::vector<ctrff::u8>& ret,
std::vector<ctrff::u8> pixels, int w, int h,
Color src);
} // namespace Pica
} // namespace ctrff