CreateWindow( positionSize );
}
+ for( int i = 0; i < 4; ++i )
+ {
+ mAvaiableWindowOrientations[i] = 0;
+ }
+
mWlSurface = ecore_wl2_window_surface_get( mEcoreWindow );
SetTransparency( isTransparent );
EGLNativeWindowType WindowBaseEcoreWl2::CreateEglWindow( int width, int height )
{
- mEglWindow = wl_egl_window_create( mWlSurface, width, height );
+ int totalAngle = (mWindowRotationAngle + mScreenRotationAngle) % 360;
+ if( totalAngle == 90 || totalAngle == 270 )
+ {
+ mEglWindow = wl_egl_window_create( mWlSurface, height, width );
+ }
+ else
+ {
+ mEglWindow = wl_egl_window_create( mWlSurface, width, height );
+ }
return static_cast< EGLNativeWindowType >( mEglWindow );
}
void WindowBaseEcoreWl2::SetAvailableAnlges( const std::vector< int >& angles )
{
- int rotations[4] = { 0 };
DALI_LOG_RELEASE_INFO( "WindowBaseEcoreWl2::SetAvailableAnlges, angle's count: %d, angles\n", angles.size() );
- for( std::size_t i = 0; i < angles.size(); ++i )
+ std::size_t size = angles.size();
+ for( std::size_t i = 0; i < size; ++i )
{
- rotations[i] = static_cast< int >( angles[i] );
- DALI_LOG_RELEASE_INFO( "%d ", rotations[i] );
+ mAvaiableWindowOrientations[i] = static_cast< int >( angles[i] );
+ DALI_LOG_RELEASE_INFO( "%d ", mAvaiableWindowOrientations[i] );
}
- ecore_wl2_window_available_rotations_set( mEcoreWindow, rotations, angles.size() );
+ ecore_wl2_window_available_rotations_set( mEcoreWindow, mAvaiableWindowOrientations, size );
}
void WindowBaseEcoreWl2::SetPreferredAngle( int angle )
{
+ DALI_LOG_RELEASE_INFO( "WindowBaseEcoreWl2::SetPreferredAngle, angle: %d\n", angle );
ecore_wl2_window_preferred_rotation_set( mEcoreWindow, angle );
}
DALI_ASSERT_ALWAYS( 0 && "Failed to get display" );
}
+ ecore_wl2_display_sync( display );
+
mEcoreWindow = ecore_wl2_window_new( display, NULL, positionSize.x, positionSize.y, positionSize.width, positionSize.height );
if ( mEcoreWindow == 0 )