-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007-2010 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
-#include "arb_vertex_program.h"
+#include "arb_multitexture.h"
+#include "arb_vertex_shader.h"
#include "buffer.h"
-#include "extension.h"
+#include "error.h"
#include "gl.h"
-#include "version_1_2.h"
-#include "version_1_3.h"
#include "vertexarray.h"
using namespace std;
has_gen_attrs = true;
}
if(has_multitex)
- static RequireVersion _ver(1, 3);
+ static Require _req(ARB_multitexture);
if(has_gen_attrs)
- static RequireExtension _ext("GL_ARB_vertex_program");
+ static Require _req(ARB_vertex_shader);
}
void VertexArray::apply() const
{
if(format.empty())
- throw InvalidState("Trying to apply a vertex array with no data");
+ throw invalid_operation("VertexArray::apply");
if(vbuf)
{
}
else
{
- glVertexAttribPointerARB(t-11, sz, GL_FLOAT, false, bpv, base+offset);
+ glVertexAttribPointer(t-11, sz, GL_FLOAT, false, bpv, base+offset);
if(!en)
- glEnableVertexAttribArrayARB(t-11);
+ glEnableVertexAttribArray(t-11);
}
break;
}
if(i>3 || active_tex)
glClientActiveTexture(GL_TEXTURE0+(i-3));
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+ active_tex = i-3;
}
else
- glDisableVertexAttribArrayARB(i-11);
+ glDisableVertexAttribArray(i-11);
}
enabled_arrays = found;
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));
add("attrib4", static_cast<void (Loader::*)(unsigned, float, float, float, float)>(&Loader::attrib));
}
-
-void array_element(int i)
-{
- glArrayElement(i);
-}
-
-void draw_arrays(PrimitiveType mode, int first, unsigned count)
-{
- glDrawArrays(mode, first, count);
-}
-
-void draw_elements(PrimitiveType mode, unsigned count, DataType type, const void *indices)
-{
- glDrawElements(mode, count, type, indices);
-}
-
-void draw_range_elements(PrimitiveType mode, unsigned low, unsigned high, unsigned count, DataType type, const void *indices)
-{
- static RequireVersion _ver(1, 2);
- glDrawRangeElements(mode, low, high, count, type, indices);
-}
-
} // namespace GL
} // namespace Msp