diff options
author | bunnei <bunneidev@gmail.com> | 2018-04-19 02:20:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-19 02:20:51 +0200 |
commit | 60e6e8953ef764eb2db46d336623831e6f0cc193 (patch) | |
tree | 35588db31eb7b9cfe98954c214dbb14df42e8ac2 /src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | |
parent | gl_shader_gen: Support vertical/horizontal viewport flipping. (#347) (diff) | |
parent | GPU: Implemented the B5G6R5 format. (diff) | |
download | yuzu-60e6e8953ef764eb2db46d336623831e6f0cc193.tar yuzu-60e6e8953ef764eb2db46d336623831e6f0cc193.tar.gz yuzu-60e6e8953ef764eb2db46d336623831e6f0cc193.tar.bz2 yuzu-60e6e8953ef764eb2db46d336623831e6f0cc193.tar.lz yuzu-60e6e8953ef764eb2db46d336623831e6f0cc193.tar.xz yuzu-60e6e8953ef764eb2db46d336623831e6f0cc193.tar.zst yuzu-60e6e8953ef764eb2db46d336623831e6f0cc193.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 9ccc63090..2a0858eac 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp @@ -48,8 +48,9 @@ struct FormatTuple { u32 compression_factor; }; -static constexpr std::array<FormatTuple, 2> tex_format_tuples = {{ +static constexpr std::array<FormatTuple, SurfaceParams::MaxPixelFormat> tex_format_tuples = {{ {GL_RGBA8, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, false, 1}, // ABGR8 + {GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5_REV, false, 1}, // B5G6R5 {GL_COMPRESSED_RGB_S3TC_DXT1_EXT, GL_RGB, GL_UNSIGNED_INT_8_8_8_8, true, 16}, // DXT1 }}; @@ -117,15 +118,19 @@ void MortonCopy(u32 stride, u32 block_height, u32 height, u8* gl_buffer, VAddr b } } -static constexpr std::array<void (*)(u32, u32, u32, u8*, VAddr, VAddr, VAddr), 2> morton_to_gl_fns = - { +static constexpr std::array<void (*)(u32, u32, u32, u8*, VAddr, VAddr, VAddr), + SurfaceParams::MaxPixelFormat> + morton_to_gl_fns = { MortonCopy<true, PixelFormat::ABGR8>, + MortonCopy<true, PixelFormat::B5G6R5>, MortonCopy<true, PixelFormat::DXT1>, }; -static constexpr std::array<void (*)(u32, u32, u32, u8*, VAddr, VAddr, VAddr), 2> gl_to_morton_fns = - { +static constexpr std::array<void (*)(u32, u32, u32, u8*, VAddr, VAddr, VAddr), + SurfaceParams::MaxPixelFormat> + gl_to_morton_fns = { MortonCopy<false, PixelFormat::ABGR8>, + MortonCopy<false, PixelFormat::B5G6R5>, // TODO(Subv): Swizzling the DXT1 format is not yet supported nullptr, }; |