1 #ifndef DALI_SCENE3D_LOADER_BUFFER_DEFINITION_H
2 #define DALI_SCENE3D_LOADER_BUFFER_DEFINITION_H
4 * Copyright (c) 2023 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
21 #include <dali/public-api/common/dali-vector.h>
22 #include <dali/public-api/common/vector-wrapper.h>
27 #include <dali-scene3d/public-api/api.h>
29 namespace Dali::Scene3D::Loader
32 * @brief Defines a buffer that is loaded from input uri.
33 * The buffer can contain 3D resource data such as mesh, animation, and texture.
35 struct DALI_SCENE3D_API BufferDefinition
37 using Vector = std::vector<BufferDefinition>;
40 BufferDefinition(std::vector<uint8_t>& buffer);
44 BufferDefinition(const BufferDefinition& other) = default;
45 BufferDefinition& operator=(const BufferDefinition& other) = default;
47 BufferDefinition(BufferDefinition&& other);
48 BufferDefinition& operator=(BufferDefinition&&) = default;
51 * @brief Retrieves data stream of this buffer.
52 * @return iostream of this buffer
54 std::iostream& GetBufferStream();
57 * @brief Retrieves uri of this buffer
58 * @return uri of the buffer
63 * @brief Checks whether the buffer is available or not.
64 * It is available, if the buffer is successfully loaded from file or base64 stream.
65 * @return True if it is available.
71 * @brief Loads buffer from file or encoded stream.
76 std::string mResourcePath;
78 uint32_t mByteLength{0};
83 std::unique_ptr<Impl> mImpl;
85 bool mIsEmbedded{false};
88 } // namespace Dali::Scene3D::Loader
90 #endif // DALI_SCENE3D_LOADER_BUFFER_DEFINITION_H