Cemu/src/Cafe/HW/Latte/Renderer/Vulkan/VulkanTextureReadback.h
2022-08-22 22:21:23 +02:00

42 lines
893 B
C++

#pragma once
#include "Cafe/HW/Latte/Core/LatteTextureReadbackInfo.h"
class LatteTextureReadbackInfoVk : public LatteTextureReadbackInfo
{
public:
LatteTextureReadbackInfoVk(VkDevice device, LatteTextureView* textureView);
~LatteTextureReadbackInfoVk();
static uint32 GetImageSize(LatteTextureView* textureView);
void StartTransfer() override;
bool IsFinished() override;
void ForceFinish() override;
uint8* GetData() override
{
return m_buffer_ptr + m_buffer_offset;
}
uint32 GetImageSize() const
{
return m_image_size;
}
void SetBuffer(VkBuffer buffer, uint8* buffer_ptr, const uint32 buffer_offset)
{
m_buffer = buffer;
m_buffer_ptr = buffer_ptr;
m_buffer_offset = buffer_offset;
}
private:
VkDevice m_device = nullptr;
VkBuffer m_buffer = nullptr;
uint8* m_buffer_ptr = nullptr;
uint32 m_buffer_offset = 0;
uint64 m_associatedCommandBufferId = 0;
};