Delete ImageFactory and ImageFactoryCache as they are unused
[platform/core/uifw/dali-core.git] / dali / internal / common / core-impl.cpp
index fbd547e..c7f51ae 100644 (file)
@@ -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.
 #include <dali/integration-api/system-overlay.h>
 #include <dali/integration-api/core.h>
 #include <dali/integration-api/debug.h>
-#include <dali/integration-api/platform-abstraction.h>
+#include <dali/integration-api/events/event.h>
 #include <dali/integration-api/gl-sync-abstraction.h>
+#include <dali/integration-api/platform-abstraction.h>
 #include <dali/integration-api/render-controller.h>
+
 #include <dali/internal/event/actors/actor-impl.h>
-#include <dali/internal/event/common/stage-impl.h>
 #include <dali/internal/event/animation/animation-playlist.h>
-#include <dali/internal/event/common/property-notification-manager.h>
 #include <dali/internal/event/common/notification-manager.h>
-#include <dali/integration-api/events/event.h>
-#include <dali/internal/event/events/event-processor.h>
-#include <dali/internal/event/events/gesture-event-processor.h>
-#include <dali/internal/update/manager/update-manager.h>
-#include <dali/internal/render/common/performance-monitor.h>
-#include <dali/internal/render/common/render-manager.h>
-#include <dali/internal/update/common/discard-queue.h>
-#include <dali/internal/update/resources/resource-manager.h>
-#include <dali/internal/event/images/image-factory.h>
+#include <dali/internal/event/common/property-notification-manager.h>
+#include <dali/internal/event/common/stage-impl.h>
 #include <dali/internal/event/common/thread-local-storage.h>
-#include <dali/internal/event/effects/shader-factory.h>
-#include <dali/internal/update/touch/touch-resampler.h>
 #include <dali/internal/event/common/type-registry-impl.h>
+#include <dali/internal/event/effects/shader-factory.h>
+#include <dali/internal/event/events/event-processor.h>
+#include <dali/internal/event/events/gesture-event-processor.h>
 #include <dali/internal/event/render-tasks/render-task-list-impl.h>
 #include <dali/internal/event/size-negotiation/relayout-controller-impl.h>
 
+#include <dali/internal/update/common/discard-queue.h>
+#include <dali/internal/update/common/texture-cache-dispatcher.h>
+#include <dali/internal/update/manager/update-manager.h>
+#include <dali/internal/update/manager/geometry-batcher.h>
+#include <dali/internal/update/manager/render-task-processor.h>
+#include <dali/internal/update/resources/resource-manager.h>
+
+#include <dali/internal/render/common/performance-monitor.h>
+#include <dali/internal/render/common/render-manager.h>
 #include <dali/internal/render/gl-resources/texture-cache.h>
 #include <dali/internal/render/gl-resources/context.h>
 
@@ -54,6 +57,7 @@ using Dali::Internal::SceneGraph::RenderManager;
 using Dali::Internal::SceneGraph::DiscardQueue;
 using Dali::Internal::SceneGraph::RenderQueue;
 using Dali::Internal::SceneGraph::TextureCache;
