Changed Render::Renderer to use MemoryPoolAllocator
[platform/core/uifw/dali-core.git] / dali / internal / update / controllers / render-message-dispatcher.h
index 06d3cfd..59a6e81 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_INTERNAL_SCENE_GRAPH_RENDER_MESSAGE_DISPATCHER_H__
-#define __DALI_INTERNAL_SCENE_GRAPH_RENDER_MESSAGE_DISPATCHER_H__
+#ifndef DALI_INTERNAL_SCENE_GRAPH_RENDER_MESSAGE_DISPATCHER_H
+#define DALI_INTERNAL_SCENE_GRAPH_RENDER_MESSAGE_DISPATCHER_H
 
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
  */
 
 // INTERNAL INCLUDES
+#include <dali/internal/render/renderers/render-renderer.h>
 #include <dali/internal/update/common/scene-graph-buffers.h>
-#include <dali/internal/render/gl-resources/gpu-buffer.h>
 
 namespace Dali
 {
-
 namespace Internal
 {
 class MessageBase;
 
 namespace Render
 {
-class Renderer;
+class RenderTracker;
 }
+
 namespace SceneGraph
 {
-
 class RenderManager;
 class RenderQueue;
-class RenderTracker;
-class RenderGeometry;
-class PropertyBufferDataProvider;
+
 /**
  * A utility class for sending messages to the render-thread.
  */
 class RenderMessageDispatcher
 {
 public:
-
   /**
    * Constructor
    */
-  RenderMessageDispatcher( RenderManager& renderManager, RenderQueue& renderQueue, const SceneGraphBuffers& buffers );
+  RenderMessageDispatcher(RenderManager& renderManager, RenderQueue& renderQueue, const SceneGraphBuffers& buffers);
 
   /**
    * Destructor
@@ -63,64 +59,32 @@ public:
    * @param[in] renderer The renderer to add.
    * @post renderer ownership is transferred.
    */
-  void AddRenderer( Render::Renderer& renderer );
+  void AddRenderer(const Render::RendererKey& renderer);
 
   /**
    * Remove a Renderer.
    * @param[in] renderer The renderer to remove.
    * @post renderer will be destroyed in the next Render.
    */
-  void RemoveRenderer( Render::Renderer& renderer );
-
-  /**
-   * Add a Geometry
-   * @param[in] renderGeometry The geometry to add.
-   * @post RenderGeometry ownership is transferred.
-   */
-  void AddGeometry( RenderGeometry& renderGeometry );
-
-  /**
-   * Remove a Geometry.
-   * @param[in] renderGeometry The geometry to remove.
-   * @post RenderGeometry will be destroyed in the next Render.
-   */
-  void RemoveGeometry( RenderGeometry& renderGeometry );
-
-  /**
-   * Add a PropertyBuffer.
-   * @param[in] renderGeometry The geometry
-   * @param[in] propertyBuffer The PropertyBuffer
-   * @param[in] target Specifies the type of the buffer
-   * @param[in] usage Specifies how will the buffer be used
-   */
-  void AddPropertyBuffer( RenderGeometry& renderGeometry, PropertyBufferDataProvider* propertyBuffer, GpuBuffer::Target target, GpuBuffer::Usage usage );
-
-  /**
-   * Remove a PropertyBuffer.
-   * @param[in] renderGeometry The geometry
-   * @param[in] propertyBuffer The PropertyBuffer
-   * @post PropertyBuffer will be destroyed in the next Render.
-   */
-  void RemovePropertyBuffer( RenderGeometry& renderGeometry, PropertyBufferDataProvider* propertyBuffer );
+  void RemoveRenderer(const Render::RendererKey& renderer);
 
   /**
    * Add a Render tracker.
    * @param[in] renderTracker The render tracker to add.
    * @post ownership is transferred
    */
-  void AddRenderTracker( RenderTracker& renderTracker );
+  void AddRenderTracker(Render::RenderTracker& renderTracker);
 
   /**
    * Remove a Render tracker.
    * @param[in] renderTracker The render tracker to add.
    * @post render tracker will be destroyed in the next Render pass.
    */
-  void RemoveRenderTracker( RenderTracker& renderTracker );
+  void RemoveRenderTracker(Render::RenderTracker& renderTracker);
 
 private:
-
   RenderManager& mRenderManager;
-  RenderQueue& mRenderQueue;
+  RenderQueue&   mRenderQueue;
 
   const SceneGraphBuffers& mBuffers;
 };
@@ -131,4 +95,4 @@ private:
 
 } // namespace Dali
 
-#endif // __DALI_INTERNAL_SCENE_GRAPH_RENDERER_DISPATCHER_H__
+#endif // DALI_INTERNAL_SCENE_GRAPH_RENDER_MESSAGE_DISPATCHER_H