diff options
author | Ameer J <52414509+ameerj@users.noreply.github.com> | 2021-07-04 19:20:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-04 19:20:40 +0200 |
commit | eb0e10cff2496fbf91362aa1e399b1d0b9a1d808 (patch) | |
tree | 55a2fe0e232aa29390326d6d57d1bf3c4cb1a7b4 /src/video_core/renderer_opengl/gl_texture_cache.cpp | |
parent | Merge pull request #6498 from Kelebek1/Audio (diff) | |
parent | TextureCacheOGL: Implement Image Copies for 1D and 1D Array. (diff) | |
download | yuzu-eb0e10cff2496fbf91362aa1e399b1d0b9a1d808.tar yuzu-eb0e10cff2496fbf91362aa1e399b1d0b9a1d808.tar.gz yuzu-eb0e10cff2496fbf91362aa1e399b1d0b9a1d808.tar.bz2 yuzu-eb0e10cff2496fbf91362aa1e399b1d0b9a1d808.tar.lz yuzu-eb0e10cff2496fbf91362aa1e399b1d0b9a1d808.tar.xz yuzu-eb0e10cff2496fbf91362aa1e399b1d0b9a1d808.tar.zst yuzu-eb0e10cff2496fbf91362aa1e399b1d0b9a1d808.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_texture_cache.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index 23948feed..a2c1599f7 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.cpp +++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp @@ -341,6 +341,20 @@ void ApplySwizzle(GLuint handle, PixelFormat format, std::array<SwizzleSource, 4 [[nodiscard]] CopyOrigin MakeCopyOrigin(VideoCommon::Offset3D offset, VideoCommon::SubresourceLayers subresource, GLenum target) { switch (target) { + case GL_TEXTURE_1D: + return CopyOrigin{ + .level = static_cast<GLint>(subresource.base_level), + .x = static_cast<GLint>(offset.x), + .y = static_cast<GLint>(0), + .z = static_cast<GLint>(0), + }; + case GL_TEXTURE_1D_ARRAY: + return CopyOrigin{ + .level = static_cast<GLint>(subresource.base_level), + .x = static_cast<GLint>(offset.x), + .y = static_cast<GLint>(0), + .z = static_cast<GLint>(subresource.base_layer), + }; case GL_TEXTURE_2D_ARRAY: case GL_TEXTURE_2D_MULTISAMPLE_ARRAY: return CopyOrigin{ @@ -366,6 +380,18 @@ void ApplySwizzle(GLuint handle, PixelFormat format, std::array<SwizzleSource, 4 VideoCommon::SubresourceLayers dst_subresource, GLenum target) { switch (target) { + case GL_TEXTURE_1D: + return CopyRegion{ + .width = static_cast<GLsizei>(extent.width), + .height = static_cast<GLsizei>(1), + .depth = static_cast<GLsizei>(1), + }; + case GL_TEXTURE_1D_ARRAY: + return CopyRegion{ + .width = static_cast<GLsizei>(extent.width), + .height = static_cast<GLsizei>(1), + .depth = static_cast<GLsizei>(dst_subresource.num_layers), + }; case GL_TEXTURE_2D_ARRAY: case GL_TEXTURE_2D_MULTISAMPLE_ARRAY: return CopyRegion{ |