+using Dali::Internal::SceneGraph::TextureCacheDispatcher;
 
 namespace
 {
@@ -92,8 +96,8 @@ Core::Core( RenderController& renderController, PlatformAbstraction& platform,
   mDiscardQueue(NULL),
   mTextureUploadedQueue(),
   mNotificationManager(NULL),
-  mImageFactory(NULL),
   mShaderFactory(NULL),
+  mGeometryBatcher( NULL ),
   mIsActive(true),
   mProcessingEvent(false)
 {
@@ -111,7 +115,11 @@ Core::Core( RenderController& renderController, PlatformAbstraction& platform,
 
   mTextureUploadedQueue = new LockedResourceQueue;
 
-  mRenderManager = RenderManager::New( glAbstraction, glSyncAbstraction, *mTextureUploadedQueue );
+  mGeometryBatcher = new SceneGraph::GeometryBatcher();
+
+  mRenderTaskProcessor = new SceneGraph::RenderTaskProcessor();
+
+  mRenderManager = RenderManager::New( glAbstraction, glSyncAbstraction, *mGeometryBatcher, *mTextureUploadedQueue );
 
   RenderQueue& renderQueue = mRenderManager->GetRenderQueue();
   TextureCache& textureCache = mRenderManager->GetTextureCache();
@@ -123,17 +131,17 @@ Core::Core( RenderController& renderController, PlatformAbstraction& platform,
   }
   textureCache.SetDiscardBitmapsPolicy(discardPolicy);
 
+  mTextureCacheDispatcher = new SceneGraph::TextureCacheDispatcher( renderQueue, textureCache );
+
   mDiscardQueue = new DiscardQueue( renderQueue );
 
   mResourceManager = new ResourceManager(  mPlatform,
                                           *mNotificationManager,
-                                           textureCache,
+                                          *mTextureCacheDispatcher,
                                           *mTextureUploadedQueue,
                                           *mDiscardQueue,
                                            renderQueue );
 
-  mTouchResampler = TouchResampler::New();
-
   mUpdateManager = new UpdateManager( *mNotificationManager,
                                       *mAnimationPlaylist,
                                       *mPropertyNotificationManager,
@@ -142,8 +150,9 @@ Core::Core( RenderController& renderController, PlatformAbstraction& platform,
                                        renderController,
                                       *mRenderManager,
                                        renderQueue,
-                                       textureCache,
-                                      *mTouchResampler );
+                                      *mTextureCacheDispatcher,
+                                      *mGeometryBatcher,
+                                      *mRenderTaskProcessor );
 
   mRenderManager->SetShaderSaver( *mUpdateManager );
 
@@ -159,10 +168,8 @@ Core::Core( RenderController& renderController, PlatformAbstraction& platform,
   mGestureEventProcessor = new GestureEventProcessor(*mStage, gestureManager, mRenderController);
   mEventProcessor = new EventProcessor(*mStage, *mNotificationManager, *mGestureEventProcessor);
 
-  mImageFactory = new ImageFactory( *mResourceClient );
   mShaderFactory = new ShaderFactory();
   mUpdateManager->SetShaderSaver( *mShaderFactory );
-  mShaderFactory->LoadDefaultShaders();
 
   GetImplementation(Dali::TypeRegistry::Get()).CallInitFunctions();
 }
@@ -200,14 +207,15 @@ Core::~Core()
   delete mEventProcessor;
   delete mGestureEventProcessor;
   delete mNotificationManager;
-  delete mImageFactory;
   delete mShaderFactory;
   delete mResourceClient;
   delete mResourceManager;
   delete mDiscardQueue;
+  delete mTextureCacheDispatcher;
   delete mUpdateManager;
-  delete mTouchResampler;
   delete mRenderManager;
+  delete mRenderTaskProcessor;
+  delete mGeometryBatcher;
   delete mTextureUploadedQueue;
 }
 
@@ -220,7 +228,6 @@ void Core::RecoverFromContextLoss()
 {
   DALI_LOG_INFO(gCoreFilter, Debug::Verbose, "Core::RecoverFromContextLoss()\n");
 
-  mImageFactory->RecoverFromContextLoss(); // Reload images from files
   mStage->GetRenderTaskList().RecoverFromContextLoss(); // Re-trigger render-tasks
 }
 
@@ -236,8 +243,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 )
@@ -311,7 +330,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;
   }
@@ -329,23 +348,19 @@ void Core::ProcessEvents()
   // Avoid allocating MessageBuffers, triggering size-negotiation or sending any other spam whilst paused
   if( mIsActive )
   {
-    // Emit signal here to start size negotiation and control relayout.
+    // Emit signal here to inform listeners that event processing has finished.
     mStage->EmitEventProcessingFinishedSignal();
 
     // Run the size negotiation after event processing finished signal
     mRelayoutController->Relayout();
 
-    // Flush discard queue for image factory
-    mImageFactory->FlushReleaseQueue();
-
     // Flush any queued messages for the update-thread
     const bool messagesToProcess = mUpdateManager->FlushQueue();
 
     // Check if the touch or gestures require updates.
-    const bool touchNeedsUpdate = mTouchResampler->NeedsUpdate();
     const bool gestureNeedsUpdate = mGestureEventProcessor->NeedsUpdate();
 
-    if( messagesToProcess || touchNeedsUpdate || gestureNeedsUpdate )
+    if( messagesToProcess || gestureNeedsUpdate )
     {
       // tell the render controller to keep update thread running
       mRenderController.RequestUpdate();
@@ -358,11 +373,6 @@ void Core::ProcessEvents()
   mProcessingEvent = false;
 }
 
-void Core::UpdateTouchData(const Integration::TouchData& touch)
-{
-  mTouchResampler->SendTouchData( touch );
-}
-
 unsigned int Core::GetMaximumUpdateCount() const
 {
   return MAXIMUM_UPDATE_COUNT;
@@ -428,11 +438,6 @@ ResourceClient& Core::GetResourceClient()
   return *(mResourceClient);
 }
 
-ImageFactory& Core::GetImageFactory()
-{
-  return *(mImageFactory);
-}
-
 ShaderFactory& Core::GetShaderFactory()
 {
   return *(mShaderFactory);