diff options
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2015-02-05 15:15:42 +0100 |
---|---|---|
committer | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2015-02-15 15:08:12 +0100 |
commit | c439b3074d27073008166f4d49c6b8c8c881e39d (patch) | |
tree | e569b49b7eae389f515eb28cc677245fb6abef3e /src/core/hw/gpu.h | |
parent | Merge pull request #529 from Subv/master (diff) | |
download | yuzu-c439b3074d27073008166f4d49c6b8c8c881e39d.tar yuzu-c439b3074d27073008166f4d49c6b8c8c881e39d.tar.gz yuzu-c439b3074d27073008166f4d49c6b8c8c881e39d.tar.bz2 yuzu-c439b3074d27073008166f4d49c6b8c8c881e39d.tar.lz yuzu-c439b3074d27073008166f4d49c6b8c8c881e39d.tar.xz yuzu-c439b3074d27073008166f4d49c6b8c8c881e39d.tar.zst yuzu-c439b3074d27073008166f4d49c6b8c8c881e39d.zip |
Diffstat (limited to 'src/core/hw/gpu.h')
-rw-r--r-- | src/core/hw/gpu.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/hw/gpu.h b/src/core/hw/gpu.h index 7c3a17ee5..9fd694f65 100644 --- a/src/core/hw/gpu.h +++ b/src/core/hw/gpu.h @@ -53,6 +53,7 @@ struct Regs { "Structure size and register block length don't match") #endif + // All of those formats are described in reverse byte order, since the 3DS is little-endian. enum class PixelFormat : u32 { RGBA8 = 0, RGB8 = 1, @@ -61,6 +62,24 @@ struct Regs { RGBA4 = 4, }; + /** + * Returns the number of bytes per pixel. + */ + static int BytesPerPixel(PixelFormat format) { + switch (format) { + case PixelFormat::RGBA8: + return 4; + case PixelFormat::RGB8: + return 3; + case PixelFormat::RGB565: + case PixelFormat::RGB5A1: + case PixelFormat::RGBA4: + return 2; + default: + UNIMPLEMENTED(); + } + } + INSERT_PADDING_WORDS(0x4); struct { |