1 #ifndef DALI_GRAPHICS_BUFFER_CREATE_INFO_H
2 #define DALI_GRAPHICS_BUFFER_CREATE_INFO_H
5 * Copyright (c) 2021 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.
25 #include "graphics-command-buffer.h"
26 #include "graphics-types.h"
33 * @brief CommandBufferCreateInfo describes new command buffer
35 struct CommandBufferCreateInfo
38 * @brief Sets pointer to the extension
40 * The pointer to the extension must be set either to nullptr
41 * or to the valid structure. The structures may create
42 * a chain. The last structure in a chain must point at
45 * @param[in] value pointer to the valid extension structure
46 * @return reference to this structure
48 auto& SetNextExtension(ExtensionCreateInfo* value)
50 nextExtension = value;
55 * @brief Sets command buffer level
57 * The command buffer level can be set to primary or secondary. Primary buffers
58 * are able to execute content of secondary buffers. This way, certain commands
59 * can be reused within multiple primary buffers by executing them. The pipeline
60 * state may be inherited from the primary buffer.
62 * @param[in] value Level of buffer
63 * @return reference to this structure
65 auto& SetLevel(CommandBufferLevel value)
72 * @brief Sets fixed capacity of buffer
74 * Using fixed capacity buffer the memory for the commands may be pre-allocated.
75 * Fixed capacity buffers may use different memory allocation strategy from dynamic
76 * buffers (default behaviour). Buffers of known size and often re-recorded should
79 * @param[in] value number of commands to be allocated
80 * @return reference to this structure
82 auto& SetFixedCapacity(uint32_t value)
84 fixedCapacity = value;
89 * @brief Sets allocation callbacks which will be used when object is created
92 * @param[in] value Valid reference to AllocationCallbacksStructure
93 * @return reference to this structure
95 auto& SetAllocationCallbacks(const AllocationCallbacks& value)
97 allocationCallbacks = &value;
101 GraphicsStructureType type{GraphicsStructureType::COMMAND_BUFFER_CREATE_INFO_STRUCT};
102 ExtensionCreateInfo* nextExtension{nullptr};
103 CommandBufferLevel level{};
104 uint32_t fixedCapacity{0u};
106 const AllocationCallbacks* allocationCallbacks{nullptr};
109 } // namespace Graphics
112 #endif // DALI_GRAPHICS_BUFFER_CREATE_INFO_H