mirror of
https://github.com/libretro/Play-.git
synced 2025-03-04 17:28:29 +00:00
Changed transfer handling functions.
Renamed ProcessImageTransfer to ProcessHostToLocalTransfer. Added ProcessLocalToHostTransfer function.
This commit is contained in:
parent
86b0079f89
commit
691154cc12
@ -20,12 +20,12 @@ void CGSH_Null::ReleaseImpl()
|
||||
|
||||
}
|
||||
|
||||
void CGSH_Null::ProcessImageTransfer()
|
||||
void CGSH_Null::ProcessHostToLocalTransfer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CGSH_Null::ProcessClutTransfer(uint32, uint32)
|
||||
void CGSH_Null::ProcessLocalToHostTransfer()
|
||||
{
|
||||
|
||||
}
|
||||
@ -35,6 +35,11 @@ void CGSH_Null::ProcessLocalToLocalTransfer()
|
||||
|
||||
}
|
||||
|
||||
void CGSH_Null::ProcessClutTransfer(uint32, uint32)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CGSH_Null::ReadFramebuffer(uint32, uint32, void*)
|
||||
{
|
||||
|
||||
|
@ -8,9 +8,10 @@ public:
|
||||
CGSH_Null();
|
||||
virtual ~CGSH_Null();
|
||||
|
||||
virtual void ProcessImageTransfer() override;
|
||||
virtual void ProcessClutTransfer(uint32, uint32) override;
|
||||
virtual void ProcessHostToLocalTransfer() override;
|
||||
virtual void ProcessLocalToHostTransfer() override;
|
||||
virtual void ProcessLocalToLocalTransfer() override;
|
||||
virtual void ProcessClutTransfer(uint32, uint32) override;
|
||||
virtual void ReadFramebuffer(uint32, uint32, void*) override;
|
||||
|
||||
static FactoryFunction GetFactoryFunction();
|
||||
|
@ -1735,7 +1735,7 @@ void CGSH_OpenGL::VertexKick(uint8 nRegister, uint64 nValue)
|
||||
}
|
||||
}
|
||||
|
||||
void CGSH_OpenGL::ProcessImageTransfer()
|
||||
void CGSH_OpenGL::ProcessHostToLocalTransfer()
|
||||
{
|
||||
auto bltBuf = make_convertible<BITBLTBUF>(m_nReg[GS_REG_BITBLTBUF]);
|
||||
uint32 transferAddress = bltBuf.GetDstPtr();
|
||||
@ -1769,11 +1769,9 @@ void CGSH_OpenGL::ProcessImageTransfer()
|
||||
}
|
||||
}
|
||||
|
||||
void CGSH_OpenGL::ProcessClutTransfer(uint32 csa, uint32)
|
||||
void CGSH_OpenGL::ProcessLocalToHostTransfer()
|
||||
{
|
||||
FlushVertexBuffer();
|
||||
m_renderState.isValid = false;
|
||||
PalCache_Invalidate(csa);
|
||||
|
||||
}
|
||||
|
||||
void CGSH_OpenGL::ProcessLocalToLocalTransfer()
|
||||
@ -1817,6 +1815,13 @@ void CGSH_OpenGL::ProcessLocalToLocalTransfer()
|
||||
}
|
||||
}
|
||||
|
||||
void CGSH_OpenGL::ProcessClutTransfer(uint32 csa, uint32)
|
||||
{
|
||||
FlushVertexBuffer();
|
||||
m_renderState.isValid = false;
|
||||
PalCache_Invalidate(csa);
|
||||
}
|
||||
|
||||
void CGSH_OpenGL::ReadFramebuffer(uint32 width, uint32 height, void* buffer)
|
||||
{
|
||||
//TODO: Implement this in a better way. This is only used for movie recording on Win32 for now.
|
||||
|
@ -21,9 +21,10 @@ public:
|
||||
|
||||
virtual void LoadState(Framework::CZipArchiveReader&) override;
|
||||
|
||||
void ProcessImageTransfer() override;
|
||||
void ProcessClutTransfer(uint32, uint32) override;
|
||||
void ProcessHostToLocalTransfer() override;
|
||||
void ProcessLocalToHostTransfer() override;
|
||||
void ProcessLocalToLocalTransfer() override;
|
||||
void ProcessClutTransfer(uint32, uint32) override;
|
||||
void ReadFramebuffer(uint32, uint32, void*) override;
|
||||
|
||||
protected:
|
||||
|
@ -511,7 +511,7 @@ void CGSHandler::FeedImageDataImpl(void* pData, uint32 nLength)
|
||||
{
|
||||
auto trxReg = make_convertible<TRXREG>(m_nReg[GS_REG_TRXREG]);
|
||||
//assert(m_trxCtx.nRRY == trxReg.nRRH);
|
||||
ProcessImageTransfer();
|
||||
ProcessHostToLocalTransfer();
|
||||
|
||||
#ifdef _DEBUG
|
||||
CLog::GetInstance().Print(LOG_NAME, "Completed image transfer at 0x%0.8X (dirty = %d).\r\n", bltBuf.GetDstPtr(), m_trxCtx.nDirty);
|
||||
@ -632,6 +632,7 @@ void CGSHandler::BeginTransfer()
|
||||
}
|
||||
else if(trxDir == 1)
|
||||
{
|
||||
ProcessLocalToHostTransfer();
|
||||
CLog::GetInstance().Print(LOG_NAME, "Starting transfer from 0x%0.8X, buffer size %d, psm: %d, size (%dx%d)\r\n",
|
||||
bltBuf.GetSrcPtr(), bltBuf.GetSrcWidth(), bltBuf.nSrcPsm, trxReg.nRRW, trxReg.nRRH);
|
||||
}
|
||||
|
@ -527,9 +527,10 @@ public:
|
||||
virtual void SetCrt(bool, unsigned int, bool);
|
||||
void Initialize();
|
||||
void Release();
|
||||
virtual void ProcessImageTransfer() = 0;
|
||||
virtual void ProcessClutTransfer(uint32, uint32) = 0;
|
||||
virtual void ProcessHostToLocalTransfer() = 0;
|
||||
virtual void ProcessLocalToHostTransfer() = 0;
|
||||
virtual void ProcessLocalToLocalTransfer() = 0;
|
||||
virtual void ProcessClutTransfer(uint32, uint32) = 0;
|
||||
void Flip(bool showOnly = false);
|
||||
virtual void ReadFramebuffer(uint32, uint32, void*) = 0;
|
||||
|
||||
|
@ -57,12 +57,12 @@ CGSHandler::FactoryFunction CGSH_Direct3D9::GetFactoryFunction(Framework::Win32:
|
||||
return [=] () { return new CGSH_Direct3D9(outputWnd); };
|
||||
}
|
||||
|
||||
void CGSH_Direct3D9::ProcessImageTransfer()
|
||||
void CGSH_Direct3D9::ProcessHostToLocalTransfer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CGSH_Direct3D9::ProcessClutTransfer(uint32, uint32)
|
||||
void CGSH_Direct3D9::ProcessLocalToHostTransfer()
|
||||
{
|
||||
|
||||
}
|
||||
@ -72,6 +72,11 @@ void CGSH_Direct3D9::ProcessLocalToLocalTransfer()
|
||||
|
||||
}
|
||||
|
||||
void CGSH_Direct3D9::ProcessClutTransfer(uint32, uint32)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CGSH_Direct3D9::ReadFramebuffer(uint32, uint32, void*)
|
||||
{
|
||||
|
||||
|
@ -26,9 +26,10 @@ public:
|
||||
CGSH_Direct3D9(Framework::Win32::CWindow*);
|
||||
virtual ~CGSH_Direct3D9();
|
||||
|
||||
void ProcessImageTransfer() override;
|
||||
void ProcessClutTransfer(uint32, uint32) override;
|
||||
void ProcessHostToLocalTransfer() override;
|
||||
void ProcessLocalToHostTransfer() override;
|
||||
void ProcessLocalToLocalTransfer() override;
|
||||
void ProcessClutTransfer(uint32, uint32) override;
|
||||
void ReadFramebuffer(uint32, uint32, void*) override;
|
||||
|
||||
bool GetDepthTestingEnabled() const;
|
||||
|
Loading…
x
Reference in New Issue
Block a user