X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvertexarray.h;h=d6dee7dd59ce3a9f3c81185aed2a405fa571277a;hb=d6ec375442b31d052b9fcb013508ad7523749147;hp=fb8f51b026d82e40c2ef4dd70da31f2f3c66027f;hpb=cfd7b5bc0c69d0b8cc7c8b3ec81a1a9462d04abb;p=libs%2Fgl.git diff --git a/source/vertexarray.h b/source/vertexarray.h index fb8f51b0..d6dee7dd 100644 --- a/source/vertexarray.h +++ b/source/vertexarray.h @@ -39,7 +39,9 @@ private: std::vector data; unsigned stride; std::vector arrays; - mutable bool dirty; + bool legacy; + + static bool legacy_used; VertexArray(const VertexArray &); VertexArray &operator=(const VertexArray &); @@ -62,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