rpcsx/rpcs3/Emu/RSX/GSRender.h
2015-07-10 04:31:16 +03:00

39 lines
504 B
C++

#pragma once
#include "Emu/RSX/RSXThread.h"
struct GSRender : public RSXThread
{
virtual ~GSRender() override
{
if (joinable())
{
throw EXCEPTION("Thread not joined");
}
}
virtual void Close()=0;
};
enum GSLockType
{
GS_LOCK_NOT_WAIT,
GS_LOCK_WAIT_FLUSH,
GS_LOCK_WAIT_FLIP,
};
struct GSLock
{
private:
GSRender& m_renderer;
GSLockType m_type;
public:
GSLock(GSRender& renderer, GSLockType type);
~GSLock();
};
struct GSLockCurrent : GSLock
{
GSLockCurrent(GSLockType type);
};