Added support for setting light position in mesh renderer.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / renderers / control-renderer-impl.h
index 7258e29..a1e91e6 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_H__
-#define __DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_H__
+#ifndef DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_H
+#define DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_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.
  *
  */
 
-
 // EXTERNAL INCLUDES
-#include <dali/public-api/object/base-object.h>
 #include <dali/public-api/images/image-operations.h>
-#include <dali/devel-api/rendering/shader.h>
+#include <dali/public-api/object/base-object.h>
+#include <dali/public-api/rendering/shader.h>
 
 // INTERNAL INCLUDES
-#include <dali-toolkit/devel-api/controls/renderer-factory/renderer-factory.h>
 #include <dali-toolkit/devel-api/controls/renderer-factory/control-renderer.h>
+#include <dali-toolkit/devel-api/controls/renderer-factory/renderer-factory.h>
 #include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
 
 namespace Dali
@@ -45,18 +44,18 @@ namespace Internal
  *
  * The following properties are optional
  *
- * | %Property Name            | Type             |
- * |---------------------------|------------------|
- * | custom-shader             | MAP              |
+ * | %Property Name          | Type             |
+ * |-------------------------|------------------|
+ * | customShader            | MAP              |
  *
  * where custom-shader is a map with the following properties:
- * | %Property Name            | Type             |
- * |---------------------------|------------------|
- * | vertex-shader             | STRING           |
- * | fragment-shader           | STRING           |
- * | subdivide-grid-x          | INT              |
- * | subdivide-grid-y          | INT              |
- * | shader-hints              | INT              |
+ * | %Property Name          | Type             |
+ * |-------------------------|------------------|
+ * | vertexShader            | STRING           |
+ * | fragmentShader          | STRING           |
+ * | subdivideGridX          | INT              |
+ * | subdivideGridY          | INT              |
+ * | shaderHints             | INT              |
  */
 class ControlRenderer : public BaseObject
 {
@@ -132,6 +131,26 @@ public:
    */
   void CreatePropertyMap( Property::Map& map ) const;
 
+  /**
+   * @brief Set whether the Pre-multiplied Alpha Blending is required
+   *
+   * @param[in] preMultipled whether alpha is pre-multiplied.
+   */
+  void EnablePreMultipliedAlpha(  bool preMultipled );
+
+  /**
+   * @brief Query whether alpha is pre-multiplied.
+   *
+   * @return True is alpha is pre-multiplied, false otherwise.
+   */
+  bool IsPreMultipliedAlphaEnabled() const;
+
+  /**
+   * @brief Sets properties of custom shader
+   * @param[in] propertyMap Property map containing the custom shader data
+   */
+  void SetCustomShader( const Property::Map& propertyMap );
+
 protected:
 
   /**
@@ -160,7 +179,7 @@ protected:
    * @param[in] actor The Actor the renderer is applied to if, empty if the renderer has not been applied to any Actor
    * @param[in] propertyMap The properties for the requested ControlRenderer object.
    */
-  virtual void DoInitialize( Actor& actor, const Property::Map& propertyMap ) = 0;
+  virtual void DoInitialize( Actor& actor, const Property::Map& propertyMap ) {};
 
 protected:
 
@@ -231,4 +250,4 @@ inline Internal::ControlRenderer& GetImplementation(Toolkit::ControlRenderer& re
 
 } // namespace Dali
 
-#endif /* __DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_H___ */
+#endif // DALI_TOOLKIT_INTERNAL_CONTROL_RENDERER_H