Remove RenderSurface from Core
[platform/core/uifw/dali-core.git] / dali / internal / common / core-impl.h
index bd94c43..9272e16 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_CORE_H
 
 /*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -39,12 +39,11 @@ namespace Integration
 class Processor;
 class RenderController;
 class PlatformAbstraction;
-class GestureManager;
 class GlAbstraction;
 class GlSyncAbstraction;
+class GlContextHelperAbstraction;
 class UpdateStatus;
 class RenderStatus;
-class RenderSurface;
 struct Event;
 struct TouchData;
 }
@@ -84,8 +83,7 @@ public:
         Integration::PlatformAbstraction& platform,
         Integration::GlAbstraction& glAbstraction,
         Integration::GlSyncAbstraction& glSyncAbstraction,
-        Integration::GestureManager& gestureManager,
-        ResourcePolicy::DataRetention dataRetentionPolicy,
+        Integration::GlContextHelperAbstraction& glContextHelperAbstraction,
         Integration::RenderToFrameBuffer renderToFboEnabled,
         Integration::DepthBufferAvailable depthBufferAvailable,
         Integration::StencilBufferAvailable stencilBufferAvailable );
@@ -121,11 +119,6 @@ public:
   void RecoverFromContextLoss();
 
   /**
-   * @copydoc Dali::Integration::Core::SurfaceResized(Integration::RenderSurface*)
-   */
-  void SurfaceResized( Integration::RenderSurface* surface );
-
-  /**
    * @copydoc Dali::Integration::Core::SetMinimumFrameTimeInterval(uint32_t)
    */
   void SetMinimumFrameTimeInterval(uint32_t interval);
@@ -138,7 +131,17 @@ public:
   /**
    * @copydoc Dali::Integration::Core::Render()
    */
-  void Render( Integration::RenderStatus& status, bool forceClear );
+  void PreRender( Integration::RenderStatus& status, bool forceClear, bool uploadOnly );
+
+  /**
+   * @copydoc Dali::Integration::Core::RenderScene()
+   */
+  void RenderScene( Integration::Scene& scene, bool renderToFbo );
+
+  /**
+   * @copydoc Dali::Integration::Core::Render()
+   */
+  void PostRender( bool uploadOnly );
 
   /**
    * @copydoc Dali::Integration::Core::SceneCreated()
@@ -326,10 +329,10 @@ private:
   OwnerPointer<ShaderFactory>                   mShaderFactory;               ///< Shader resource factory
   OwnerPointer<NotificationManager>             mNotificationManager;         ///< Notification manager
   OwnerPointer<GestureEventProcessor>           mGestureEventProcessor;       ///< The gesture event processor
-  OwnerPointer<EventProcessor>                  mEventProcessor;              ///< The event processor
   Dali::Vector<Integration::Processor*>         mProcessors;                  ///< Registered processors (not owned)
 
-  std::vector<ScenePtr>                         mScenes;                      ///< A container of scenes that bound to a surface for rendering, owned by Core
+  using SceneContainer = std::vector<ScenePtr>;
+  SceneContainer                                mScenes;                      ///< A container of scenes that bound to a surface for rendering, owned by Core
 
   // The object registry
   ObjectRegistryPtr                             mObjectRegistry;