diff --git a/rpcs3/Emu/RSX/GL/GLRenderTargets.h b/rpcs3/Emu/RSX/GL/GLRenderTargets.h index c8c7e22cec..adbc2d7d0d 100644 --- a/rpcs3/Emu/RSX/GL/GLRenderTargets.h +++ b/rpcs3/Emu/RSX/GL/GLRenderTargets.h @@ -113,6 +113,11 @@ namespace gl { return ensure(dynamic_cast(t)); } + + static inline const gl::render_target* as_rtt(const gl::texture* t) + { + return ensure(dynamic_cast(t)); + } } struct gl_render_target_traits diff --git a/rpcs3/Emu/RSX/GL/GLTextureCache.h b/rpcs3/Emu/RSX/GL/GLTextureCache.h index 0555c828fa..fb0ba38893 100644 --- a/rpcs3/Emu/RSX/GL/GLTextureCache.h +++ b/rpcs3/Emu/RSX/GL/GLTextureCache.h @@ -393,7 +393,7 @@ namespace gl return managed_texture.get(); } - gl::render_target* get_render_target() + gl::render_target* get_render_target() const { return gl::as_rtt(vram_texture); } diff --git a/rpcs3/Emu/RSX/VK/VKRenderTargets.h b/rpcs3/Emu/RSX/VK/VKRenderTargets.h index 19e15cab46..e340d493cb 100644 --- a/rpcs3/Emu/RSX/VK/VKRenderTargets.h +++ b/rpcs3/Emu/RSX/VK/VKRenderTargets.h @@ -85,6 +85,11 @@ namespace vk return ensure(dynamic_cast(t)); } + static inline const vk::render_target* as_rtt(const vk::image* t) + { + return ensure(dynamic_cast(t)); + } + struct surface_cache_traits { using surface_storage_type = std::unique_ptr; diff --git a/rpcs3/Emu/RSX/VK/VKTextureCache.h b/rpcs3/Emu/RSX/VK/VKTextureCache.h index 6a4702b4b5..e57b2da0c1 100644 --- a/rpcs3/Emu/RSX/VK/VKTextureCache.h +++ b/rpcs3/Emu/RSX/VK/VKTextureCache.h @@ -163,7 +163,7 @@ namespace vk return managed_texture; } - vk::render_target* get_render_target() + vk::render_target* get_render_target() const { return vk::as_rtt(vram_texture); }