summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer_cache.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-03-10 22:27:49 +0100
committerGitHub <noreply@github.com>2019-03-10 22:27:49 +0100
commit4a84921b315d58253f4b3c086b3f878e08ec7515 (patch)
tree0af46500de6cdce1b9f978cb7506883e8841c5bb /src/video_core/renderer_opengl/gl_rasterizer_cache.h
parentMerge pull request #2220 from lioncash/cubeb (diff)
parentgl_rasterizer_cache: Create texture views for array discrepancies (diff)
downloadyuzu-4a84921b315d58253f4b3c086b3f878e08ec7515.tar
yuzu-4a84921b315d58253f4b3c086b3f878e08ec7515.tar.gz
yuzu-4a84921b315d58253f4b3c086b3f878e08ec7515.tar.bz2
yuzu-4a84921b315d58253f4b3c086b3f878e08ec7515.tar.lz
yuzu-4a84921b315d58253f4b3c086b3f878e08ec7515.tar.xz
yuzu-4a84921b315d58253f4b3c086b3f878e08ec7515.tar.zst
yuzu-4a84921b315d58253f4b3c086b3f878e08ec7515.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer_cache.h')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.h28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h
index 797bbdc9c..9cf6f50be 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h
@@ -367,31 +367,19 @@ public:
return texture;
}
- const OGLTexture& TextureLayer() {
- if (params.is_array) {
- return Texture();
+ const OGLTexture& Texture(bool as_array) {
+ if (params.is_array == as_array) {
+ return texture;
+ } else {
+ EnsureTextureDiscrepantView();
+ return discrepant_view;
}
- EnsureTextureView();
- return texture_view;
}
GLenum Target() const {
return gl_target;
}
- GLenum TargetLayer() const {
- using VideoCore::Surface::SurfaceTarget;
- switch (params.target) {
- case SurfaceTarget::Texture1D:
- return GL_TEXTURE_1D_ARRAY;
- case SurfaceTarget::Texture2D:
- return GL_TEXTURE_2D_ARRAY;
- case SurfaceTarget::TextureCubemap:
- return GL_TEXTURE_CUBE_MAP_ARRAY;
- }
- return Target();
- }
-
const SurfaceParams& GetSurfaceParams() const {
return params;
}
@@ -431,10 +419,10 @@ public:
private:
void UploadGLMipmapTexture(u32 mip_map, GLuint read_fb_handle, GLuint draw_fb_handle);
- void EnsureTextureView();
+ void EnsureTextureDiscrepantView();
OGLTexture texture;
- OGLTexture texture_view;
+ OGLTexture discrepant_view;
std::vector<std::vector<u8>> gl_buffer;
SurfaceParams params{};
GLenum gl_target{};