summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/TextureCache.h
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2016-10-22 21:19:09 +1000
committerStenzek <stenzek@gmail.com>2016-11-03 22:01:55 +1000
commit3593fa27abc9bce5ca6db9e6a22be8174fd4a60d (patch)
treee0b14e300f3f0cadad4a2e1f6d4fe8ab294f59f9 /Source/Core/VideoBackends/Vulkan/TextureCache.h
parent01b3c0f0362166ebf37983be1f5fc389550f6f05 (diff)
Vulkan: Move CopyRectangleFromTexture to TextureCache
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/TextureCache.h')
-rw-r--r--Source/Core/VideoBackends/Vulkan/TextureCache.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/TextureCache.h b/Source/Core/VideoBackends/Vulkan/TextureCache.h
index 0b8bfa5ef3..34654e5bc3 100644
--- a/Source/Core/VideoBackends/Vulkan/TextureCache.h
+++ b/Source/Core/VideoBackends/Vulkan/TextureCache.h
@@ -63,10 +63,21 @@ public:
u32 memory_stride, PEControl::PixelFormat src_format, const EFBRectangle& src_rect,
bool is_intensity, bool scale_by_half) override;
+ void CopyRectangleFromTexture(TCacheEntry* dst_texture, const MathUtil::Rectangle<int>& dst_rect,
+ Texture2D* src_texture, const MathUtil::Rectangle<int>& src_rect);
+
private:
bool CreateRenderPasses();
VkRenderPass GetRenderPassForTextureUpdate(const Texture2D* texture) const;
+ // Copies the contents of a texture using vkCmdCopyImage
+ void CopyTextureRectangle(TCacheEntry* dst_texture, const MathUtil::Rectangle<int>& dst_rect,
+ Texture2D* src_texture, const MathUtil::Rectangle<int>& src_rect);
+
+ // Copies (and optionally scales) the contents of a texture using a framgent shader.
+ void ScaleTextureRectangle(TCacheEntry* dst_texture, const MathUtil::Rectangle<int>& dst_rect,
+ Texture2D* src_texture, const MathUtil::Rectangle<int>& src_rect);
+
VkRenderPass m_initialize_render_pass = VK_NULL_HANDLE;
VkRenderPass m_update_render_pass = VK_NULL_HANDLE;