本文整理汇总了C++中cResetEvent::Reset方法的典型用法代码示例。如果您正苦于以下问题:C++ cResetEvent::Reset方法的具体用法?C++ cResetEvent::Reset怎么用?C++ cResetEvent::Reset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cResetEvent
的用法示例。
在下文中一共展示了cResetEvent::Reset方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QueueRender
bool QueueRender(TA_context* ctx)
{
verify(ctx != 0);
if (FrameSkipping && frameskip) {
frameskip=1-frameskip;
tactx_Recycle(ctx);
fskip++;
return false;
}
if (rqueue)
{
tactx_Recycle(ctx);
fskip++;
return false;
}
frame_finished.Reset();
#ifndef TARGET_NO_THREADS
slock_lock(mtx_rqueue);
#endif
TA_context* old = rqueue;
rqueue=ctx;
#ifndef TARGET_NO_THREADS
slock_unlock(mtx_rqueue);
#endif
verify(!old);
return true;
}
示例2: QueueRender
bool QueueRender(TA_context* ctx)
{
verify(ctx != 0);
if (FrameSkipping && frameskip) {
frameskip=1-frameskip;
tactx_Recycle(ctx);
fskip++;
return false;
}
//Try to limit speed to a "sane" level
//Speed is also limited via audio, but audio
//is sometimes not accurate enough (android, vista+)
u32 cycle_span = sh4_sched_now64() - last_cyces;
last_cyces = sh4_sched_now64();
double time_span = os_GetSeconds() - last_frame;
last_frame = os_GetSeconds();
bool too_fast = (cycle_span / time_span) > (SH4_MAIN_CLOCK * 1.2);
if (rqueue && too_fast && settings.pvr.SynchronousRender) {
//wait for a frame if
// we have another one queue'd and
// sh4 run at > 120% on the last slice
// and SynchronousRendering is enabled
frame_finished.Wait();
verify(!rqueue);
}
if (rqueue) {
tactx_Recycle(ctx);
fskip++;
return false;
}
frame_finished.Reset();
mtx_rqueue.Lock();
TA_context* old = rqueue;
rqueue=ctx;
mtx_rqueue.Unlock();
verify(!old);
return true;
}
示例3: WriteSample
void WriteSample(s16 r, s16 l)
{
#ifdef LOG_SOUND
rawout.Write(l,r);
#endif
speed_limit.Reset();
if (!asRingFreeCount())
{
if (settings.LimitFPS)
{
speed_limit.Wait();
}
else
return;
}
gen_samples++;
//while limit on, 128 samples done, there is a buffer ready to be service AND speed is too fast then wait ;p
while (settings.LimitFPS==1 && gen_samples>128 && asRingUsedCount()>BufferSampleCount && QueryPerformanceCounter(&time_now) && (time_now.QuadPart-time_last.QuadPart)<=time_diff.QuadPart )
{
__noop;
}
if (settings.LimitFPS==1 && gen_samples>128)
{
gen_samples=0;
QueryPerformanceCounter(&time_last);
}
const u32 ptr=(WritePtr+1)%RingBufferSampleCount;
RingBuffer[ptr].r=r;
RingBuffer[ptr].l=l;
WritePtr=ptr;
//if (0==(WritePtr&255))
//printf("write done %d %d \n",ReadPtr,WritePtr);
}