From 49431448de387e087cd282658f98de7ebd5199d5 Mon Sep 17 00:00:00 2001 From: taeyoon Date: Tue, 11 Oct 2016 21:43:23 +0900 Subject: [PATCH] [3.0] Fix rendering issue by tbm_surface and eglSwapBuffers in native render surface Change-Id: Ice50f3df18d078672ac3f420f0eebb98c4e6b1b8 --- adaptors/tizen/native-render-surface-tizen.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/adaptors/tizen/native-render-surface-tizen.cpp b/adaptors/tizen/native-render-surface-tizen.cpp index a205f2e..3799b0e 100644 --- a/adaptors/tizen/native-render-surface-tizen.cpp +++ b/adaptors/tizen/native-render-surface-tizen.cpp @@ -186,10 +186,9 @@ void NativeRenderSurface::PostRender( EglInterface& egl, Integration::GlAbstract Internal::Adaptor::EglImplementation& eglImpl = static_cast( 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 ) @@ -204,14 +203,9 @@ void NativeRenderSurface::PostRender( EglInterface& egl, Integration::GlAbstract 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() @@ -261,6 +255,7 @@ void NativeRenderSurface::CreateNativeRenderable() void NativeRenderSurface::ReleaseSurface() { + ConditionalWait::ScopedLock lock( mImpl->mTbmSurfaceCondition ); if( mImpl->mConsumeSurface ) { tbm_surface_queue_release( mImpl->mTbmQueue, mImpl->mConsumeSurface ); -- 2.7.4