Internal::Adaptor::EglImplementation& eglImpl = static_cast<Internal::Adaptor::EglImplementation&>( egl );
eglImpl.SwapBuffers();
- // flush gl instruction queue
- glAbstraction.Flush();
-
{
+ ConditionalWait::ScopedLock lock( mImpl->mTbmSurfaceCondition );
+
if( tbm_surface_queue_can_acquire( mImpl->mTbmQueue, 1 ) )
{
if( tbm_surface_queue_acquire( mImpl->mTbmQueue, &mImpl->mConsumeSurface ) != TBM_SURFACE_QUEUE_ERROR_NONE )
if( mImpl->mRenderNotification )
{
// use notification trigger
- // Tell the event-thread to render the pixmap
+ // Tell the event-thread to render the tbm_surface
mImpl->mRenderNotification->Trigger();
}
- else
- {
- // FIXME
- }
-
}
void NativeRenderSurface::StopRender()
void NativeRenderSurface::ReleaseSurface()
{
+ ConditionalWait::ScopedLock lock( mImpl->mTbmSurfaceCondition );
if( mImpl->mConsumeSurface )
{
tbm_surface_queue_release( mImpl->mTbmQueue, mImpl->mConsumeSurface );