1 #ifndef DALI_TOOLKIT_VISUAL_FACTORY_H
2 #define DALI_TOOLKIT_VISUAL_FACTORY_H
5 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali/public-api/object/base-handle.h>
23 #include <dali/public-api/images/image-operations.h>
24 #include <dali/public-api/object/property-map.h>
27 #include <dali-toolkit/devel-api/visual-factory/visual-base.h>
37 namespace Internal DALI_INTERNAL
43 * @brief VisualFactory is a singleton object that provides and shares visuals between controls
45 * By setting environment variable 'DALI_DEBUG_RENDERING', a debug visual is used which renders a quad wireframe.
47 * The visual type is required in the property map for requesting a visual.
49 * | %Property Name | Type |
50 * |--------------------------|-------------------|
51 * | visualType | INTEGER or STRING |
54 class DALI_IMPORT_API VisualFactory : public BaseHandle
59 * @brief Create or retrieve VisualFactory singleton.
61 * @return A handle to the VisualFactory control.
63 static VisualFactory Get();
66 * @brief Create a VisualFactory handle.
68 * Calling member functions with an uninitialised handle is not allowed.
75 * This is non-virtual since derived Handle types must not contain data or virtual methods.
80 * @brief This copy constructor is required for (smart) pointer semantics.
82 * @param[in] handle A reference to the copied handle.
84 VisualFactory( const VisualFactory& handle );
87 * @brief This assignment operator is required for (smart) pointer semantics.
89 * @param [in] handle A reference to the copied handle.
90 * @return A reference to this.
92 VisualFactory& operator=( const VisualFactory& handle );
95 * @brief Request the visual
97 * @param[in] propertyMap The map contains the properties required by the visual.
98 * The content of the map determines the type of visual that will be returned.
99 * @return The handle to the created visual
101 Visual::Base CreateVisual( const Property::Map& propertyMap );
104 * @brief Request the visual to render the image.
106 * @param[in] image The image to be rendered.
107 * @return The pointer pointing to the visual
109 Visual::Base CreateVisual( const Image& image );
112 * @brief Request the visual to render the given resource at the url.
114 * @param[in] url The URL to the resource to be rendered.
115 * @param[in] size The width and height to fit the loaded image to.
116 * @return The pointer pointing to the visual
118 Visual::Base CreateVisual( const std::string& url, ImageDimensions size );
122 explicit DALI_INTERNAL VisualFactory(Internal::VisualFactory *impl);
126 } // namespace Toolkit
130 #endif // DALI_TOOLKIT_VISUAL_FACTORY_H