Add Post Constraint that works after transform
[platform/core/uifw/dali-core.git] / dali / graphics-api / graphics-render-pass-create-info.h
1 #ifndef DALI_GRAPHICS_RENDERPASS_CREATE_INFO_H
2 #define DALI_GRAPHICS_RENDERPASS_CREATE_INFO_H
3
4 /*
5  * Copyright (c) 2021 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 // INTERNAL INCLUDES
22 #include "graphics-render-pass.h"
23 #include "graphics-types.h"
24
25 namespace Dali::Graphics
26 {
27 class RenderTarget;
28 /**
29  * @brief Interface class for RenderPassCreateInfo types in the graphics API.
30  *
31  * This class describes RenderPass properties (TBD)
32  */
33 struct RenderPassCreateInfo
34 {
35   /**
36    * @brief Sets pointer to the extension
37    *
38    * The pointer to the extension must be set either to nullptr
39    * or to the valid structure. The structures may create
40    * a chain. The last structure in a chain must point at
41    * nullptr.
42    *
43    * @param[in] value pointer to the valid extension structure
44    * @return reference to this structure
45    */
46   auto& SetNextExtension(ExtensionCreateInfo* value)
47   {
48     nextExtension = value;
49     return *this;
50   }
51
52   /**
53    * @brief Sets array of attachment descriptions
54    *
55    * The attachment descriptions should be ordered as for the framebuffer
56    * or (in case of swapchain), color attachment preceeds depth/stencil.
57    *
58    * @param[in] value pointer valid array of attachment descriptions
59    * @return reference to this structure
60    */
61   auto& SetAttachments(const std::vector<AttachmentDescription>& value)
62   {
63     attachments = &value;
64     return *this;
65   }
66
67   /**
68    * @brief Sets allocation callbacks which will be used when object is created
69    * and destroyed.
70    *
71    * @param[in] value Valid reference to AllocationCallbacksStructure
72    * @return reference to this structure
73    */
74   auto& SetAllocationCallbacks(const AllocationCallbacks& value)
75   {
76     allocationCallbacks = &value;
77     return *this;
78   }
79
80   GraphicsStructureType                     type{GraphicsStructureType::RENDERPASS_CREATE_INFO_STRUCT};
81   ExtensionCreateInfo*                      nextExtension{nullptr};
82   const std::vector<AttachmentDescription>* attachments{nullptr};
83   const AllocationCallbacks*                allocationCallbacks{nullptr};
84 };
85
86 } // namespace Dali::Graphics
87
88 #endif // DALI_GRAPHICS_FRAMEBUFFER_FACTORY_H