X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fvertexarray.cpp;h=a4dffbb7bae4876af7c9535a1f965e8431b64f7b;hp=db102ab4c355bbdb5e6a8d0e59f71021ea9d59f9;hb=ca52c492bd4f2fa1a1db3a85e50eaf7c43474830;hpb=d6ec375442b31d052b9fcb013508ad7523749147 diff --git a/source/vertexarray.cpp b/source/vertexarray.cpp index db102ab4..a4dffbb7 100644 --- a/source/vertexarray.cpp +++ b/source/vertexarray.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "buffer.h" #include "error.h" #include "gl.h" @@ -123,6 +124,8 @@ void VertexArray::apply(bool use_legacy) const if(!use_legacy) static Require _req(ARB_vertex_shader); + else if(legacy) + static Require _req(MSP_legacy_features); const VertexArray *old = current(); /* If the array has been modified, apply it even if it was the last one to @@ -132,7 +135,7 @@ void VertexArray::apply(bool use_legacy) const if(!set_current(this) && !dirty) return; - Buffer *vbuf = get_buffer(); + const Buffer *vbuf = get_buffer(); Bind _bind_vbuf(vbuf, ARRAY_BUFFER); if(vbuf && dirty) update_buffer(); @@ -249,6 +252,27 @@ VertexArray::Array::Array(): VertexArray::Loader::Loader(VertexArray &a): VertexArrayBuilder(a) { + add("vertex", static_cast(&Loader::vertex)); + add("vertex", static_cast(&Loader::vertex)); + add("vertex", static_cast(&Loader::vertex)); + add("normal", static_cast(&Loader::normal)); + add("texcoord", static_cast(&Loader::texcoord)); + add("texcoord", static_cast(&Loader::texcoord)); + add("texcoord", static_cast(&Loader::texcoord)); + add("texcoord", static_cast(&Loader::texcoord)); + add("multitexcoord", static_cast(&Loader::multitexcoord)); + add("multitexcoord", static_cast(&Loader::multitexcoord)); + add("multitexcoord", static_cast(&Loader::multitexcoord)); + add("multitexcoord", static_cast(&Loader::multitexcoord)); + add("color", static_cast(&Loader::color)); + add("color", static_cast(&Loader::color)); + add("attrib", static_cast(&Loader::attrib)); + add("attrib", static_cast(&Loader::attrib)); + add("attrib", static_cast(&Loader::attrib)); + add("attrib", static_cast(&Loader::attrib)); + add("tangent", static_cast(&Loader::tangent)); + add("binormal", static_cast(&Loader::binormal)); + add("vertex2", static_cast(&Loader::vertex)); add("vertex3", static_cast(&Loader::vertex)); add("vertex4", static_cast(&Loader::vertex));