diff --git a/include/renderer_gl/textures.hpp b/include/renderer_gl/textures.hpp index 427c6361..f047e01f 100644 --- a/include/renderer_gl/textures.hpp +++ b/include/renderer_gl/textures.hpp @@ -80,5 +80,4 @@ struct Texture { // TODO: Make hasAlpha a template parameter u32 getTexelETC(bool hasAlpha, u32 u, u32 v, u32 width, const void* data); u32 decodeETC(u32 alpha, u32 u, u32 v, u64 colourData); - }; \ No newline at end of file diff --git a/src/core/renderer_gl/textures.cpp b/src/core/renderer_gl/textures.cpp index 3e43c1ad..5ac7e907 100644 --- a/src/core/renderer_gl/textures.cpp +++ b/src/core/renderer_gl/textures.cpp @@ -131,6 +131,17 @@ u32 Texture::decodeTexel(u32 u, u32 v, Texture::Formats fmt, const void* data) { return (0xff << 24) | (b << 16) | (g << 8) | r; } + case Formats::RG8: { + u32 offset = getSwizzledOffset(u, v, size.u(), 2); + auto ptr = static_cast(data); + + constexpr u8 b = 0; + u8 g = ptr[offset]; + u8 r = ptr[offset + 1]; + + return (0xff << 24) | (b << 16) | (g << 8) | r; + } + case Formats::RGB8: { u32 offset = getSwizzledOffset(u, v, size.u(), 3); auto ptr = static_cast(data);