#include <window-render-surface.h>
// EXTERNAL INCLUDES
-#include <dlfcn.h>
#include <dali/integration-api/gl-abstraction.h>
#include <dali/integration-api/debug.h>
-#include <dali/integration-api/gl-defines.h>
// INTERNAL INCLUDES
#include <wl-types.h>
DALI_LOG_INFO( gRenderSurfaceLogFilter, Debug::Verbose, "WindowRenderSurface::Rotate: angle = %d screen rotation = %d\n", mRotationAngle, mScreenRotationAngle );
}
-void WindowRenderSurface::OutputTransformed()
+int WindowRenderSurface::OutputTransformed()
{
int transform;
- if( ecore_wl_window_ignore_output_transform_get( mWlWindow ) )
- {
- transform = 0;
- }
- else
+ if( !ecore_wl_window_ignore_output_transform_get( mWlWindow ) )
{
transform = ecore_wl_output_transform_get( ecore_wl_window_output_find( mWlWindow ) );
+ mScreenRotationAngle = transform * 90;
+ mScreenRotationFinished = false;
+ mResizeFinished = false;
}
-
- ecore_wl_window_buffer_transform_set( mWlWindow, transform );
-
- mScreenRotationAngle = transform * 90;
- mScreenRotationFinished = false;
-
DALI_LOG_INFO( gRenderSurfaceLogFilter, Debug::Verbose, "WindowRenderSurface::OutputTransformed: angle = %d screen rotation = %d\n", mRotationAngle, mScreenRotationAngle );
+ return (mRotationAngle + mScreenRotationAngle) % 360;
}
void WindowRenderSurface::SetTransparency( bool transparent )
{
if( resizingSurface )
{
+ int totalAngle = (mRotationAngle + mScreenRotationAngle) % 360;
#ifdef OVER_TIZEN_VERSION_4
// Window rotate or screen rotate
if( !mRotationFinished || !mScreenRotationFinished )
{
wl_egl_window_rotation rotation;
wl_output_transform bufferTransform;
- int totalAngle = (mRotationAngle + mScreenRotationAngle) % 360;
switch( totalAngle )
{
// Resize case
if( !mResizeFinished )
{
- wl_egl_window_resize( mEglWindow, mPositionSize.width, mPositionSize.height, mPositionSize.x, mPositionSize.y );
+ if( totalAngle == 0 || totalAngle == 180 )
+ {
+ wl_egl_window_resize( mEglWindow, mPositionSize.width, mPositionSize.height, mPositionSize.x, mPositionSize.y );
+ }
+ else
+ {
+ wl_egl_window_resize( mEglWindow, mPositionSize.height, mPositionSize.width, mPositionSize.x, mPositionSize.y );
+ }
mResizeFinished = true;
DALI_LOG_INFO( gRenderSurfaceLogFilter, Debug::Verbose, "WindowRenderSurface::PreRender: Set resize\n" );
Ecore_Wl_Output* output = ecore_wl_window_output_find( mWlWindow );
int transform = ecore_wl_output_transform_get( output );
- ecore_wl_window_buffer_transform_set( mWlWindow, transform );
mScreenRotationAngle = transform * 90;
mScreenRotationFinished = false;