1 #ifndef DALI_GRAPHICS_API_BUFFER_CREATE_INFO
2 #define DALI_GRAPHICS_API_BUFFER_CREATE_INFO
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-buffer.h"
26 #include "graphics-types.h"
33 * BufferCreateInfo describes new buffer
35 struct BufferCreateInfo
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 the expected buffer usage
57 * The buffer usage should be explicitly set. It cannot be modified
58 * later so in case of changing the usage, the new buffer
59 * should be created. Based on Usage the implementation may
60 * execute certain optimizations.
62 * @param[in] value Usage flags
63 * @return reference to this structure
65 auto& SetUsage(BufferUsageFlags value)
72 * @brief Sets size of buffer in bytes
74 * @param[in] value Size of the buffer in bytes
75 * @return reference to this structure
77 auto& SetSize(uint32_t value)
84 * @brief Sets properties flags
86 * Properties flag bits can alter behaviour of the implementation
88 * @param[in] value Flags
89 * @return reference to this structure
91 auto& SetBufferPropertiesFlags( BufferPropertiesFlags value )
93 propertiesFlags = value;
98 * @brief Sets allocation callbacks which will be used when object is created
101 * @param[in] value Valid reference to AllocationCallbacksStructure
102 * @return reference to this structure
104 auto& SetAllocationCallbacks(const AllocationCallbacks& value)
106 allocationCallbacks = &value;
110 GraphicsStructureType type{GraphicsStructureType::BUFFER_CREATE_INFO_STRUCT};
111 ExtensionCreateInfo* nextExtension{nullptr};
112 BufferUsageFlags usage{};
114 BufferPropertiesFlags propertiesFlags{};
115 const AllocationCallbacks* allocationCallbacks{nullptr};
118 } // namespace Graphics