]> git.tdb.fi Git - libs/gl.git/blobdiff - source/vertexarray.cpp
Support multiple sets of texture coordinates in datafiles
[libs/gl.git] / source / vertexarray.cpp
index 54de0c0d1d01beadef6228a8bb29fd7ab7a5e66f..25ec3f5972d9ff60f04af3aea4c6caafbb1f1dc1 100644 (file)
@@ -162,6 +162,7 @@ void VertexArray::apply() const
                                if(i>3 || active_tex)
                                        glClientActiveTexture(GL_TEXTURE0+(i-3));
                                glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+                               active_tex = i-3;
                        }
                        else
                                glDisableVertexAttribArrayARB(i-11);
@@ -228,6 +229,10 @@ VertexArray::Loader::Loader(VertexArray &a):
        add("texcoord2", static_cast<void (Loader::*)(float, float)>(&Loader::texcoord));
        add("texcoord3", static_cast<void (Loader::*)(float, float, float)>(&Loader::texcoord));
        add("texcoord4", static_cast<void (Loader::*)(float, float, float, float)>(&Loader::texcoord));
+       add("multitexcoord1", static_cast<void (Loader::*)(unsigned, float)>(&Loader::multitexcoord));
+       add("multitexcoord2", static_cast<void (Loader::*)(unsigned, float, float)>(&Loader::multitexcoord));
+       add("multitexcoord3", static_cast<void (Loader::*)(unsigned, float, float, float)>(&Loader::multitexcoord));
+       add("multitexcoord4", static_cast<void (Loader::*)(unsigned, float, float, float, float)>(&Loader::multitexcoord));
        add("color3",    static_cast<void (Loader::*)(float, float, float)>(&Loader::color));
        add("color4",    static_cast<void (Loader::*)(float, float, float, float)>(&Loader::color));
        add("attrib1",   static_cast<void (Loader::*)(unsigned, float)>(&Loader::attrib));