Merge "DALi Version 1.2.48" into devel/master
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / visual-factory / visual-factory.h
index 76e963c..25c17cc 100644 (file)
@@ -1,7 +1,8 @@
-#ifndef __DALI_TOOLKIT_RENDERER_FACTORY_H__
-#define __DALI_TOOLKIT_RENDERER_FACTORY_H__
+#ifndef DALI_TOOLKIT_VISUAL_FACTORY_H
+#define DALI_TOOLKIT_VISUAL_FACTORY_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.
@@ -23,7 +24,7 @@
 #include <dali/public-api/object/property-map.h>
 
 // INTERNAL INCLUDES
-#include <dali-toolkit/devel-api/visual-factory/visual.h>
+#include <dali-toolkit/devel-api/visual-factory/visual-base.h>
 
 namespace Dali
 {
@@ -41,13 +42,14 @@ class VisualFactory;
 /**
  * @brief VisualFactory is a singleton object that provides and shares visuals between controls
  *
- * By setting environment variable 'DALI_DEBUG_RENDERING', all concrete renderer is replaced with the debug renderer which renders a quad wireframe.
+ * By setting environment variable 'DALI_DEBUG_RENDERING', a debug visual is used which renders a quad wireframe.
  *
- * The renderer type is required in the property map for requesting a control renderer.
+ * The visual type is required in the property map for requesting a visual.
  *
- * | %Property Name           | Type             |
- * |--------------------------|------------------|
- * | rendererType             | STRING           |
+ * | %Property Name           | Type              |
+ * |--------------------------|-------------------|
+ * | visualType               | INTEGER or STRING |
+ * | shader                   | MAP               |
  */
 class DALI_IMPORT_API VisualFactory : public BaseHandle
 {
@@ -90,30 +92,30 @@ public:
   VisualFactory& operator=( const VisualFactory& handle );
 
   /**
-   * @brief Request the control renderer
+   * @brief Request the visual
    *
-   * @param[in] propertyMap The map contains the properties required by the control renderer
-   *            Depends on the content of the map, different kind of renderer would be returned.
-   * @return The pointer pointing to control renderer
+   * @param[in] propertyMap The map contains the properties required by the visual.
+   *            The content of the map determines the type of visual that will be returned.
+   * @return The handle to the created visual
    */
-  Visual CreateVisual( const Property::Map& propertyMap  );
+  Visual::Base CreateVisual( const Property::Map& propertyMap  );
 
   /**
-   * @brief Request the control renderer to render the image.
+   * @brief Request the visual to render the image.
    *
    * @param[in] image The image to be rendered.
-   * @return The pointer pointing to the control renderer
+   * @return The pointer pointing to the visual
    */
-  Visual CreateVisual( const Image& image );
+  Visual::Base CreateVisual( const Image& image );
 
   /**
-   * @brief Request the control renderer to render the given resource at the url.
+   * @brief Request the visual to render the given resource at the url.
    *
    * @param[in] url The URL to the resource to be rendered.
    * @param[in] size The width and height to fit the loaded image to.
-   * @return The pointer pointing to the control renderer
+   * @return The pointer pointing to the visual
    */
-  Visual CreateVisual( const std::string& url, ImageDimensions size );
+  Visual::Base CreateVisual( const std::string& url, ImageDimensions size );
 
 private:
 
@@ -121,52 +123,8 @@ private:
 
 };
 
-
-/**
- * @brief Template to allow discard old renderer, get new one and set it on stage if possible
- *
- * @tparam ParameterType0 The type of first argument passed to the CreateVisual()
- * @tparam ParameterType1 The type of second argument passed to the CreateVisual()
- * @SINCE_1_0.39
- * @param[in] actor Actor for which the renderer will be replaced
- * @param[in,out] renderer The renderer object to be replaced
- * @param[in] param0 First template based argument passed to the renderer factory
- * @param[in] param1 Second template based argument passed to the renderer factory
- */
-template< class ParameterType0, class ParameterType1 >
-void InitializeVisual( Actor& actor, Visual& renderer, ParameterType0& param0, ParameterType1& param1 )
-{
-  renderer.RemoveAndReset( actor );
-  renderer = Toolkit::VisualFactory::Get().CreateVisual( param0, param1 );
-  if( renderer && actor && actor.OnStage() )
-  {
-    renderer.SetOnStage( actor );
-  }
-}
-
-/**
- * @brief Template to allow discard old renderer, get new one and set it on stage if possible
- *
- * @tparam ParameterType The type of argument passed to the CreateVisual()
- * @SINCE_1_0.39
- * @param[in] actor Actor for which the renderer will be replaced
- * @param[in,out] renderer The renderer object to be replaced
- * @param[in] param Template based argument passed to the renderer factory
- */
-template< class ParameterType >
-void InitializeVisual( Actor& actor, Visual& renderer, ParameterType& param )
-{
-  renderer.RemoveAndReset( actor );
-  renderer =  Toolkit::VisualFactory::Get().CreateVisual( param );
-  if( renderer && actor && actor.OnStage() )
-  {
-    renderer.SetOnStage( actor );
-  }
-}
-
 } // namespace Toolkit
 
 } // namespace Dali
 
-
-#endif /* __DALI_TOOLKIT_RENDERER_FACTORY_H__ */
+#endif // DALI_TOOLKIT_VISUAL_FACTORY_H