Cemu/src/Cafe/HW/Latte/Core/LatteTextureReadbackInfo.h
2023-09-19 21:17:21 +02:00

31 lines
No EOL
783 B
C++

#pragma once
#include "Cafe/HW/Latte/Core/LatteTexture.h"
#include "util/highresolutiontimer/HighResolutionTimer.h"
class LatteTextureReadbackInfo
{
public:
LatteTextureReadbackInfo(LatteTextureView* textureView)
: hostTextureCopy(textureView->baseTexture), m_textureView(textureView)
{}
virtual ~LatteTextureReadbackInfo() = default;
virtual void StartTransfer() = 0;
virtual bool IsFinished() = 0;
virtual void ForceFinish() {};
virtual uint8* GetData() = 0;
virtual void ReleaseData() {};
HRTick transferStartTime;
HRTick waitStartTime;
bool forceFinish{ false }; // set to true if not finished in time for dependent operation
// texture info
LatteTextureDefinition hostTextureCopy{};
protected:
LatteTextureView* m_textureView;
uint32 m_image_size = 0;
};