20 #ifndef _STELVERTEXBUFFER_HPP_
21 #define _STELVERTEXBUFFER_HPP_
23 #include "core/VecMath.hpp"
24 #include "StelVertexAttribute.hpp"
25 #include "StelVertexBufferBackend.hpp"
37 PrimitiveType_Triangles,
41 PrimitiveType_TriangleStrip,
45 PrimitiveType_TriangleFan,
51 PrimitiveType_LineStrip,
54 PrimitiveType_LineLoop,
191 Q_ASSERT_X(!locked_, Q_FUNC_INFO,
192 "Trying to add a vertex to a locked vertex buffer");
193 backend->
addVertex(static_cast<const void*>(&vertex));
205 Q_ASSERT_X(!locked_, Q_FUNC_INFO,
206 "Trying to get a vertex in a locked vertex buffer");
207 Q_ASSERT_X(index < vertexCount, Q_FUNC_INFO,
"Vertex index out of bounds");
212 unsigned char storage[
sizeof(V)];
213 void* result = &storage[0];
215 return *
static_cast<V*
>(result);
226 Q_ASSERT_X(!locked_, Q_FUNC_INFO,
227 "Trying to set a vertex in a locked vertex buffer");
228 Q_ASSERT_X(index < vertexCount, Q_FUNC_INFO,
"Vertex index out of bounds");
229 backend->
setVertex(index, static_cast<const void*>(&vertex));
261 return primitiveType_;
273 Q_ASSERT_X(!locked_, Q_FUNC_INFO,
"Trying to clear a locked vertex buffer");
285 , primitiveType_(primitiveType)
298 PrimitiveType primitiveType_;
304 #endif // _STELVERTEXBUFFER_HPP_