X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvertexarray.h;h=d6dee7dd59ce3a9f3c81185aed2a405fa571277a;hb=d6ec375442b31d052b9fcb013508ad7523749147;hp=e38f0afff910b20500b750983fcf957db934d741;hpb=3f4a818023513129e4eae2099c30f7842bb2ccd0;p=libs%2Fgl.git diff --git a/source/vertexarray.h b/source/vertexarray.h index e38f0aff..d6dee7dd 100644 --- a/source/vertexarray.h +++ b/source/vertexarray.h @@ -39,6 +39,9 @@ private: std::vector data; unsigned stride; std::vector arrays; + bool legacy; + + static bool legacy_used; VertexArray(const VertexArray &); VertexArray &operator=(const VertexArray &); @@ -61,16 +64,19 @@ public: float *modify(unsigned); private: virtual unsigned get_data_size() const; - virtual void upload_data() const; + virtual const void *get_data_pointer() const { return &data[0]; } public: unsigned size() const { return data.size()/stride; } const std::vector &get_data() const { return data; } const float *operator[](unsigned i) const { return &data[0]+i*stride; } - void apply() const; + void bind() const { apply(); } + void apply(bool = true) const; private: - static void apply_arrays(const std::vector *, const std::vector *, const float *, unsigned); + static void apply_arrays(const std::vector *, const std::vector *, const float *, unsigned, bool); +public: + static void unbind(); }; } // namespace GL