X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fcommon%2Fcore-impl.cpp;h=8f07f3594a607ffbf12b27e322a545130b7525b7;hb=refs%2Fchanges%2F21%2F114921%2F1;hp=c9ca158da92371cf9235362ee64c77ec0d8c3b21;hpb=dc64de7412647ded380d71d5f5722c7767c1fdd4;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/common/core-impl.cpp b/dali/internal/common/core-impl.cpp index c9ca158..8f07f35 100644 --- a/dali/internal/common/core-impl.cpp +++ b/dali/internal/common/core-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,6 +44,7 @@ #include #include #include +#include #include #include @@ -116,6 +117,8 @@ Core::Core( RenderController& renderController, PlatformAbstraction& platform, mRenderManager = RenderManager::New( glAbstraction, glSyncAbstraction, *mTextureUploadedQueue ); + mRenderTaskProcessor = new SceneGraph::RenderTaskProcessor(); + RenderQueue& renderQueue = mRenderManager->GetRenderQueue(); TextureCache& textureCache = mRenderManager->GetTextureCache(); @@ -145,7 +148,8 @@ Core::Core( RenderController& renderController, PlatformAbstraction& platform, renderController, *mRenderManager, renderQueue, - *mTextureCacheDispatcher ); + *mTextureCacheDispatcher, + *mRenderTaskProcessor ); mRenderManager->SetShaderSaver( *mUpdateManager ); @@ -188,6 +192,7 @@ Core::~Core() if( tls ) { tls->Remove(); + delete tls; } // Stop relayout requests being raised on stage destruction @@ -210,6 +215,7 @@ Core::~Core() delete mTextureCacheDispatcher; delete mUpdateManager; delete mRenderManager; + delete mRenderTaskProcessor; delete mTextureUploadedQueue; } @@ -238,8 +244,20 @@ void Core::ContextDestroyed() void Core::SurfaceResized( unsigned int width, unsigned int height ) { - mStage->SetSize( width, height ); - mRelayoutController->SetStageSize( width, height ); + mStage->SurfaceResized( width, height ); + + // The stage-size may be less than surface-size (reduced by top-margin) + Vector2 size = mStage->GetSize(); + mRelayoutController->SetStageSize( size.width, size.height ); +} + +void Core::SetTopMargin( unsigned int margin ) +{ + mStage->SetTopMargin( margin ); + + // The stage-size may be less than surface-size (reduced by top-margin) + Vector2 size = mStage->GetSize(); + mRelayoutController->SetStageSize( size.width, size.height ); } void Core::SetDpi( unsigned int dpiHorizontal, unsigned int dpiVertical ) @@ -313,7 +331,7 @@ void Core::ProcessEvents() // Guard against calls to ProcessEvents() during ProcessEvents() if( mProcessingEvent ) { - DALI_LOG_ERROR( "ProcessEvents should not be called from within ProcessEvents!" ); + DALI_LOG_ERROR( "ProcessEvents should not be called from within ProcessEvents!\n" ); mRenderController.RequestProcessEventsOnIdle(); return; } @@ -447,7 +465,7 @@ RelayoutController& Core::GetRelayoutController() void Core::CreateThreadLocalStorage() { // a pointer to the ThreadLocalStorage object will be stored in TLS - // and automatically deleted when the thread is killed + // The ThreadLocalStorage object should be deleted by the Core destructor new ThreadLocalStorage(this); }