Merge "Added support for setting light position in mesh renderer." into devel/master
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / renderers / control-renderer-data-impl.h
index e865a0e..8349791 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_DATA_IMPL_H__
-#define __DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_DATA_IMPL_H__
+#ifndef DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_DATA_IMPL_H
+#define DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_DATA_IMPL_H
 
 /*
- * 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.
  *
  */
 
-// INTERNAL INCLUDES
+// EXTERNAL INCLUDES
 #include <dali/public-api/math/vector2.h>
-#include <dali/devel-api/rendering/renderer.h>
+#include <dali/public-api/rendering/renderer.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/internal/controls/renderers/control-renderer-impl.h>
 
 namespace Dali
 {
@@ -33,15 +36,37 @@ 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,
+    IS_SYNCHRONOUS_RESOURCE_LOADING = 1 << 3
+  };
+
+  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
@@ -50,4 +75,4 @@ struct Internal::ControlRenderer::Impl
 
 } // namespace Dali
 
-#endif /* __DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_DATA_IMPL_H__ */
+#endif // DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_DATA_IMPL_H