Use memory pools to allocate nodes, renderers, materials and animations
[platform/core/uifw/dali-core.git] / dali / internal / update / rendering / scene-graph-renderer.h
index 0c16aed..610b8ce 100644 (file)
 
 #include <dali/devel-api/rendering/geometry.h>
 #include <dali/internal/event/common/event-thread-services.h>
-#include <dali/internal/update/common/animatable-property.h>
-#include <dali/internal/update/common/double-buffered.h>
-#include <dali/internal/update/common/double-buffered-property.h>
 #include <dali/internal/update/common/property-owner.h>
-#include <dali/internal/update/common/property-boolean.h>
 #include <dali/internal/update/common/uniform-map.h>
 #include <dali/internal/update/common/scene-graph-connection-change-propagator.h>
 #include <dali/internal/render/data-providers/render-data-provider.h>
@@ -66,9 +62,9 @@ public:
   };
 
   /**
-   * Default constructor
+   * Construct a new Renderer
    */
-  Renderer();
+  static Renderer* New();
 
   /**
    * Destructor
@@ -76,6 +72,12 @@ public:
   virtual ~Renderer();
 
   /**
+   * Overriden delete operator
+   * Deletes the renderer from its global memory pool
+   */
+  void operator delete( void* ptr );
+
+  /**
    * Set the material for the renderer
    * @param[in] bufferIndex The current frame's buffer index
    * @param[in] material The material this renderer will use
@@ -246,6 +248,11 @@ public: // From UniformMapDataProvider
 private:
 
   /**
+   * Protected constructor; See also Renderer::New()
+   */
+  Renderer();
+
+  /**
    * Helper function to create a new render data provider
    * @return the new (initialized) data provider
    */