projects
/
platform
/
core
/
uifw
/
dali-core.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[Tizen] Add screen and client rotation itself function
[platform/core/uifw/dali-core.git]
/
dali
/
internal
/
event
/
common
/
scene-impl.cpp
diff --git
a/dali/internal/event/common/scene-impl.cpp
b/dali/internal/event/common/scene-impl.cpp
index
6055dc6
..
917f76a
100644
(file)
--- a/
dali/internal/event/common/scene-impl.cpp
+++ b/
dali/internal/event/common/scene-impl.cpp
@@
-63,6
+63,7
@@
Scene::Scene()
mSize(), // Don't set the proper value here, this will be set when the surface is set later
mDpi(),
mBackgroundColor( DEFAULT_BACKGROUND_COLOR ),
mSize(), // Don't set the proper value here, this will be set when the surface is set later
mDpi(),
mBackgroundColor( DEFAULT_BACKGROUND_COLOR ),
+ mSurfaceOrientation( 0 ),
mDepthTreeDirty( false ),
mEventProcessor( *this, ThreadLocalStorage::GetInternal()->GetGestureEventProcessor() )
{
mDepthTreeDirty( false ),
mEventProcessor( *this, ThreadLocalStorage::GetInternal()->GetGestureEventProcessor() )
{
@@
-211,45
+212,43
@@
void Scene::SetSurface( Integration::RenderSurface& surface )
mFrameBuffer = Dali::Internal::FrameBuffer::New( surface, Dali::FrameBuffer::Attachment::NONE );
defaultRenderTask->SetFrameBuffer( mFrameBuffer );
mFrameBuffer = Dali::Internal::FrameBuffer::New( surface, Dali::FrameBuffer::Attachment::NONE );
defaultRenderTask->SetFrameBuffer( mFrameBuffer );
- SurfaceResized();
+ SurfaceResized(
false
);
}
}
}
}
-void Scene::SurfaceResized()
+void Scene::SurfaceResized(
bool forceUpdate
)
{
if( mSurface )
{
const PositionSize surfacePositionSize = mSurface->GetPositionSize();
const float fWidth = static_cast< float >( surfacePositionSize.width );
const float fHeight = static_cast< float >( surfacePositionSize.height );
{
if( mSurface )
{
const PositionSize surfacePositionSize = mSurface->GetPositionSize();
const float fWidth = static_cast< float >( surfacePositionSize.width );
const float fHeight = static_cast< float >( surfacePositionSize.height );
+ const int orientation = mSurface->GetOrientation();
- if( ( fabsf( mSize.width - fWidth ) > Math::MACHINE_EPSILON_1 ) || ( fabsf( mSize.height - fHeight ) > Math::MACHINE_EPSILON_1 ) )
+ if( ( ( fabsf( mSize.width - fWidth ) > Math::MACHINE_EPSILON_1 ) || ( fabsf( mSize.height - fHeight ) > Math::MACHINE_EPSILON_1 ) )
+ || ( orientation != mSurfaceOrientation )
+ || ( forceUpdate ) )
{
{
- Rect< int32_t > newSize( 0, 0, static_cast< int32_t >( surfacePositionSize.width ), static_cast< int32_t >( surfacePositionSize.height ) );
+ Rect< int32_t > newSize( 0, 0, static_cast< int32_t >( surfacePositionSize.width ), static_cast< int32_t >( surfacePositionSize.height ) );
// truncated
mSize.width = fWidth;
mSize.height = fHeight;
mSize.width = fWidth;
mSize.height = fHeight;
+ mSurfaceOrientation = orientation;
// Calculates the aspect ratio, near and far clipping planes, field of view and camera Z position.
mDefaultCamera->SetPerspectiveProjection( mSize );
// Calculates the aspect ratio, near and far clipping planes, field of view and camera Z position.
mDefaultCamera->SetPerspectiveProjection( mSize );
+ mDefaultCamera->RotateProjection( mSurfaceOrientation );
mRootLayer->SetSize( mSize.width, mSize.height );
ThreadLocalStorage* tls = ThreadLocalStorage::GetInternal();
SceneGraph::UpdateManager& updateManager = tls->GetUpdateManager();
mRootLayer->SetSize( mSize.width, mSize.height );
ThreadLocalStorage* tls = ThreadLocalStorage::GetInternal();
SceneGraph::UpdateManager& updateManager = tls->GetUpdateManager();
- SetDefaultSurfaceRectMessage( updateManager, newSize ); // truncated
+ SetDefaultSurfaceRectMessage( updateManager, newSize );
+ SetDefaultSurfaceOrientationMessage( updateManager, mSurfaceOrientation );
+ // set default render-task viewport parameters
RenderTaskPtr defaultRenderTask = mRenderTaskList->GetTask( 0u );
RenderTaskPtr defaultRenderTask = mRenderTaskList->GetTask( 0u );
-
- // if single render task to screen then set its viewport parameters
- if( 1 == mRenderTaskList->GetTaskCount() )
- {
- if( !defaultRenderTask->GetTargetFrameBuffer() )
- {
- defaultRenderTask->SetViewport( newSize ); // truncated
- }
- }
-
+ defaultRenderTask->SetViewport( newSize );
defaultRenderTask->GetFrameBuffer()->SetSize( static_cast<uint32_t>( newSize.width ), static_cast<uint32_t>( newSize.height ) );
}
}
defaultRenderTask->GetFrameBuffer()->SetSize( static_cast<uint32_t>( newSize.width ), static_cast<uint32_t>( newSize.height ) );
}
}
@@
-329,6
+328,12
@@
void Scene::EmitKeyEventSignal(const KeyEvent& event)
}
}
}
}
+bool Scene::EmitKeyEventGeneratedSignal(const KeyEvent& event)
+{
+ // Emit the KeyEventGenerated signal when KeyEvent is generated
+ return mKeyEventGeneratedSignal.Emit( event );
+}
+
void Scene::EmitEventProcessingFinishedSignal()
{
if ( !mEventProcessingFinishedSignal.Empty() )
void Scene::EmitEventProcessingFinishedSignal()
{
if ( !mEventProcessingFinishedSignal.Empty() )
@@
-365,6
+370,11
@@
Integration::Scene::KeyEventSignalType& Scene::KeyEventSignal()
return mKeyEventSignal;
}
return mKeyEventSignal;
}
+Integration::Scene::KeyEventGeneratedSignalType& Scene::KeyEventGeneratedSignal()
+{
+ return mKeyEventGeneratedSignal;
+}
+
Integration::Scene::EventProcessingFinishedSignalType& Scene::EventProcessingFinishedSignal()
{
return mEventProcessingFinishedSignal;
Integration::Scene::EventProcessingFinishedSignalType& Scene::EventProcessingFinishedSignal()
{
return mEventProcessingFinishedSignal;