diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2018-12-29 21:51:32 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2018-12-30 03:49:12 +0100 |
commit | 97fb6179b943f9f87bd7cbf185da1153aaae9309 (patch) | |
tree | 7dd42951c7e5cd4c2cef0ac1356c50a0b52abe5a /src/video_core/renderer_opengl/gl_rasterizer_cache.h | |
parent | Merge pull request #1886 from FearlessTobi/port-4164 (diff) | |
download | yuzu-97fb6179b943f9f87bd7cbf185da1153aaae9309.tar yuzu-97fb6179b943f9f87bd7cbf185da1153aaae9309.tar.gz yuzu-97fb6179b943f9f87bd7cbf185da1153aaae9309.tar.bz2 yuzu-97fb6179b943f9f87bd7cbf185da1153aaae9309.tar.lz yuzu-97fb6179b943f9f87bd7cbf185da1153aaae9309.tar.xz yuzu-97fb6179b943f9f87bd7cbf185da1153aaae9309.tar.zst yuzu-97fb6179b943f9f87bd7cbf185da1153aaae9309.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h index c710aa245..7223700c4 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h @@ -293,10 +293,31 @@ public: return texture; } + const OGLTexture& TextureLayer() { + if (params.is_layered) { + return Texture(); + } + 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; } @@ -311,11 +332,16 @@ public: private: void UploadGLMipmapTexture(u32 mip_map, GLuint read_fb_handle, GLuint draw_fb_handle); + void EnsureTextureView(); + OGLTexture texture; + OGLTexture texture_view; std::vector<std::vector<u8>> gl_buffer; - SurfaceParams params; - GLenum gl_target; - std::size_t cached_size_in_bytes; + SurfaceParams params{}; + GLenum gl_target{}; + GLenum gl_internal_format{}; + bool gl_is_compressed{}; + std::size_t cached_size_in_bytes{}; }; class RasterizerCacheOpenGL final : public RasterizerCache<Surface> { |