summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3fc35c7)
// Create the scene
PositionSize surfacePositionSize = mSurface->GetPositionSize();
// Create the scene
PositionSize surfacePositionSize = mSurface->GetPositionSize();
- mScene = Dali::Integration::Scene::New(Size(static_cast<float>(surfacePositionSize.width), static_cast<float>(surfacePositionSize.height)));
+ int orientation = mSurface->GetOrientation();
+ mScene = Dali::Integration::Scene::New( Size(static_cast<float>( surfacePositionSize.width ), static_cast<float>( surfacePositionSize.height )), orientation );
Internal::Adaptor::Adaptor& adaptorImpl = Internal::Adaptor::Adaptor::GetImplementation(adaptor);
mAdaptor = &adaptorImpl;
Internal::Adaptor::Adaptor& adaptorImpl = Internal::Adaptor::Adaptor::GetImplementation(adaptor);
mAdaptor = &adaptorImpl;
mRotationSupported( false ),
mRotationFinished( true ),
mScreenRotationFinished( true ),
mRotationSupported( false ),
mRotationFinished( true ),
mScreenRotationFinished( true ),
- mResizeFinished( true )
+ mResizeFinished( true ),
+ mDefaultScreenRotationAvailable( false )
{
DALI_LOG_INFO( gWindowRenderSurfaceLogFilter, Debug::Verbose, "Creating Window\n" );
Initialize( surface );
{
DALI_LOG_INFO( gWindowRenderSurfaceLogFilter, Debug::Verbose, "Creating Window\n" );
Initialize( surface );
// Connect signals
mWindowBase->OutputTransformedSignal().Connect( this, &WindowRenderSurface::OutputTransformed );
// Connect signals
mWindowBase->OutputTransformedSignal().Connect( this, &WindowRenderSurface::OutputTransformed );
+
+ // Check screen rotation
+ mScreenRotationAngle = mWindowBase->GetScreenRotationAngle();
+ if( mScreenRotationAngle != 0 )
+ {
+ mScreenRotationFinished = false;
+ mResizeFinished = false;
+ mDefaultScreenRotationAvailable = true;
+ DALI_LOG_RELEASE_INFO("WindowRenderSurface::Initialize, screen rotation is enabled, screen rotation angle:[%d]\n", mScreenRotationAngle );
+ }
}
Any WindowRenderSurface::GetNativeWindow()
}
Any WindowRenderSurface::GetNativeWindow()
{
DALI_LOG_TRACE_METHOD( gWindowRenderSurfaceLogFilter );
{
DALI_LOG_TRACE_METHOD( gWindowRenderSurfaceLogFilter );
+ int width, height;
+ if( mScreenRotationAngle == 0 || mScreenRotationAngle == 180 )
+ {
+ width = mPositionSize.width;
+ height = mPositionSize.height;
+ }
+ else
+ {
+ width = mPositionSize.height;
+ height = mPositionSize.width;
+ }
+
- EGLNativeWindowType window = mWindowBase->CreateEglWindow( mPositionSize.width, mPositionSize.height );
+ EGLNativeWindowType window = mWindowBase->CreateEglWindow( width, height );
auto eglGraphics = static_cast<EglGraphics *>(mGraphics);
auto eglGraphics = static_cast<EglGraphics *>(mGraphics);
+ if( resizingSurface || mDefaultScreenRotationAvailable )
{
int totalAngle = (mRotationAngle + mScreenRotationAngle) % 360;
{
int totalAngle = (mRotationAngle + mScreenRotationAngle) % 360;
// Reset only screen rotation flag
mScreenRotationFinished = true;
// Reset only screen rotation flag
mScreenRotationFinished = true;
- DALI_LOG_INFO( gWindowRenderSurfaceLogFilter, Debug::Verbose, "WindowRenderSurface::PreRender: Set rotation [%d] [%d]\n", mRotationAngle, mScreenRotationAngle );
+ DALI_LOG_RELEASE_INFO( "WindowRenderSurface::PreRender: Set rotation [%d] [%d]\n", mRotationAngle, mScreenRotationAngle );
mWindowBase->ResizeEglWindow( positionSize );
mResizeFinished = true;
mWindowBase->ResizeEglWindow( positionSize );
mResizeFinished = true;
- DALI_LOG_INFO( gWindowRenderSurfaceLogFilter, Debug::Verbose, "WindowRenderSurface::PreRender: Set resize\n" );
+ DALI_LOG_RELEASE_INFO( "WindowRenderSurface::PreRender: Set resize\n" );
}
SetFullSwapNextFrame();
}
SetFullSwapNextFrame();
+ mDefaultScreenRotationAvailable = false;
}
SetBufferDamagedRects( damagedRects, clippingRect );
}
SetBufferDamagedRects( damagedRects, clippingRect );
bool mRotationFinished;
bool mScreenRotationFinished;
bool mResizeFinished;
bool mRotationFinished;
bool mScreenRotationFinished;
bool mResizeFinished;
+ bool mDefaultScreenRotationAvailable;
}; // class WindowRenderSurface
}; // class WindowRenderSurface