Merge branch 'devel/master' into devel/vulkan
[platform/core/uifw/dali-core.git] / dali / graphics-api / graphics-api-render-list.h
1 #ifndef DALI_GRAPHICS_API_RENDER_LIST_H
2 #define DALI_GRAPHICS_API_RENDER_LIST_H
3
4 /*
5  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
6  *
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
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  */
20
21 namespace Dali
22 {
23 namespace Graphics
24 {
25 namespace API
26 {
27
28 /**
29  * @brief Interface class for RenderList types in the graphics API.
30  */
31 class RenderList
32 {
33 public:
34   using Handle = size_t;
35
36   virtual void SetRenderItemData(size_t index) = 0;
37
38   // not copyable
39   RenderList(const RenderList&) = delete;
40   RenderList& operator=(const RenderList&) = delete;
41
42   virtual ~RenderList() = default;
43
44 protected:
45   // derived types should not be moved direcly to prevent slicing
46   RenderList(RenderList&&) = default;
47   RenderList& operator=(RenderList&&) = default;
48
49   /**
50    * Objects of this type should not directly.
51    */
52   RenderList() = default;
53 };
54
55 } // namespace API
56 } // namespace Graphics
57 } // namespace Dali
58
59 #endif // DALI_GRAPHICS_API_RENDER_LIST_H