Rendering API clean-up
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / renderers / control-renderer-data-impl.h
index e865a0e..2428715 100644 (file)
  *
  */
 
-// INTERNAL INCLUDES
+// EXTERNAL INCLUDES
 #include <dali/public-api/math/vector2.h>
 #include <dali/devel-api/rendering/renderer.h>
 
+#include <dali-toolkit/internal/controls/renderers/control-renderer-impl.h>
+
 namespace Dali
 {
 
@@ -33,15 +35,36 @@ namespace Internal
 
 struct Internal::ControlRenderer::Impl
 {
-  Geometry mGeometry;
-  Shader   mShader;
+  enum Flags
+  {
+    IS_ON_STAGE = 1,
+    IS_FROM_CACHE = 1 << 1,
+    IS_PREMULTIPLIED_ALPHA = 1 << 2
+  };
+
+  struct CustomShader
+  {
+    std::string mVertexShader;
+    std::string mFragmentShader;
+    Dali::ImageDimensions mGridSize;
+    Dali::Shader::ShaderHints mHints; //(bitfield) values from enum Shader::Hints
+
+    CustomShader( const Property::Map& map );
+    void SetPropertyMap( const Property::Map& map );
+    void CreatePropertyMap( Property::Map& map ) const;
+  };
+
   Renderer mRenderer;
 
+  CustomShader* mCustomShader;
+
   Vector2   mSize;
   Vector2   mOffset;
-  Rect<int> mClipRect;
   float     mDepthIndex;
-  bool      mIsOnStage;
+  int       mFlags;
+
+  Impl();
+  ~Impl();
 };
 
 } // namespace Internal