const std::string& name,
bool isTransparent)
: EcoreWlRenderSurface( positionSize, surface, name, isTransparent ),
- mNeedToApproveDeiconify(false)
+ mEglWindow( NULL ),
+ mNeedToApproveDeiconify( false )
{
DALI_LOG_INFO( gRenderSurfaceLogFilter, Debug::Verbose, "Creating Window\n" );
Init( surface );
WindowRenderSurface::~WindowRenderSurface()
{
+ if( mEglWindow != NULL )
+ {
+ wl_egl_window_destroy(mEglWindow);
+ mEglWindow = NULL;
+ }
+
if( mOwnSurface )
{
ecore_wl_window_free( mWlWindow );
Internal::Adaptor::EglImplementation& eglImpl = static_cast<Internal::Adaptor::EglImplementation&>( eglIf );
eglImpl.DestroySurface();
- wl_egl_window_destroy(mEglWindow);
- mEglWindow = NULL;
}
bool WindowRenderSurface::ReplaceEGLSurface( EglInterface& egl )
{
DALI_LOG_TRACE_METHOD( gRenderSurfaceLogFilter );
- wl_egl_window_destroy(mEglWindow);
+ if( mEglWindow != NULL )
+ {
+ wl_egl_window_destroy(mEglWindow);
+ mEglWindow = NULL;
+ }
+
mEglWindow = wl_egl_window_create(ecore_wl_window_surface_get(mWlWindow), mPosition.width, mPosition.height);
Internal::Adaptor::EglImplementation& eglImpl = static_cast<Internal::Adaptor::EglImplementation&>( egl );
return true;
}
-void WindowRenderSurface::PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, DisplayConnection* displayConnection, unsigned int deltaTime, bool replacingSurface )
+void WindowRenderSurface::PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, DisplayConnection* displayConnection, bool replacingSurface )
{
Internal::Adaptor::EglImplementation& eglImpl = static_cast<Internal::Adaptor::EglImplementation&>( egl );
eglImpl.SwapBuffers();
mWlWindow = AnyCast< Ecore_Wl_Window* >( surfaceId );
}
+void WindowRenderSurface::SetThreadSynchronization( ThreadSynchronizationInterface& /* threadSynchronization */ )
+{
+ // Nothing to do.
+}
+
void WindowRenderSurface::ReleaseLock()
{
// Nothing to do.