2012-11-15 00:39:56 +01:00
|
|
|
#include "stdafx.h"
|
2014-09-11 21:18:19 +02:00
|
|
|
#include "Emu/Memory/Memory.h"
|
2014-06-02 19:27:24 +02:00
|
|
|
#include "Emu/System.h"
|
|
|
|
|
|
2014-08-26 01:55:37 +02:00
|
|
|
#include "GSManager.h"
|
2012-11-15 00:39:56 +01:00
|
|
|
#include "GSRender.h"
|
|
|
|
|
|
2014-08-23 02:16:54 +02:00
|
|
|
GSLock::GSLock(GSRender& renderer, GSLockType type)
|
|
|
|
|
: m_renderer(renderer)
|
|
|
|
|
, m_type(type)
|
|
|
|
|
{
|
|
|
|
|
switch (m_type)
|
|
|
|
|
{
|
|
|
|
|
case GS_LOCK_NOT_WAIT: m_renderer.m_cs_main.lock(); break;
|
|
|
|
|
case GS_LOCK_WAIT_FLIP: m_renderer.m_sem_flip.wait(); break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GSLock::~GSLock()
|
|
|
|
|
{
|
|
|
|
|
switch (m_type)
|
|
|
|
|
{
|
|
|
|
|
case GS_LOCK_NOT_WAIT: m_renderer.m_cs_main.unlock(); break;
|
2015-07-27 03:27:33 +02:00
|
|
|
case GS_LOCK_WAIT_FLIP: m_renderer.m_sem_flip.try_post(); break;
|
2014-08-23 02:16:54 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2013-06-30 10:46:29 +02:00
|
|
|
GSLockCurrent::GSLockCurrent(GSLockType type) : GSLock(Emu.GetGSManager().GetRender(), type)
|
|
|
|
|
{
|
2014-02-23 17:52:52 +01:00
|
|
|
}
|