1 #ifndef DALI_GRAPHICS_API_CONTROLLER_H
2 #define DALI_GRAPHICS_API_CONTROLLER_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.
21 #include <dali/graphics-api/graphics-api-accessor.h>
22 #include <dali/graphics-api/graphics-api-base-factory.h>
23 #include <dali/graphics-api/graphics-api-dynamic-buffer.h>
24 #include <dali/graphics-api/graphics-api-framebuffer.h>
25 #include <dali/graphics-api/graphics-api-sampler.h>
26 #include <dali/graphics-api/graphics-api-shader.h>
27 #include <dali/graphics-api/graphics-api-static-buffer.h>
28 #include <dali/graphics-api/graphics-api-texture-set.h>
29 #include <dali/graphics-api/graphics-api-texture.h>
30 #include <dali/graphics-api/graphics-api-texture-factory.h>
40 * @brief Interface class for Manager types in the graphics API.
46 * @brief Create a new object
48 virtual Accessor< Shader > CreateShader(const BaseFactory< Shader >& factory) = 0;
51 * @brief Create a new object
53 virtual Accessor< Texture > CreateTexture(const BaseFactory< Texture >& factory) = 0;
56 * @brief Create a new object
58 virtual Accessor< TextureSet > CreateTextureSet(const BaseFactory< TextureSet >& factory) = 0;
61 * @brief Create a new object
63 virtual Accessor< DynamicBuffer > CreateDynamicBuffer(
64 const BaseFactory< DynamicBuffer >& factory) = 0;
67 * @brief Create a new object
69 virtual Accessor< StaticBuffer > CreateStaticBuffer(
70 const BaseFactory< StaticBuffer >& factory) = 0;
73 * @brief Create a new object
75 virtual Accessor< Sampler > CreateSampler(const BaseFactory< Sampler >& factory) = 0;
78 * @brief Create a new object
80 virtual Accessor< Framebuffer > CreateFramebuffer(const BaseFactory< Framebuffer >& factory) = 0;
83 * @brief Get a render list
85 virtual void GetRenderItemList() = 0;
89 Controller(const Controller&) = delete;
90 Controller& operator=(const Controller&) = delete;
92 virtual ~Controller() = default;
95 // derived types should not be moved direcly to prevent slicing
96 Controller(Controller&&) = default;
97 Controller& operator=(Controller&&) = default;
100 * Objects of this type should not directly.
102 Controller() = default;
106 } // namespace Graphics
109 #endif // DALI_GRAPHICS_API_CONTROLLER_H