X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali%2Finternal%2Fwindow-system%2Ftizen-wayland%2Fnative-render-surface-ecore-wl.cpp;h=dc3f03ddcb38ff1395d9eae100259551f1d7d316;hb=556055cba279f756420711d8b53b0b55ea4f83a7;hp=48069c7e45bde1e75e8cdc1435928c50ac5d668c;hpb=9d7a16b52dcb50e3ec091ba1349e449a5fec6ab5;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/tizen-wayland/native-render-surface-ecore-wl.cpp b/dali/internal/window-system/tizen-wayland/native-render-surface-ecore-wl.cpp index 48069c7..dc3f03d 100644 --- a/dali/internal/window-system/tizen-wayland/native-render-surface-ecore-wl.cpp +++ b/dali/internal/window-system/tizen-wayland/native-render-surface-ecore-wl.cpp @@ -53,8 +53,8 @@ Debug::Filter* gNativeSurfaceLogFilter = Debug::Filter::New(Debug::Verbose, fals } // unnamed namespace -NativeRenderSurfaceEcoreWl::NativeRenderSurfaceEcoreWl( Dali::PositionSize positionSize, bool isTransparent ) -: mPosition( positionSize ), +NativeRenderSurfaceEcoreWl::NativeRenderSurfaceEcoreWl( SurfaceSize surfaceSize, Any surface, bool isTransparent ) +: mSurfaceSize( surfaceSize ), mRenderNotification( NULL ), mGraphics( NULL ), mEGL( nullptr ), @@ -70,8 +70,16 @@ NativeRenderSurfaceEcoreWl::NativeRenderSurfaceEcoreWl( Dali::PositionSize posit { Dali::Internal::Adaptor::WindowSystem::Initialize(); - CreateNativeRenderable(); - setenv( "EGL_PLATFORM", "tbm", 1 ); + if( surface.Empty() ) + { + CreateNativeRenderable(); + } + else + { + // check we have a valid type + DALI_ASSERT_ALWAYS( ( surface.GetType() == typeid (tbm_surface_queue_h) ) && "Surface type is invalid" ); + mTbmQueue = AnyCast< tbm_surface_queue_h >( surface ); + } } NativeRenderSurfaceEcoreWl::~NativeRenderSurfaceEcoreWl() @@ -120,7 +128,7 @@ void NativeRenderSurfaceEcoreWl::WaitUntilSurfaceReplaced() PositionSize NativeRenderSurfaceEcoreWl::GetPositionSize() const { - return mPosition; + return PositionSize( 0, 0, static_cast( mSurfaceSize.GetWidth() ), static_cast( mSurfaceSize.GetHeight() ) ); } void NativeRenderSurfaceEcoreWl::GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) @@ -142,10 +150,14 @@ void NativeRenderSurfaceEcoreWl::GetDpi( unsigned int& dpiHorizontal, unsigned i dpiVertical = int( yres + 0.5f ); } +int NativeRenderSurfaceEcoreWl::GetOrientation() const +{ + return 0; +} + void NativeRenderSurfaceEcoreWl::InitializeGraphics() { DALI_LOG_TRACE_METHOD( gNativeSurfaceLogFilter ); - unsetenv( "EGL_PLATFORM" ); mGraphics = &mAdaptor->GetGraphicsInterface(); auto eglGraphics = static_cast(mGraphics); @@ -209,7 +221,8 @@ void NativeRenderSurfaceEcoreWl::MoveResize( Dali::PositionSize positionSize ) DALI_LOG_ERROR( "Failed to resize tbm_surface_queue" ); } - mPosition = positionSize; + mSurfaceSize.SetWidth( static_cast( positionSize.width ) ); + mSurfaceSize.SetHeight( static_cast( positionSize.height ) ); } void NativeRenderSurfaceEcoreWl::StartRender() @@ -218,18 +231,7 @@ void NativeRenderSurfaceEcoreWl::StartRender() bool NativeRenderSurfaceEcoreWl::PreRender( bool resizingSurface, const std::vector>& damagedRects, Rect& clippingRect ) { - auto eglGraphics = static_cast(mGraphics); - if (eglGraphics) - { - Internal::Adaptor::EglImplementation& eglImpl = eglGraphics->GetEglImplementation(); - if (resizingSurface) - { - eglImpl.SetFullSwapNextFrame(); - } - - eglImpl.SetDamage(mEGLSurface, damagedRects, clippingRect); - } - + //TODO: Need to support partial update return true; } @@ -326,10 +328,13 @@ void NativeRenderSurfaceEcoreWl::ReleaseLock() void NativeRenderSurfaceEcoreWl::CreateNativeRenderable() { + int width = static_cast( mSurfaceSize.GetWidth() ); + int height = static_cast( mSurfaceSize.GetHeight() ); + // check we're creating one with a valid size - DALI_ASSERT_ALWAYS( mPosition.width > 0 && mPosition.height > 0 && "tbm_surface size is invalid" ); + DALI_ASSERT_ALWAYS( width > 0 && height > 0 && "tbm_surface size is invalid" ); - mTbmQueue = tbm_surface_queue_create( 3, mPosition.width, mPosition.height, mTbmFormat, TBM_BO_DEFAULT ); + mTbmQueue = tbm_surface_queue_create( 3, width, height, mTbmFormat, TBM_BO_DEFAULT ); if( mTbmQueue ) {