]> git.tdb.fi Git - libs/gl.git/blobdiff - source/vertexarray.h
Remove the deprecated ProgramBuilder class
[libs/gl.git] / source / vertexarray.h
index 6e54f681717f4269fb135f66bd18420b5d87943e..95a6ec2f3aa526ac11165b4f24e77e5d30d67b10 100644 (file)
@@ -5,7 +5,6 @@
 #include <vector>
 #include <msp/core/refptr.h>
 #include <msp/datafile/loader.h>
 #include <vector>
 #include <msp/core/refptr.h>
 #include <msp/datafile/loader.h>
-#include "bindable.h"
 #include "bufferable.h"
 #include "datatype.h"
 #include "primitivetype.h"
 #include "bufferable.h"
 #include "datatype.h"
 #include "primitivetype.h"
@@ -18,8 +17,7 @@ namespace GL {
 class Buffer;
 
 /**
 class Buffer;
 
 /**
-Stores vertex data.  Both legacy and generic attributes are supported.  Mixing
-the two is possible but discouraged, as driver-specific issues may arise.
+Stores vertex data.
 
 The array's contents can be modified with the append and modify methods.  To
 obtain the location of an individual component within the vertex, use
 
 The array's contents can be modified with the append and modify methods.  To
 obtain the location of an individual component within the vertex, use
@@ -28,7 +26,7 @@ VertexFormat::offset.
 A higher-level interface for filling in vertex data is available in the
 VertexArrayBuilder class.
 */
 A higher-level interface for filling in vertex data is available in the
 VertexArrayBuilder class.
 */
-class VertexArray: public Bindable<VertexArray>, public Bufferable
+class VertexArray: public Bufferable
 {
 public:
        class Loader: public DataFile::Loader, public VertexArrayBuilder
 {
 public:
        class Loader: public DataFile::Loader, public VertexArrayBuilder
@@ -38,36 +36,20 @@ public:
        };
 
 private:
        };
 
 private:
-       struct Array
-       {
-               unsigned char component;
-               unsigned char offset;
-
-               Array();
-       };
-
        VertexFormat format;
        std::vector<float> data;
        unsigned stride;
        VertexFormat format;
        std::vector<float> data;
        unsigned stride;
-       std::vector<Array> arrays;
-       bool legacy;
-
-       static bool legacy_used;
 
        VertexArray(const VertexArray &);
        VertexArray &operator=(const VertexArray &);
 public:
        VertexArray(const VertexFormat &);
 
        VertexArray(const VertexArray &);
        VertexArray &operator=(const VertexArray &);
 public:
        VertexArray(const VertexFormat &);
-       ~VertexArray();
 
        /// Resets the VertexArray to a different format.  All data is cleared.
        void reset(const VertexFormat &);
 
        const VertexFormat &get_format() const { return format; }
 
        /// Resets the VertexArray to a different format.  All data is cleared.
        void reset(const VertexFormat &);
 
        const VertexFormat &get_format() const { return format; }
-private:
-       static unsigned get_array_slot(unsigned char);
 
 
-public:
        /// Clears all vertices from the array.
        void clear();
 
        /// Clears all vertices from the array.
        void clear();
 
@@ -87,20 +69,6 @@ public:
        unsigned size() const { return data.size()/stride; }
        const std::vector<float> &get_data() const { return data; }
        const float *operator[](unsigned i) const { return &data[0]+i*stride; }
        unsigned size() const { return data.size()/stride; }
        const std::vector<float> &get_data() const { return data; }
        const float *operator[](unsigned i) const { return &data[0]+i*stride; }
-
-       /** Equivalent to apply(true).  For compatibility with the Bindable
-       interface. */
-       void bind() const { apply(); }
-
-       /** Applies component arrays to the GL.  If legacy is true, they are applied
-       as is.  If legacy is false, any legacy attributes are converted to generic
-       attributes. */
-       void apply(bool legacy = true) const;
-
-private:
-       static void apply_arrays(const std::vector<Array> *, const std::vector<Array> *, const float *, unsigned, bool);
-public:
-       static void unbind();
 };
 
 } // namespace GL
 };
 
 } // namespace GL