]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/vertexsetup.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / core / vertexsetup.h
index 7daef8845ac03688c570af5c40ff10f8a80324dc..1cdedc79e7bf2c4186f78c0b59304d800a58564e 100644 (file)
@@ -12,8 +12,11 @@ class Buffer;
 class VertexArray;
 
 /**
-Combines a VertexArray with an index buffer.  This wraps OpenGL's vertex array
-objects.  Intended for internal use.
+Combines vertex and instance attributes and an index buffer for a complete
+description of vertex input state.
+
+Applications normally don't need to deal with VertexSetups directly.  They're
+managed by the Mesh and InstanceArray classes.
 */
 class VertexSetup: public VertexSetupBackend
 {
@@ -27,23 +30,34 @@ private:
                INDEX_BUFFER = 4
        };
 
-       mutable unsigned dirty;
-       const VertexArray *vertex_array;
+       mutable unsigned dirty = 0;
+       const VertexArray *vertex_array = 0;
        VertexFormat vertex_format;
-       const VertexArray *inst_array;
+       const VertexArray *inst_array = 0;
        VertexFormat inst_format;
-       const Buffer *index_buffer;
-       DataType index_type;
+       const Buffer *index_buffer = 0;
+       DataType index_type = UNSIGNED_SHORT;
 
 public:
-       VertexSetup();
-
+       /** Sets format for vertex data.  Instance attributes won't be used.  The
+       format cannot be changed once set. */
        void set_format(const VertexFormat &);
+
+       /** Sets formats for both vertex and instance data.  The formats cannot be
+       changed once set. */
        void set_format_instanced(const VertexFormat &, const VertexFormat &);
 
+       /** Sets the VertexArray to use as the source of vertex attribute values.
+       The array's format must match the VertexSetup's vertex format. */
        void set_vertex_array(const VertexArray &);
+
+       /** Sets the VertexArray to use as the source of instance attribute values.
+       An instance format must be defined and the array's format must match it. */
        void set_instance_array(const VertexArray &);
+
+       /** Sets the buffer containing index data and the type of indices. */
        void set_index_buffer(const Buffer &, DataType);
+
        const VertexArray *get_vertex_array() const { return vertex_array; }
        const VertexArray *get_instance_array() const { return inst_array; }
        const Buffer *get_index_buffer() const { return index_buffer; }