1 #ifndef DALI_INTERNAL_SCENE_GRAPH_PROPERTY_BUFFER_DATA_PROVIDER_H
2 #define DALI_INTERNAL_SCENE_GRAPH_PROPERTY_BUFFER_DATA_PROVIDER_H
5 * Copyright (c) 2015 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.
24 #include <dali/public-api/object/property.h>
25 #include <dali/integration-api/resource-declarations.h>
26 #include <dali/internal/common/buffer-index.h>
35 class PropertyBufferDataProvider
40 * Type for the data contained in the buffer
42 typedef Dali::Vector< char > BufferType;
48 PropertyBufferDataProvider()
53 * Check if the data has changed
54 * @param[in] bufferIndex Index to access double buffered values
55 * @return true if the data has changed
57 virtual bool HasDataChanged( BufferIndex bufferIndex ) const = 0;
60 * Get the number of attributes
61 * @param[in] bufferIndex Index to access double buffered values
62 * @return the number of attributes
64 virtual unsigned int GetAttributeCount( BufferIndex bufferIndex ) const = 0;
67 * Get the name of an attribute
68 * @param[in] bufferIndex Index to access double buffered values
69 * @param[in] index Index of the attribute
70 * @return the name of the attribute
72 virtual const std::string& GetAttributeName( BufferIndex bufferIndex, unsigned int index ) const = 0;
75 * Get the byte size of an attribute
76 * @param[in] bufferIndex Index to access double buffered values
77 * @param[in] index Index of the attribute
78 * @return the byte size of the attribute
80 virtual size_t GetAttributeSize( BufferIndex bufferIndex, unsigned int index ) const = 0;
83 * Get the type of an attribute
84 * @param[in] bufferIndex Index to access double buffered values
85 * @param[in] index Index of the attribute
86 * @return the type of the attribute
88 virtual Property::Type GetAttributeType( BufferIndex bufferIndex, unsigned int index ) const = 0;
91 * Get the byte offset of an attribute
92 * @param[in] bufferIndex Index to access double buffered values
93 * @param[in] index Index of the attribute
94 * @return the byte offset of the attribute
96 virtual size_t GetAttributeOffset( BufferIndex bufferIndex, unsigned int index ) const = 0;
99 * Get the property buffer data
100 * @param[in] bufferIndex Index to access double buffered values
101 * @return the property buffer's data array
103 virtual const BufferType& GetData( BufferIndex bufferIndex ) const = 0;
106 * Get the size of the property buffer in bytes
107 * @param[in] bufferIndex Index to access double buffered values
108 * @return the size in bytes
110 virtual size_t GetDataSize( BufferIndex bufferIndex ) const = 0;
113 * Get the size of an element of the buffer in bytes
114 * @param[in] bufferIndex Index to access double buffered values
115 * @return the element size in bytes
117 virtual size_t GetElementSize( BufferIndex bufferIndex ) const = 0;
120 * Get the number of elements
121 * @param[in] bufferIndex Index to access double buffered values
122 * @return the number of elements
124 virtual unsigned int GetElementCount( BufferIndex bufferIndex ) const = 0;
127 * Get Id of the GPU buffer associated with this propertyBuffer
128 * @param[in] bufferIndex Index to access double buffered values
131 virtual unsigned int GetGpuBufferId( BufferIndex bufferIndex ) const = 0;
135 * No deletion through this interface
137 virtual ~PropertyBufferDataProvider()
142 } // namespace SceneGraph
143 } // namespace Internal
146 #endif // DALI_INTERNAL_SCENE_GRAPH_PROPERTY_BUFFER_DATA_PROVIDER_H