// ***************************************************************************
//
//   Generated automatically by genwrapper.
//   Please DO NOT EDIT this file!
//
// ***************************************************************************

#include <osgIntrospection/ReflectionMacros>
#include <osgIntrospection/TypedMethodInfo>
#include <osgIntrospection/Attributes>

#include <osg/GL2Extensions>

// Must undefine IN and OUT macros defined in Windows headers
#ifdef IN
#undef IN
#endif
#ifdef OUT
#undef OUT
#endif

BEGIN_OBJECT_REFLECTOR(osg::GL2Extensions)
	I_BaseType(osg::Referenced);
	I_Constructor1(IN, unsigned int, contextID);
	I_Constructor1(IN, const osg::GL2Extensions &, rhs);
	I_Method1(void, lowestCommonDenominator, IN, const osg::GL2Extensions &, rhs);
	I_Method1(void, setupGL2Extensions, IN, unsigned int, contextID);
	I_Method0(bool, isGlslSupported);
	I_Method0(float, getGlVersion);
	I_Method0(float, getLanguageVersion);
	I_Method1(void, setShaderObjectsSupported, IN, bool, flag);
	I_Method0(bool, isShaderObjectsSupported);
	I_Method1(void, setVertexShaderSupported, IN, bool, flag);
	I_Method0(bool, isVertexShaderSupported);
	I_Method1(void, setFragmentShaderSupported, IN, bool, flag);
	I_Method0(bool, isFragmentShaderSupported);
	I_Method1(void, setLanguage100Supported, IN, bool, flag);
	I_Method0(bool, isLanguage100Supported);
	I_Method2(void, glBlendEquationSeparate, IN, GLenum, modeRGB, IN, GLenum, modeAlpha);
	I_Method2(void, glDrawBuffers, IN, GLsizei, n, IN, const GLenum *, bufs);
	I_Method4(void, glStencilOpSeparate, IN, GLenum, face, IN, GLenum, sfail, IN, GLenum, dpfail, IN, GLenum, dppass);
	I_Method4(void, glStencilFuncSeparate, IN, GLenum, frontfunc, IN, GLenum, backfunc, IN, GLint, ref, IN, GLuint, mask);
	I_Method2(void, glStencilMaskSeparate, IN, GLenum, face, IN, GLuint, mask);
	I_Method2(void, glAttachShader, IN, GLuint, program, IN, GLuint, shader);
	I_Method3(void, glBindAttribLocation, IN, GLuint, program, IN, GLuint, index, IN, const GLchar *, name);
	I_Method1(void, glCompileShader, IN, GLuint, shader);
	I_Method0(GLuint, glCreateProgram);
	I_Method1(GLuint, glCreateShader, IN, GLenum, type);
	I_Method1(void, glDeleteProgram, IN, GLuint, program);
	I_Method1(void, glDeleteShader, IN, GLuint, shader);
	I_Method2(void, glDetachShader, IN, GLuint, program, IN, GLuint, shader);
	I_Method1(void, glDisableVertexAttribArray, IN, GLuint, index);
	I_Method1(void, glEnableVertexAttribArray, IN, GLuint, index);
	I_Method7(void, glGetActiveAttrib, IN, GLuint, program, IN, GLuint, index, IN, GLsizei, bufSize, IN, GLsizei *, length, IN, GLint *, size, IN, GLenum *, type, IN, GLchar *, name);
	I_Method7(void, glGetActiveUniform, IN, GLuint, program, IN, GLuint, index, IN, GLsizei, bufSize, IN, GLsizei *, length, IN, GLint *, size, IN, GLenum *, type, IN, GLchar *, name);
	I_Method4(void, glGetAttachedShaders, IN, GLuint, program, IN, GLsizei, maxCount, IN, GLsizei *, count, IN, GLuint *, obj);
	I_Method2(GLint, glGetAttribLocation, IN, GLuint, program, IN, const GLchar *, name);
	I_Method3(void, glGetProgramiv, IN, GLuint, program, IN, GLenum, pname, IN, GLint *, params);
	I_Method4(void, glGetProgramInfoLog, IN, GLuint, program, IN, GLsizei, bufSize, IN, GLsizei *, length, IN, GLchar *, infoLog);
	I_Method3(void, glGetShaderiv, IN, GLuint, shader, IN, GLenum, pname, IN, GLint *, params);
	I_Method4(void, glGetShaderInfoLog, IN, GLuint, shader, IN, GLsizei, bufSize, IN, GLsizei *, length, IN, GLchar *, infoLog);
	I_Method4(void, glGetShaderSource, IN, GLuint, shader, IN, GLsizei, bufSize, IN, GLsizei *, length, IN, GLchar *, source);
	I_Method2(GLint, glGetUniformLocation, IN, GLuint, program, IN, const GLchar *, name);
	I_Method3(void, glGetUniformfv, IN, GLuint, program, IN, GLint, location, IN, GLfloat *, params);
	I_Method3(void, glGetUniformiv, IN, GLuint, program, IN, GLint, location, IN, GLint *, params);
	I_Method3(void, glGetVertexAttribdv, IN, GLuint, index, IN, GLenum, pname, IN, GLdouble *, params);
	I_Method3(void, glGetVertexAttribfv, IN, GLuint, index, IN, GLenum, pname, IN, GLfloat *, params);
	I_Method3(void, glGetVertexAttribiv, IN, GLuint, index, IN, GLenum, pname, IN, GLint *, params);
	I_Method3(void, glGetVertexAttribPointerv, IN, GLuint, index, IN, GLenum, pname, IN, GLvoid **, pointer);
	I_Method1(GLboolean, glIsProgram, IN, GLuint, program);
	I_Method1(GLboolean, glIsShader, IN, GLuint, shader);
	I_Method1(void, glLinkProgram, IN, GLuint, program);
	I_Method4(void, glShaderSource, IN, GLuint, shader, IN, GLsizei, count, IN, const GLchar **, string, IN, const GLint *, length);
	I_Method1(void, glUseProgram, IN, GLuint, program);
	I_Method2(void, glUniform1f, IN, GLint, location, IN, GLfloat, v0);
	I_Method3(void, glUniform2f, IN, GLint, location, IN, GLfloat, v0, IN, GLfloat, v1);
	I_Method4(void, glUniform3f, IN, GLint, location, IN, GLfloat, v0, IN, GLfloat, v1, IN, GLfloat, v2);
	I_Method5(void, glUniform4f, IN, GLint, location, IN, GLfloat, v0, IN, GLfloat, v1, IN, GLfloat, v2, IN, GLfloat, v3);
	I_Method2(void, glUniform1i, IN, GLint, location, IN, GLint, v0);
	I_Method3(void, glUniform2i, IN, GLint, location, IN, GLint, v0, IN, GLint, v1);
	I_Method4(void, glUniform3i, IN, GLint, location, IN, GLint, v0, IN, GLint, v1, IN, GLint, v2);
	I_Method5(void, glUniform4i, IN, GLint, location, IN, GLint, v0, IN, GLint, v1, IN, GLint, v2, IN, GLint, v3);
	I_Method3(void, glUniform1fv, IN, GLint, location, IN, GLsizei, count, IN, const GLfloat *, value);
	I_Method3(void, glUniform2fv, IN, GLint, location, IN, GLsizei, count, IN, const GLfloat *, value);
	I_Method3(void, glUniform3fv, IN, GLint, location, IN, GLsizei, count, IN, const GLfloat *, value);
	I_Method3(void, glUniform4fv, IN, GLint, location, IN, GLsizei, count, IN, const GLfloat *, value);
	I_Method3(void, glUniform1iv, IN, GLint, location, IN, GLsizei, count, IN, const GLint *, value);
	I_Method3(void, glUniform2iv, IN, GLint, location, IN, GLsizei, count, IN, const GLint *, value);
	I_Method3(void, glUniform3iv, IN, GLint, location, IN, GLsizei, count, IN, const GLint *, value);
	I_Method3(void, glUniform4iv, IN, GLint, location, IN, GLsizei, count, IN, const GLint *, value);
	I_Method4(void, glUniformMatrix2fv, IN, GLint, location, IN, GLsizei, count, IN, GLboolean, transpose, IN, const GLfloat *, value);
	I_Method4(void, glUniformMatrix3fv, IN, GLint, location, IN, GLsizei, count, IN, GLboolean, transpose, IN, const GLfloat *, value);
	I_Method4(void, glUniformMatrix4fv, IN, GLint, location, IN, GLsizei, count, IN, GLboolean, transpose, IN, const GLfloat *, value);
	I_Method1(void, glValidateProgram, IN, GLuint, program);
	I_Method2(void, glVertexAttrib1d, IN, GLuint, index, IN, GLdouble, x);
	I_Method2(void, glVertexAttrib1dv, IN, GLuint, index, IN, const GLdouble *, v);
	I_Method2(void, glVertexAttrib1f, IN, GLuint, index, IN, GLfloat, x);
	I_Method2(void, glVertexAttrib1fv, IN, GLuint, index, IN, const GLfloat *, v);
	I_Method2(void, glVertexAttrib1s, IN, GLuint, index, IN, GLshort, x);
	I_Method2(void, glVertexAttrib1sv, IN, GLuint, index, IN, const GLshort *, v);
	I_Method3(void, glVertexAttrib2d, IN, GLuint, index, IN, GLdouble, x, IN, GLdouble, y);
	I_Method2(void, glVertexAttrib2dv, IN, GLuint, index, IN, const GLdouble *, v);
	I_Method3(void, glVertexAttrib2f, IN, GLuint, index, IN, GLfloat, x, IN, GLfloat, y);
	I_Method2(void, glVertexAttrib2fv, IN, GLuint, index, IN, const GLfloat *, v);
	I_Method3(void, glVertexAttrib2s, IN, GLuint, index, IN, GLshort, x, IN, GLshort, y);
	I_Method2(void, glVertexAttrib2sv, IN, GLuint, index, IN, const GLshort *, v);
	I_Method4(void, glVertexAttrib3d, IN, GLuint, index, IN, GLdouble, x, IN, GLdouble, y, IN, GLdouble, z);
	I_Method2(void, glVertexAttrib3dv, IN, GLuint, index, IN, const GLdouble *, v);
	I_Method4(void, glVertexAttrib3f, IN, GLuint, index, IN, GLfloat, x, IN, GLfloat, y, IN, GLfloat, z);
	I_Method2(void, glVertexAttrib3fv, IN, GLuint, index, IN, const GLfloat *, v);
	I_Method4(void, glVertexAttrib3s, IN, GLuint, index, IN, GLshort, x, IN, GLshort, y, IN, GLshort, z);
	I_Method2(void, glVertexAttrib3sv, IN, GLuint, index, IN, const GLshort *, v);
	I_Method2(void, glVertexAttrib4Nbv, IN, GLuint, index, IN, const GLbyte *, v);
	I_Method2(void, glVertexAttrib4Niv, IN, GLuint, index, IN, const GLint *, v);
	I_Method2(void, glVertexAttrib4Nsv, IN, GLuint, index, IN, const GLshort *, v);
	I_Method5(void, glVertexAttrib4Nub, IN, GLuint, index, IN, GLubyte, x, IN, GLubyte, y, IN, GLubyte, z, IN, GLubyte, w);
	I_Method2(void, glVertexAttrib4Nubv, IN, GLuint, index, IN, const GLubyte *, v);
	I_Method2(void, glVertexAttrib4Nuiv, IN, GLuint, index, IN, const GLuint *, v);
	I_Method2(void, glVertexAttrib4Nusv, IN, GLuint, index, IN, const GLushort *, v);
	I_Method2(void, glVertexAttrib4bv, IN, GLuint, index, IN, const GLbyte *, v);
	I_Method5(void, glVertexAttrib4d, IN, GLuint, index, IN, GLdouble, x, IN, GLdouble, y, IN, GLdouble, z, IN, GLdouble, w);
	I_Method2(void, glVertexAttrib4dv, IN, GLuint, index, IN, const GLdouble *, v);
	I_Method5(void, glVertexAttrib4f, IN, GLuint, index, IN, GLfloat, x, IN, GLfloat, y, IN, GLfloat, z, IN, GLfloat, w);
	I_Method2(void, glVertexAttrib4fv, IN, GLuint, index, IN, const GLfloat *, v);
	I_Method2(void, glVertexAttrib4iv, IN, GLuint, index, IN, const GLint *, v);
	I_Method5(void, glVertexAttrib4s, IN, GLuint, index, IN, GLshort, x, IN, GLshort, y, IN, GLshort, z, IN, GLshort, w);
	I_Method2(void, glVertexAttrib4sv, IN, GLuint, index, IN, const GLshort *, v);
	I_Method2(void, glVertexAttrib4ubv, IN, GLuint, index, IN, const GLubyte *, v);
	I_Method2(void, glVertexAttrib4uiv, IN, GLuint, index, IN, const GLuint *, v);
	I_Method2(void, glVertexAttrib4usv, IN, GLuint, index, IN, const GLushort *, v);
	I_Method6(void, glVertexAttribPointer, IN, GLuint, index, IN, GLint, size, IN, GLenum, type, IN, GLboolean, normalized, IN, GLsizei, stride, IN, const GLvoid *, pointer);
	I_Method0(GLuint, getCurrentProgram);
	I_Method2(bool, getProgramInfoLog, IN, GLuint, program, IN, std::string &, result);
	I_Method2(bool, getShaderInfoLog, IN, GLuint, shader, IN, std::string &, result);
	I_Method2(bool, getAttribLocation, IN, const char *, attribName, IN, GLuint &, slot);
	I_ReadOnlyProperty(GLuint, CurrentProgram);
	I_WriteOnlyProperty(bool, FragmentShaderSupported);
	I_ReadOnlyProperty(float, GlVersion);
	I_WriteOnlyProperty(bool, Language100Supported);
	I_ReadOnlyProperty(float, LanguageVersion);
	I_WriteOnlyProperty(bool, ShaderObjectsSupported);
	I_WriteOnlyProperty(bool, VertexShaderSupported);
	I_WriteOnlyProperty(unsigned int, upGL2Extensions);
END_REFLECTOR

