/*
 * This file was generated automatically by ExtUtils::ParseXS version 3.35 from the
 * contents of pogl_gl_Vert_Multi.xs. Do not edit this file, edit pogl_gl_Vert_Multi.xs instead.
 *
 *    ANY CHANGES MADE HERE WILL BE LOST!
 *
 */

#line 1 "pogl_gl_Vert_Multi.xs"
/*  Last saved: Sun 06 Sep 2009 02:10:16 PM*/

/*  Copyright (c) 1998 Kenneth Albanowski. All rights reserved.
 *  Copyright (c) 2007 Bob Free. All rights reserved.
 *  Copyright (c) 2009 Chris Marshall. All rights reserved.
 *  This program is free software; you can redistribute it and/or
 *  modify it under the same terms as Perl itself.
 */

/* OpenGL GLX bindings */
#define IN_POGL_GLX_XS

#include <stdio.h>

#include "pgopogl.h"


#ifdef HAVE_GL
#include "gl_util.h"

/* Note: this is caching procs once for all contexts */
/* !!! This should instead cache per context */
#if defined(_WIN32) || (defined(__CYGWIN__) && defined(HAVE_W32API))
#define loadProc(proc,name) \
{ \
  if (!proc) \
  { \
    proc = (void *)wglGetProcAddress(name); \
    if (!proc) croak(name " is not supported by this renderer"); \
  } \
}
#define testProc(proc,name) ((proc) ? 1 : !!(proc = (void *)wglGetProcAddress(name)))
#else /* not using WGL */
#define loadProc(proc,name)
#define testProc(proc,name) 1
#endif /* not defined _WIN32, __CYGWIN__, and HAVE_W32API */
#endif /* defined HAVE_GL */

#ifdef HAVE_GLX
#include "glx_util.h"
#endif /* defined HAVE_GLX */

#ifdef HAVE_GLU
#include "glu_util.h"
#endif /* defined HAVE_GLU */





#line 61 "pogl_gl_Vert_Multi.c"
#ifndef PERL_UNUSED_VAR
#  define PERL_UNUSED_VAR(var) if (0) var = var
#endif

#ifndef dVAR
#  define dVAR		dNOOP
#endif


/* This stuff is not part of the API! You have been warned. */
#ifndef PERL_VERSION_DECIMAL
#  define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s)
#endif
#ifndef PERL_DECIMAL_VERSION
#  define PERL_DECIMAL_VERSION \
	  PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)
#endif
#ifndef PERL_VERSION_GE
#  define PERL_VERSION_GE(r,v,s) \
	  (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s))
#endif
#ifndef PERL_VERSION_LE
#  define PERL_VERSION_LE(r,v,s) \
	  (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s))
#endif

/* XS_INTERNAL is the explicit static-linkage variant of the default
 * XS macro.
 *
 * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
 * "STATIC", ie. it exports XSUB symbols. You probably don't want that
 * for anything but the BOOT XSUB.
 *
 * See XSUB.h in core!
 */


/* TODO: This might be compatible further back than 5.10.0. */
#if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1)
#  undef XS_EXTERNAL
#  undef XS_INTERNAL
#  if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
#    define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
#    define XS_INTERNAL(name) STATIC XSPROTO(name)
#  endif
#  if defined(__SYMBIAN32__)
#    define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)
#    define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name)
#  endif
#  ifndef XS_EXTERNAL
#    if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
#      define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__)
#      define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__)
#    else
#      ifdef __cplusplus
#        define XS_EXTERNAL(name) extern "C" XSPROTO(name)
#        define XS_INTERNAL(name) static XSPROTO(name)
#      else
#        define XS_EXTERNAL(name) XSPROTO(name)
#        define XS_INTERNAL(name) STATIC XSPROTO(name)
#      endif
#    endif
#  endif
#endif

/* perl >= 5.10.0 && perl <= 5.15.1 */


/* The XS_EXTERNAL macro is used for functions that must not be static
 * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
 * macro defined, the best we can do is assume XS is the same.
 * Dito for XS_INTERNAL.
 */
#ifndef XS_EXTERNAL
#  define XS_EXTERNAL(name) XS(name)
#endif
#ifndef XS_INTERNAL
#  define XS_INTERNAL(name) XS(name)
#endif

/* Now, finally, after all this mess, we want an ExtUtils::ParseXS
 * internal macro that we're free to redefine for varying linkage due
 * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
 * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
 */

#undef XS_EUPXS
#if defined(PERL_EUPXS_ALWAYS_EXPORT)
#  define XS_EUPXS(name) XS_EXTERNAL(name)
#else
   /* default to internal */
#  define XS_EUPXS(name) XS_INTERNAL(name)
#endif

#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)

/* prototype to pass -Wmissing-prototypes */
STATIC void
S_croak_xs_usage(const CV *const cv, const char *const params);

STATIC void
S_croak_xs_usage(const CV *const cv, const char *const params)
{
    const GV *const gv = CvGV(cv);

    PERL_ARGS_ASSERT_CROAK_XS_USAGE;

    if (gv) {
        const char *const gvname = GvNAME(gv);
        const HV *const stash = GvSTASH(gv);
        const char *const hvname = stash ? HvNAME(stash) : NULL;

        if (hvname)
	    Perl_croak_nocontext("Usage: %s::%s(%s)", hvname, gvname, params);
        else
	    Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
    } else {
        /* Pants. I don't think that it should be possible to get here. */
	Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
    }
}
#undef  PERL_ARGS_ASSERT_CROAK_XS_USAGE

#define croak_xs_usage        S_croak_xs_usage

#endif

/* NOTE: the prototype of newXSproto() is different in versions of perls,
 * so we define a portable version of newXSproto()
 */
#ifdef newXS_flags
#define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0)
#else
#define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
#endif /* !defined(newXS_flags) */

#if PERL_VERSION_LE(5, 21, 5)
#  define newXS_deffile(a,b) Perl_newXS(aTHX_ a,b,file)
#else
#  define newXS_deffile(a,b) Perl_newXS_deffile(aTHX_ a,b)
#endif

#line 205 "pogl_gl_Vert_Multi.c"
#ifdef HAVE_GL
#if defined(GL_VERSION_1_1) || defined(GL_EXT_vertex_array)
#define XSubPPtmpAAAA 1


XS_EUPXS(XS_OpenGL_glVertexPointerEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertexPointerEXT_c)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(4)))
;
#line 71 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glVertexPointerEXT,"glVertexPointerEXT");
#endif
#line 232 "pogl_gl_Vert_Multi.c"
#line 75 "pogl_gl_Vert_Multi.xs"
#ifdef GL_VERSION_1_1
		glVertexPointer(size, type, stride, pointer);
#else // GL_EXT_vertex_array
		glVertexPointerEXT(size, type, stride, count, pointer);
#endif
#line 239 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertexPointerEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertexPointerEXT_s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	SV *	pointer = ST(4)
;
#line 90 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glVertexPointerEXT,"glVertexPointerEXT");
#endif
#line 266 "pogl_gl_Vert_Multi.c"
#line 94 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = EL(pointer, width*count);
#ifdef GL_VERSION_1_1
		glVertexPointer(size, type, stride, pointer_s);
#else // GL_EXT_vertex_array
		glVertexPointerEXT(size, type, stride, count, pointer_s);
#endif
	}
#line 277 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertexPointerEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertexPointerEXT_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "size, oga");
    {
	GLint	size = (int)SvIV(ST(0))
;
	OpenGL__Array	oga;

	if (SvROK(ST(1)) && sv_derived_from(ST(1), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(1)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glVertexPointerEXT_p",
			"oga", "OpenGL::Array")
;
#line 110 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glVertexPointerEXT,"glVertexPointerEXT");
#endif
#line 307 "pogl_gl_Vert_Multi.c"
#line 114 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glVertexPointer(size, oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glVertexPointerEXT(size, oga->types[0], 0, oga->item_count/size, data);
#endif
	}
#line 327 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertexPointer_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertexPointer_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "size, oga");
    {
	GLint	size = (int)SvIV(ST(0))
;
	OpenGL__Array	oga;

	if (SvROK(ST(1)) && sv_derived_from(ST(1), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(1)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glVertexPointer_p",
			"oga", "OpenGL::Array")
;
#line 139 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glVertexPointerEXT,"glVertexPointerEXT");
#endif
#line 357 "pogl_gl_Vert_Multi.c"
#line 143 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glVertexPointer(size, oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glVertexPointerEXT(size, oga->types[0], 0, oga->item_count/size, data);
#endif
	}
#line 377 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormalPointerEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormalPointerEXT_c)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(4)))
;
#line 171 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glNormalPointerEXT,"glNormalPointerEXT");
#endif
#line 404 "pogl_gl_Vert_Multi.c"
#line 175 "pogl_gl_Vert_Multi.xs"
#ifdef GL_VERSION_1_1
		glNormalPointer(type, stride, pointer);
#else // GL_EXT_vertex_array
		glNormalPointerEXT(type, stride, count, pointer);
#endif
#line 411 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormalPointerEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormalPointerEXT_s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	SV *	pointer = ST(4)
;
#line 190 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glNormalPointerEXT,"glNormalPointerEXT");
#endif
#line 438 "pogl_gl_Vert_Multi.c"
#line 194 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = EL(pointer, width*count);
#ifdef GL_VERSION_1_1
		glNormalPointer(type, stride, pointer_s);
#else // GL_EXT_vertex_array
		glNormalPointerEXT(type, stride, count, pointer_s);
#endif
	}
#line 449 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormalPointerEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormalPointerEXT_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "oga");
    {
	OpenGL__Array	oga;

	if (SvROK(ST(0)) && sv_derived_from(ST(0), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(0)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glNormalPointerEXT_p",
			"oga", "OpenGL::Array")
;
#line 209 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glNormalPointerEXT,"glNormalPointerEXT");
#endif
#line 477 "pogl_gl_Vert_Multi.c"
#line 213 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glNormalPointer(oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glNormalPointerEXT(oga->types[0], 0, oga->item_count/3, data);
#endif
	}
#line 497 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormalPointer_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormalPointer_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "oga");
    {
	OpenGL__Array	oga;

	if (SvROK(ST(0)) && sv_derived_from(ST(0), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(0)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glNormalPointer_p",
			"oga", "OpenGL::Array")
;
#line 237 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glNormalPointerEXT,"glNormalPointerEXT");
#endif
#line 525 "pogl_gl_Vert_Multi.c"
#line 241 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glNormalPointer(oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glNormalPointerEXT(oga->types[0], 0, oga->item_count/3, data);
#endif
	}
#line 545 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColorPointerEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColorPointerEXT_c)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(4)))
;
#line 269 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glColorPointerEXT,"glColorPointerEXT");
#endif
#line 572 "pogl_gl_Vert_Multi.c"
#line 273 "pogl_gl_Vert_Multi.xs"
#ifdef GL_VERSION_1_1
		glColorPointer(size, type, stride, pointer);
#else // GL_EXT_vertex_array
		glColorPointerEXT(size, type, stride, count, pointer);
#endif
#line 579 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColorPointerEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColorPointerEXT_s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	SV *	pointer = ST(4)
;
#line 288 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glColorPointerEXT,"glColorPointerEXT");
#endif
#line 606 "pogl_gl_Vert_Multi.c"
#line 292 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = EL(pointer, width*count);
#ifdef GL_VERSION_1_1
		glColorPointer(size, type, stride, pointer_s);
#else // GL_EXT_vertex_array
		glColorPointerEXT(size, type, stride, count, pointer_s);
#endif
	}
#line 617 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColorPointerEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColorPointerEXT_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "size, oga");
    {
	GLint	size = (int)SvIV(ST(0))
;
	OpenGL__Array	oga;

	if (SvROK(ST(1)) && sv_derived_from(ST(1), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(1)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glColorPointerEXT_p",
			"oga", "OpenGL::Array")
;
#line 308 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glColorPointerEXT,"glColorPointerEXT");
#endif
#line 647 "pogl_gl_Vert_Multi.c"
#line 312 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glColorPointer(size, oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glColorPointerEXT(size, oga->types[0], 0, oga->item_count/size, data);
#endif
	}
#line 667 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColorPointer_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColorPointer_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "size, oga");
    {
	GLint	size = (int)SvIV(ST(0))
;
	OpenGL__Array	oga;

	if (SvROK(ST(1)) && sv_derived_from(ST(1), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(1)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glColorPointer_p",
			"oga", "OpenGL::Array")
;
#line 337 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glColorPointerEXT,"glColorPointerEXT");
#endif
#line 697 "pogl_gl_Vert_Multi.c"
#line 341 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glColorPointer(size, oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glColorPointerEXT(size, oga->types[0], 0, oga->item_count/size, data);
#endif
	}
#line 717 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexPointerEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexPointerEXT_c)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(4)))
;
#line 369 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glIndexPointerEXT,"glIndexPointerEXT");
#endif
#line 744 "pogl_gl_Vert_Multi.c"
#line 373 "pogl_gl_Vert_Multi.xs"
#ifdef GL_VERSION_1_1
		glIndexPointer(type, stride, pointer);
#else // GL_EXT_vertex_array
		glIndexPointerEXT(type, stride, count, pointer);
#endif
#line 751 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexPointerEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexPointerEXT_s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	SV *	pointer = ST(4)
;
#line 388 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glIndexPointerEXT,"glIndexPointerEXT");
#endif
#line 778 "pogl_gl_Vert_Multi.c"
#line 392 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = EL(pointer, width*count);
#ifdef GL_VERSION_1_1
		glIndexPointer(type, stride, pointer_s);
#else // GL_EXT_vertex_array
		glIndexPointerEXT(type, stride, count, pointer_s);
#endif
	}
#line 789 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexPointerEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexPointerEXT_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "oga");
    {
	OpenGL__Array	oga;

	if (SvROK(ST(0)) && sv_derived_from(ST(0), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(0)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glIndexPointerEXT_p",
			"oga", "OpenGL::Array")
;
#line 407 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glIndexPointerEXT,"glIndexPointerEXT");
#endif
#line 817 "pogl_gl_Vert_Multi.c"
#line 411 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glIndexPointer(oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glIndexPointerEXT(oga->types[0], 0, oga->item_count, data);
#endif
	}
#line 837 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexPointer_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexPointer_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "oga");
    {
	OpenGL__Array	oga;

	if (SvROK(ST(0)) && sv_derived_from(ST(0), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(0)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glIndexPointer_p",
			"oga", "OpenGL::Array")
;
#line 435 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glIndexPointerEXT,"glIndexPointerEXT");
#endif
#line 865 "pogl_gl_Vert_Multi.c"
#line 439 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glIndexPointer(oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glIndexPointerEXT(oga->types[0], 0, oga->item_count, data);
#endif
	}
#line 885 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoordPointerEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoordPointerEXT_c)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(4)))
;
#line 467 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glTexCoordPointerEXT");
#endif
#line 912 "pogl_gl_Vert_Multi.c"
#line 471 "pogl_gl_Vert_Multi.xs"
#ifdef GL_VERSION_1_1
		glTexCoordPointer(size, type, stride, pointer);
#else // GL_EXT_vertex_array
		glTexCoordPointerEXT(size, type, stride, count, pointer);
#endif
#line 919 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoordPointerEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoordPointerEXT_s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	SV *	pointer = ST(4)
;
#line 486 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glTexCoordPointerEXT");
#endif
#line 946 "pogl_gl_Vert_Multi.c"
#line 490 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = EL(pointer, width*count);
#ifdef GL_VERSION_1_1
		glTexCoordPointer(size, type, stride, pointer_s);
#else // GL_EXT_vertex_array
		glTexCoordPointerEXT(size, type, stride, count, pointer_s);
#endif
	}
#line 957 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoordPointerEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoordPointerEXT_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "size, oga");
    {
	GLint	size = (int)SvIV(ST(0))
;
	OpenGL__Array	oga;

	if (SvROK(ST(1)) && sv_derived_from(ST(1), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(1)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glTexCoordPointerEXT_p",
			"oga", "OpenGL::Array")
;
#line 506 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glTexCoordPointerEXT");
#endif
#line 987 "pogl_gl_Vert_Multi.c"
#line 510 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glTexCoordPointer(size, oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glTexCoordPointerEXT(size, oga->types[0], 0, oga->item_count/size, data);
#endif
	}
#line 1007 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoordPointer_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoordPointer_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "size, oga");
    {
	GLint	size = (int)SvIV(ST(0))
;
	OpenGL__Array	oga;

	if (SvROK(ST(1)) && sv_derived_from(ST(1), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(1)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glTexCoordPointer_p",
			"oga", "OpenGL::Array")
;
#line 535 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glTexCoordPointerEXT");
#endif
#line 1037 "pogl_gl_Vert_Multi.c"
#line 539 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glTexCoordPointer(size, oga->types[0], 0, data);
#else // GL_EXT_vertex_array
		glTexCoordPointerEXT(size, oga->types[0], 0, oga->item_count/size, data);
#endif
	}
#line 1057 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEdgeFlagPointerEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEdgeFlagPointerEXT_c)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(4)))
;
#line 567 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glEdgeFlagPointerEXT");
#endif
#line 1084 "pogl_gl_Vert_Multi.c"
#line 571 "pogl_gl_Vert_Multi.xs"
#ifdef GL_VERSION_1_1
		glEdgeFlagPointer(stride, pointer);
#else // GL_EXT_vertex_array
		glEdgeFlagPointerEXT(stride, count, pointer);
#endif
#line 1091 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEdgeFlagPointerEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEdgeFlagPointerEXT_s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "size, type, stride, count, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	SV *	pointer = ST(4)
;
#line 586 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glEdgeFlagPointerEXT");
#endif
#line 1118 "pogl_gl_Vert_Multi.c"
#line 590 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = EL(pointer, width*count);
#ifdef GL_VERSION_1_1
		glEdgeFlagPointer(stride, pointer_s);
#else // GL_EXT_vertex_array
		glEdgeFlagPointerEXT(stride, count, pointer_s);
#endif
	}
#line 1129 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEdgeFlagPointerEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEdgeFlagPointerEXT_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "oga");
    {
	OpenGL__Array	oga;

	if (SvROK(ST(0)) && sv_derived_from(ST(0), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(0)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glEdgeFlagPointerEXT_p",
			"oga", "OpenGL::Array")
;
#line 605 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glEdgeFlagPointerEXT");
#endif
#line 1157 "pogl_gl_Vert_Multi.c"
#line 609 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glEdgeFlagPointer(0, data);
#else // GL_EXT_vertex_array
		glEdgeFlagPointerEXT(0, oga->item_count, data);
#endif
	}
#line 1177 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEdgeFlagPointer_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEdgeFlagPointer_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "oga");
    {
	OpenGL__Array	oga;

	if (SvROK(ST(0)) && sv_derived_from(ST(0), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(0)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glEdgeFlagPointer_p",
			"oga", "OpenGL::Array")
;
#line 633 "pogl_gl_Vert_Multi.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glEdgeFlagPointerEXT");
#endif
#line 1205 "pogl_gl_Vert_Multi.c"
#line 637 "pogl_gl_Vert_Multi.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBuffer(GL_ARRAY_BUFFER, oga->bind);
		data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			data = NULL;
		}
#endif
#ifdef GL_VERSION_1_1
		glEdgeFlagPointer(0, data);
#else // GL_EXT_vertex_array
		glEdgeFlagPointerEXT(0, oga->item_count, data);
#endif
	}
#line 1225 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_EXT_vertex_array || GL_VERSION_1_1
#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAB 1


XS_EUPXS(XS_OpenGL_glVertexPointer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertexPointer_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "size, type, stride, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(3)))
;
#line 670 "pogl_gl_Vert_Multi.xs"
		glVertexPointer(size, type, stride, pointer);
#line 1252 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertexPointer_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertexPointer_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "size, type, stride, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	SV *	pointer = ST(3)
;
#line 680 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = NULL;
		if ( pointer ) {
			pointer_s = EL(pointer, width);
		}
		glVertexPointer(size, type, stride, pointer_s);
	}
#line 1282 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormalPointer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormalPointer_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "type, stride, pointer");
    {
	GLenum	type = (int)SvIV(ST(0))
;
	GLsizei	stride = (int)SvIV(ST(1))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(2)))
;
#line 696 "pogl_gl_Vert_Multi.xs"
		glNormalPointer(type, stride, pointer);
#line 1303 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormalPointer_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormalPointer_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "type, stride, pointer");
    {
	GLenum	type = (int)SvIV(ST(0))
;
	GLsizei	stride = (int)SvIV(ST(1))
;
	SV *	pointer = ST(2)
;
#line 705 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (gl_type_size(type)*3);
		void * pointer_s = NULL;
		if ( pointer ) {
			pointer_s = EL(pointer, width);
		}
		glNormalPointer(type, stride, pointer_s);
	}
#line 1331 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColorPointer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColorPointer_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "size, type, stride, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(3)))
;
#line 722 "pogl_gl_Vert_Multi.xs"
		glColorPointer(size, type, stride, pointer);
#line 1354 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColorPointer_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColorPointer_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "size, type, stride, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	SV *	pointer = ST(3)
;
#line 732 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = NULL;
		if ( pointer ) {
			pointer_s = EL(pointer, width);
		}
		glColorPointer(size, type, stride, pointer_s);
	}
#line 1384 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexPointer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexPointer_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "type, stride, pointer");
    {
	GLenum	type = (int)SvIV(ST(0))
;
	GLsizei	stride = (int)SvIV(ST(1))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(2)))
;
#line 748 "pogl_gl_Vert_Multi.xs"
		glIndexPointer(type, stride, pointer);
#line 1405 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexPointer_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexPointer_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "type, stride, pointer");
    {
	GLenum	type = (int)SvIV(ST(0))
;
	GLsizei	stride = (int)SvIV(ST(1))
;
	SV *	pointer = ST(2)
;
#line 757 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : gl_type_size(type);
		void * pointer_s = NULL;
		if ( pointer ) {
			pointer_s = EL(pointer, width);
		}
		glIndexPointer(type, stride, pointer_s);
	}
#line 1433 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoordPointer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoordPointer_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "size, type, stride, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(3)))
;
#line 774 "pogl_gl_Vert_Multi.xs"
		glTexCoordPointer(size, type, stride, pointer);
#line 1456 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoordPointer_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoordPointer_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "size, type, stride, pointer");
    {
	GLint	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	GLsizei	stride = (int)SvIV(ST(2))
;
	SV *	pointer = ST(3)
;
#line 784 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : (sizeof(type)*size);
		void * pointer_s = NULL;
		if ( pointer ) {
			pointer_s = EL(pointer, width);
		}
		glTexCoordPointer(size, type, stride, pointer_s);
	}
#line 1486 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEdgeFlagPointer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEdgeFlagPointer_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "stride, pointer");
    {
	GLsizei	stride = (int)SvIV(ST(0))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(1)))
;
#line 799 "pogl_gl_Vert_Multi.xs"
		glEdgeFlagPointer(stride, pointer);
#line 1505 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEdgeFlagPointer_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEdgeFlagPointer_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "stride, pointer");
    {
	GLsizei	stride = (int)SvIV(ST(0))
;
	SV *	pointer = ST(1)
;
#line 807 "pogl_gl_Vert_Multi.xs"
	{
		int width = stride ? stride : sizeof(GLboolean);
		void * pointer_s = NULL;
		if ( pointer ) {
			pointer_s = EL(pointer, width);
		}
		glEdgeFlagPointer(stride, pointer_s);
	}
#line 1531 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_VERSION_1_1
#ifndef NO_GL_EXT_vertex_array
#ifdef GL_EXT_vertex_array
#define XSubPPtmpAAAC 1


XS_EUPXS(XS_OpenGL_glArrayElementEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glArrayElementEXT)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "i");
    {
	GLint	i = (int)SvIV(ST(0))
;
#line 827 "pogl_gl_Vert_Multi.xs"
		loadProc(glArrayElementEXT,"glArrayElementEXT");
#line 1553 "pogl_gl_Vert_Multi.c"

	glArrayElementEXT(i);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawArraysEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawArraysEXT)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "mode, first, count");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLint	first = (int)SvIV(ST(1))
;
	GLsizei	count = (int)SvIV(ST(2))
;
#line 836 "pogl_gl_Vert_Multi.xs"
		loadProc(glDrawArraysEXT,"glDrawArraysEXT");
#line 1576 "pogl_gl_Vert_Multi.c"

	glDrawArraysEXT(mode, first, count);
    }
    XSRETURN_EMPTY;
}

#endif // GL_EXT_vertex_array
#endif // !NO_GL_EXT_vertex_array
#ifdef GL_MESA_resize_buffers
#define XSubPPtmpAAAD 1


XS_EUPXS(XS_OpenGL_glResizeBuffersMESA); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glResizeBuffersMESA)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {

	glResizeBuffersMESA();
    }
    XSRETURN_EMPTY;
}

#endif // GL_MESA_resize_buffers
#ifdef GL_VERSION_2_0
#define XSubPPtmpAAAE 1


XS_EUPXS(XS_OpenGL_glDrawBuffers_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawBuffers_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	buffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 859 "pogl_gl_Vert_Multi.xs"
	{
		glDrawBuffers(n,buffers);
	}
#line 1622 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawBuffers_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawBuffers_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	buffers = ST(1)
;
#line 869 "pogl_gl_Vert_Multi.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glDrawBuffers(n,buffers_s);
	}
#line 1644 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawBuffers_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawBuffers_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    {
#line 878 "pogl_gl_Vert_Multi.xs"
	{
		if (items) {
			GLuint * list = malloc(sizeof(GLuint) * items);
			int i;

			for (i=0;i<items;i++)
				list[i] = SvIV(ST(i));

			glDrawBuffers(items, list);
			free(list);
		}
	}
#line 1669 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_VERSION_2_0
#ifdef GL_ARB_draw_buffers
#define XSubPPtmpAAAF 1


XS_EUPXS(XS_OpenGL_glDrawBuffersARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawBuffersARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	buffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 902 "pogl_gl_Vert_Multi.xs"
		loadProc(glDrawBuffersARB,"glDrawBuffersARB");
#line 1692 "pogl_gl_Vert_Multi.c"
#line 904 "pogl_gl_Vert_Multi.xs"
	{
		glDrawBuffersARB(n,buffers);
	}
#line 1697 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawBuffersARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawBuffersARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	buffers = ST(1)
;
#line 914 "pogl_gl_Vert_Multi.xs"
		loadProc(glDrawBuffersARB,"glDrawBuffersARB");
#line 1716 "pogl_gl_Vert_Multi.c"
#line 916 "pogl_gl_Vert_Multi.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glDrawBuffersARB(n,buffers_s);
	}
#line 1722 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawBuffersARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawBuffersARB_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    {
#line 925 "pogl_gl_Vert_Multi.xs"
		loadProc(glDrawBuffersARB,"glDrawBuffersARB");
#line 1736 "pogl_gl_Vert_Multi.c"
#line 927 "pogl_gl_Vert_Multi.xs"
	{
		if (items)
		{
			GLuint * list = malloc(sizeof(GLuint) * items);
			int i;
			for (i=0;i<items;i++)
				list[i] = SvIV(ST(i));
			glDrawBuffersARB(items, list);
			free(list);
		}
	}
#line 1749 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_ARB_draw_buffers
#ifdef GL_VERSION_3_0
#define XSubPPtmpAAAG 1


XS_EUPXS(XS_OpenGL_glIsRenderbuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsRenderbuffer)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "renderbuffer");
    {
	GLuint	renderbuffer = (unsigned int)SvUV(ST(0))
;
	GLboolean	RETVAL;
#line 949 "pogl_gl_Vert_Multi.xs"
	{
		RETVAL = glIsRenderbuffer(renderbuffer);
	}
#line 1773 "pogl_gl_Vert_Multi.c"
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glBindRenderbuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBindRenderbuffer)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, renderbuffer");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLuint	renderbuffer = (unsigned int)SvUV(ST(1))
;
#line 961 "pogl_gl_Vert_Multi.xs"
	{
		glBindRenderbuffer(target,renderbuffer);
	}
#line 1795 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteRenderbuffers_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteRenderbuffers_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, renderbuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	renderbuffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 971 "pogl_gl_Vert_Multi.xs"
	{
		glDeleteRenderbuffers(n,renderbuffers);
	}
#line 1816 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteRenderbuffers_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteRenderbuffers_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, renderbuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	renderbuffers = ST(1)
;
#line 981 "pogl_gl_Vert_Multi.xs"
	{
		void * renderbuffers_s = EL(renderbuffers, sizeof(GLuint)*n);
		glDeleteRenderbuffers(n,renderbuffers_s);
	}
#line 1838 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteRenderbuffers_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteRenderbuffers_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    {
#line 990 "pogl_gl_Vert_Multi.xs"
	{
		if (items) {
			GLuint * list = malloc(sizeof(GLuint) * items);
			int i;

			for (i=0;i<items;i++)
				list[i] = SvIV(ST(i));

			glDeleteRenderbuffers(items, list);
			free(list);
		}
	}
#line 1863 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenRenderbuffers_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenRenderbuffers_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, renderbuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	renderbuffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1009 "pogl_gl_Vert_Multi.xs"
	{
		glGenRenderbuffers(n, renderbuffers);
	}
#line 1884 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenRenderbuffers_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenRenderbuffers_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, renderbuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	renderbuffers = ST(1)
;
#line 1019 "pogl_gl_Vert_Multi.xs"
	{
		void * renderbuffers_s = EL(renderbuffers, sizeof(GLuint)*n);
		glGenRenderbuffers(n, renderbuffers_s);
	}
#line 1906 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenRenderbuffers_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenRenderbuffers_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "n");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLsizei	n = (int)SvIV(ST(0))
;
#line 1029 "pogl_gl_Vert_Multi.xs"
	if (n)
	{
		GLuint * renderbuffers = malloc(sizeof(GLuint) * n);
		int i;

		glGenRenderbuffers(n, renderbuffers);

		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(renderbuffers[i])));

		free(renderbuffers);
	}
#line 1937 "pogl_gl_Vert_Multi.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glRenderbufferStorage); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRenderbufferStorage)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, internalformat, width, height");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	internalformat = (int)SvIV(ST(1))
;
	GLsizei	width = (int)SvIV(ST(2))
;
	GLsizei	height = (int)SvIV(ST(3))
;
#line 1051 "pogl_gl_Vert_Multi.xs"
	{
		glRenderbufferStorage(target,internalformat,width,height);
	}
#line 1963 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetRenderbufferParameteriv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetRenderbufferParameteriv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 1062 "pogl_gl_Vert_Multi.xs"
	{
		GLint * params_s = EL(params, sizeof(GLint));
		glGetRenderbufferParameteriv(target,pname,params_s);
	}
#line 1987 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetRenderbufferParameteriv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetRenderbufferParameteriv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 1074 "pogl_gl_Vert_Multi.xs"
	{
		glGetRenderbufferParameteriv(target,pname,params);
	}
#line 2010 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIsFramebuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsFramebuffer)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "framebuffer");
    {
	GLuint	framebuffer = (unsigned int)SvUV(ST(0))
;
	GLboolean	RETVAL;
#line 1083 "pogl_gl_Vert_Multi.xs"
	{
		RETVAL = glIsFramebuffer(framebuffer);
	}
#line 2030 "pogl_gl_Vert_Multi.c"
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glBindFramebuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBindFramebuffer)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, framebuffer");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLuint	framebuffer = (unsigned int)SvUV(ST(1))
;
#line 1095 "pogl_gl_Vert_Multi.xs"
	{
		glBindFramebuffer(target,framebuffer);
	}
#line 2052 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteFramebuffers_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteFramebuffers_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, framebuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	framebuffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1105 "pogl_gl_Vert_Multi.xs"
	{
		glDeleteFramebuffers(n,framebuffers);
	}
#line 2073 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteFramebuffers_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteFramebuffers_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, framebuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	framebuffers = ST(1)
;
#line 1115 "pogl_gl_Vert_Multi.xs"
	{
		void * framebuffers_s = EL(framebuffers, sizeof(GLuint)*n);
		glDeleteFramebuffers(n,framebuffers_s);
	}
#line 2095 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteFramebuffers_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteFramebuffers_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    {
#line 1124 "pogl_gl_Vert_Multi.xs"
	{
		if (items) {
			GLuint * list = malloc(sizeof(GLuint) * items);
			int i;

			for(i=0;i<items;i++)
				list[i] = SvIV(ST(i));

			glDeleteFramebuffers(items, list);
			free(list);
		}
	}
#line 2120 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenFramebuffers_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenFramebuffers_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, framebuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	framebuffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1143 "pogl_gl_Vert_Multi.xs"
	{
		glGenFramebuffers(n,framebuffers);
	}
#line 2141 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenFramebuffers_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenFramebuffers_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, framebuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	framebuffers = ST(1)
;
#line 1153 "pogl_gl_Vert_Multi.xs"
	{
		void * framebuffers_s = EL(framebuffers, sizeof(GLuint)*n);
		glGenFramebuffers(n,framebuffers_s);
	}
#line 2163 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenFramebuffers_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenFramebuffers_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "n");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLsizei	n = (int)SvIV(ST(0))
;
#line 1163 "pogl_gl_Vert_Multi.xs"
	if (n)
	{
		GLuint * framebuffers = malloc(sizeof(GLuint) * n);
		int i;

		glGenFramebuffers(n, framebuffers);

		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(framebuffers[i])));

		free(framebuffers);
	}
#line 2194 "pogl_gl_Vert_Multi.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glCheckFramebufferStatus); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCheckFramebufferStatus)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "target");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	RETVAL;
	dXSTARG;
#line 1182 "pogl_gl_Vert_Multi.xs"
	{
		RETVAL = glCheckFramebufferStatus(target);
	}
#line 2216 "pogl_gl_Vert_Multi.c"
	XSprePUSH; PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glFramebufferTexture1D); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFramebufferTexture1D)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, attachment, textarget, texture, level");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	textarget = (int)SvIV(ST(2))
;
	GLuint	texture = (unsigned int)SvUV(ST(3))
;
	GLint	level = (int)SvIV(ST(4))
;
#line 1197 "pogl_gl_Vert_Multi.xs"
	{
		glFramebufferTexture1D(target,attachment,textarget,texture,level);
	}
#line 2244 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFramebufferTexture2D); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFramebufferTexture2D)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, attachment, textarget, texture, level");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	textarget = (int)SvIV(ST(2))
;
	GLuint	texture = (unsigned int)SvUV(ST(3))
;
	GLint	level = (int)SvIV(ST(4))
;
#line 1210 "pogl_gl_Vert_Multi.xs"
	{
		glFramebufferTexture2D(target,attachment,textarget,texture,level);
	}
#line 2271 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFramebufferTexture3D); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFramebufferTexture3D)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "target, attachment, textarget, texture, level, zoffset");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	textarget = (int)SvIV(ST(2))
;
	GLuint	texture = (unsigned int)SvUV(ST(3))
;
	GLint	level = (int)SvIV(ST(4))
;
	GLint	zoffset = (int)SvIV(ST(5))
;
#line 1224 "pogl_gl_Vert_Multi.xs"
	{
		glFramebufferTexture3D(target,attachment,textarget,texture,level,zoffset);
	}
#line 2300 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFramebufferRenderbuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFramebufferRenderbuffer)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, attachment, renderbuffertarget, renderbuffer");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	renderbuffertarget = (int)SvIV(ST(2))
;
	GLuint	renderbuffer = (unsigned int)SvUV(ST(3))
;
#line 1236 "pogl_gl_Vert_Multi.xs"
	{
		glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer);
	}
#line 2325 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetFramebufferAttachmentParameteriv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetFramebufferAttachmentParameteriv_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, attachment, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
	SV *	params = ST(3)
;
#line 1248 "pogl_gl_Vert_Multi.xs"
	{
		GLint * params_s = EL(params, sizeof(GLint));
		glGetFramebufferAttachmentParameteriv(target,attachment,pname,params_s);
	}
#line 2351 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetFramebufferAttachmentParameteriv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetFramebufferAttachmentParameteriv_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, attachment, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
	void *	params = INT2PTR(void *,SvIV(ST(3)))
;
#line 1261 "pogl_gl_Vert_Multi.xs"
	{
		glGetFramebufferAttachmentParameteriv(target,attachment,pname,params);
	}
#line 2376 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenerateMipmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenerateMipmap)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "target");
    {
	GLenum	target = (int)SvIV(ST(0))
;
#line 1270 "pogl_gl_Vert_Multi.xs"
	{
		glGenerateMipmap(target);
	}
#line 2395 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_VERSION_3_0
#ifdef GL_EXT_framebuffer_object
#define XSubPPtmpAAAH 1


XS_EUPXS(XS_OpenGL_glIsRenderbufferEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsRenderbufferEXT)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "renderbuffer");
    {
	GLuint	renderbuffer = (unsigned int)SvUV(ST(0))
;
	GLboolean	RETVAL;
#line 1284 "pogl_gl_Vert_Multi.xs"
		loadProc(glIsRenderbufferEXT,"glIsRenderbufferEXT");
#line 2417 "pogl_gl_Vert_Multi.c"
#line 1286 "pogl_gl_Vert_Multi.xs"
	{
		RETVAL = glIsRenderbufferEXT(renderbuffer);
	}
#line 2422 "pogl_gl_Vert_Multi.c"
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glBindRenderbufferEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBindRenderbufferEXT)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, renderbuffer");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLuint	renderbuffer = (unsigned int)SvUV(ST(1))
;
#line 1298 "pogl_gl_Vert_Multi.xs"
		loadProc(glBindRenderbufferEXT,"glBindRenderbufferEXT");
#line 2442 "pogl_gl_Vert_Multi.c"
#line 1300 "pogl_gl_Vert_Multi.xs"
	{
		glBindRenderbufferEXT(target,renderbuffer);
	}
#line 2447 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteRenderbuffersEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteRenderbuffersEXT_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, renderbuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	renderbuffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1310 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteRenderbuffersEXT,"glDeleteRenderbuffersEXT");
#line 2466 "pogl_gl_Vert_Multi.c"
#line 1312 "pogl_gl_Vert_Multi.xs"
	{
		glDeleteRenderbuffersEXT(n,renderbuffers);
	}
#line 2471 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteRenderbuffersEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteRenderbuffersEXT_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, renderbuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	renderbuffers = ST(1)
;
#line 1322 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteRenderbuffersEXT,"glDeleteRenderbuffersEXT");
#line 2490 "pogl_gl_Vert_Multi.c"
#line 1324 "pogl_gl_Vert_Multi.xs"
	{
		void * renderbuffers_s = EL(renderbuffers, sizeof(GLuint)*n);
		glDeleteRenderbuffersEXT(n,renderbuffers_s);
	}
#line 2496 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteRenderbuffersEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteRenderbuffersEXT_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    {
#line 1333 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteRenderbuffersEXT,"glDeleteRenderbuffersEXT");
#line 2510 "pogl_gl_Vert_Multi.c"
#line 1335 "pogl_gl_Vert_Multi.xs"
	{
		if (items) {
			GLuint * list = malloc(sizeof(GLuint) * items);
			int i;

			for (i=0;i<items;i++)
				list[i] = SvIV(ST(i));

			glDeleteRenderbuffersEXT(items, list);
			free(list);
		}
	}
#line 2524 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenRenderbuffersEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenRenderbuffersEXT_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, renderbuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	renderbuffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1354 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenRenderbuffersEXT,"glGenRenderbuffersEXT");
#line 2543 "pogl_gl_Vert_Multi.c"
#line 1356 "pogl_gl_Vert_Multi.xs"
	{
		glGenRenderbuffersEXT(n, renderbuffers);
	}
#line 2548 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenRenderbuffersEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenRenderbuffersEXT_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, renderbuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	renderbuffers = ST(1)
;
#line 1366 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenRenderbuffersEXT,"glGenRenderbuffersEXT");
#line 2567 "pogl_gl_Vert_Multi.c"
#line 1368 "pogl_gl_Vert_Multi.xs"
	{
		void * renderbuffers_s = EL(renderbuffers, sizeof(GLuint)*n);
		glGenRenderbuffersEXT(n, renderbuffers_s);
	}
#line 2573 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenRenderbuffersEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenRenderbuffersEXT_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "n");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLsizei	n = (int)SvIV(ST(0))
;
#line 1378 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenRenderbuffersEXT,"glGenRenderbuffersEXT");
#line 2592 "pogl_gl_Vert_Multi.c"
#line 1380 "pogl_gl_Vert_Multi.xs"
	if (n)
	{
		GLuint * renderbuffers = malloc(sizeof(GLuint) * n);
		int i;

		glGenRenderbuffersEXT(n, renderbuffers);

		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(renderbuffers[i])));

		free(renderbuffers);
	} 
#line 2607 "pogl_gl_Vert_Multi.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glRenderbufferStorageEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRenderbufferStorageEXT)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, internalformat, width, height");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	internalformat = (int)SvIV(ST(1))
;
	GLsizei	width = (int)SvIV(ST(2))
;
	GLsizei	height = (int)SvIV(ST(3))
;
#line 1402 "pogl_gl_Vert_Multi.xs"
		loadProc(glRenderbufferStorageEXT,"glRenderbufferStorageEXT");
#line 2631 "pogl_gl_Vert_Multi.c"
#line 1404 "pogl_gl_Vert_Multi.xs"
	{
		glRenderbufferStorageEXT(target,internalformat,width,height);
	}
#line 2636 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetRenderbufferParameterivEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetRenderbufferParameterivEXT_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 1415 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetRenderbufferParameterivEXT,"glGetRenderbufferParameterivEXT");
#line 2657 "pogl_gl_Vert_Multi.c"
#line 1417 "pogl_gl_Vert_Multi.xs"
	{
		GLint * params_s = EL(params, sizeof(GLint));
		glGetRenderbufferParameterivEXT(target,pname,params_s);
        }
#line 2663 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetRenderbufferParameterivEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetRenderbufferParameterivEXT_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 1429 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetRenderbufferParameterivEXT,"glGetRenderbufferParameterivEXT");
#line 2684 "pogl_gl_Vert_Multi.c"
#line 1431 "pogl_gl_Vert_Multi.xs"
	{
		glGetRenderbufferParameterivEXT(target,pname,params);
        }
#line 2689 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIsFramebufferEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsFramebufferEXT)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "framebuffer");
    {
	GLuint	framebuffer = (unsigned int)SvUV(ST(0))
;
	GLboolean	RETVAL;
#line 1440 "pogl_gl_Vert_Multi.xs"
		loadProc(glIsFramebufferEXT,"glIsFramebufferEXT");
#line 2707 "pogl_gl_Vert_Multi.c"
#line 1442 "pogl_gl_Vert_Multi.xs"
	{
		RETVAL = glIsFramebufferEXT(framebuffer);
        }
#line 2712 "pogl_gl_Vert_Multi.c"
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glBindFramebufferEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBindFramebufferEXT)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, framebuffer");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLuint	framebuffer = (unsigned int)SvUV(ST(1))
;
#line 1454 "pogl_gl_Vert_Multi.xs"
		loadProc(glBindFramebufferEXT,"glBindFramebufferEXT");
#line 2732 "pogl_gl_Vert_Multi.c"
#line 1456 "pogl_gl_Vert_Multi.xs"
	{
		glBindFramebufferEXT(target,framebuffer);
        }
#line 2737 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteFramebuffersEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteFramebuffersEXT_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, framebuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	framebuffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1466 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteFramebuffersEXT,"glDeleteFramebuffersEXT");
#line 2756 "pogl_gl_Vert_Multi.c"
#line 1468 "pogl_gl_Vert_Multi.xs"
	{
		glDeleteFramebuffersEXT(n,framebuffers);
	}
#line 2761 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteFramebuffersEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteFramebuffersEXT_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, framebuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	framebuffers = ST(1)
;
#line 1478 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteFramebuffersEXT,"glDeleteFramebuffersEXT");
#line 2780 "pogl_gl_Vert_Multi.c"
#line 1480 "pogl_gl_Vert_Multi.xs"
	{
		void * framebuffers_s = EL(framebuffers, sizeof(GLuint)*n);
		glDeleteFramebuffersEXT(n,framebuffers_s);
	}
#line 2786 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteFramebuffersEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteFramebuffersEXT_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    {
#line 1489 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteFramebuffersEXT,"glDeleteFramebuffersEXT");
#line 2800 "pogl_gl_Vert_Multi.c"
#line 1491 "pogl_gl_Vert_Multi.xs"
	{
		if (items) {
			GLuint * list = malloc(sizeof(GLuint) * items);
			int i;

			for(i=0;i<items;i++)
				list[i] = SvIV(ST(i));

			glDeleteFramebuffersEXT(items, list);
			free(list);
		}
	}
#line 2814 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenFramebuffersEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenFramebuffersEXT_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, framebuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	framebuffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1510 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenFramebuffersEXT,"glGenFramebuffersEXT");
#line 2833 "pogl_gl_Vert_Multi.c"
#line 1512 "pogl_gl_Vert_Multi.xs"
	{
		glGenFramebuffersEXT(n,framebuffers);
	}
#line 2838 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenFramebuffersEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenFramebuffersEXT_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, framebuffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	framebuffers = ST(1)
;
#line 1522 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenFramebuffersEXT,"glGenFramebuffersEXT");
#line 2857 "pogl_gl_Vert_Multi.c"
#line 1524 "pogl_gl_Vert_Multi.xs"
	{
		void * framebuffers_s = EL(framebuffers, sizeof(GLuint)*n);
		glGenFramebuffersEXT(n,framebuffers_s);
	}
#line 2863 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenFramebuffersEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenFramebuffersEXT_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "n");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLsizei	n = (int)SvIV(ST(0))
;
#line 1534 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenFramebuffersEXT,"glGenFramebuffersEXT");
#line 2882 "pogl_gl_Vert_Multi.c"
#line 1536 "pogl_gl_Vert_Multi.xs"
	if (n)
	{
		GLuint * framebuffers = malloc(sizeof(GLuint) * n);
		int i;

		glGenFramebuffersEXT(n, framebuffers);

		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(framebuffers[i])));

		free(framebuffers);
	} 
#line 2897 "pogl_gl_Vert_Multi.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glCheckFramebufferStatusEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCheckFramebufferStatusEXT)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "target");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	RETVAL;
	dXSTARG;
#line 1555 "pogl_gl_Vert_Multi.xs"
		loadProc(glCheckFramebufferStatusEXT,"glCheckFramebufferStatusEXT");
#line 2917 "pogl_gl_Vert_Multi.c"
#line 1557 "pogl_gl_Vert_Multi.xs"
	{
		RETVAL = glCheckFramebufferStatusEXT(target);
	}
#line 2922 "pogl_gl_Vert_Multi.c"
	XSprePUSH; PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glFramebufferTexture1DEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFramebufferTexture1DEXT)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, attachment, textarget, texture, level");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	textarget = (int)SvIV(ST(2))
;
	GLuint	texture = (unsigned int)SvUV(ST(3))
;
	GLint	level = (int)SvIV(ST(4))
;
#line 1572 "pogl_gl_Vert_Multi.xs"
		loadProc(glFramebufferTexture1DEXT,"glFramebufferTexture1DEXT");
#line 2948 "pogl_gl_Vert_Multi.c"
#line 1574 "pogl_gl_Vert_Multi.xs"
	{
		glFramebufferTexture1DEXT(target,attachment,textarget,texture,level);
	}
#line 2953 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFramebufferTexture2DEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFramebufferTexture2DEXT)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, attachment, textarget, texture, level");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	textarget = (int)SvIV(ST(2))
;
	GLuint	texture = (unsigned int)SvUV(ST(3))
;
	GLint	level = (int)SvIV(ST(4))
;
#line 1587 "pogl_gl_Vert_Multi.xs"
		loadProc(glFramebufferTexture2DEXT,"glFramebufferTexture2DEXT");
#line 2978 "pogl_gl_Vert_Multi.c"
#line 1589 "pogl_gl_Vert_Multi.xs"
	{
		glFramebufferTexture2DEXT(target,attachment,textarget,texture,level);
	}
#line 2983 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFramebufferTexture3DEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFramebufferTexture3DEXT)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "target, attachment, textarget, texture, level, zoffset");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	textarget = (int)SvIV(ST(2))
;
	GLuint	texture = (unsigned int)SvUV(ST(3))
;
	GLint	level = (int)SvIV(ST(4))
;
	GLint	zoffset = (int)SvIV(ST(5))
;
#line 1603 "pogl_gl_Vert_Multi.xs"
		loadProc(glFramebufferTexture3DEXT,"glFramebufferTexture3DEXT");
#line 3010 "pogl_gl_Vert_Multi.c"
#line 1605 "pogl_gl_Vert_Multi.xs"
	{
		glFramebufferTexture3DEXT(target,attachment,textarget,texture,level,zoffset);
	}
#line 3015 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFramebufferRenderbufferEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFramebufferRenderbufferEXT)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, attachment, renderbuffertarget, renderbuffer");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	renderbuffertarget = (int)SvIV(ST(2))
;
	GLuint	renderbuffer = (unsigned int)SvUV(ST(3))
;
#line 1617 "pogl_gl_Vert_Multi.xs"
		loadProc(glFramebufferRenderbufferEXT,"glFramebufferRenderbufferEXT");
#line 3038 "pogl_gl_Vert_Multi.c"
#line 1619 "pogl_gl_Vert_Multi.xs"
	{
		glFramebufferRenderbufferEXT(target,attachment,renderbuffertarget,renderbuffer);
	}
#line 3043 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetFramebufferAttachmentParameterivEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetFramebufferAttachmentParameterivEXT_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, attachment, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
	SV *	params = ST(3)
;
#line 1631 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetFramebufferAttachmentParameterivEXT,"glGetFramebufferAttachmentParameterivEXT");
#line 3066 "pogl_gl_Vert_Multi.c"
#line 1633 "pogl_gl_Vert_Multi.xs"
	{
		GLint * params_s = EL(params, sizeof(GLint));
		glGetFramebufferAttachmentParameterivEXT(target,attachment,pname,params_s);
        }
#line 3072 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetFramebufferAttachmentParameterivEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetFramebufferAttachmentParameterivEXT_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, attachment, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	attachment = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
	void *	params = INT2PTR(void *,SvIV(ST(3)))
;
#line 1646 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetFramebufferAttachmentParameterivEXT,"glGetFramebufferAttachmentParameterivEXT");
#line 3095 "pogl_gl_Vert_Multi.c"
#line 1648 "pogl_gl_Vert_Multi.xs"
	{
		glGetFramebufferAttachmentParameterivEXT(target,attachment,pname,params);
        }
#line 3100 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenerateMipmapEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenerateMipmapEXT)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "target");
    {
	GLenum	target = (int)SvIV(ST(0))
;
#line 1657 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenerateMipmapEXT,"glGenerateMipmapEXT");
#line 3117 "pogl_gl_Vert_Multi.c"
#line 1659 "pogl_gl_Vert_Multi.xs"
	{
		glGenerateMipmapEXT(target);
        }
#line 3122 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_EXT_framebuffer_object
#ifdef GL_VERSION_1_4
#define XSubPPtmpAAAI 1


XS_EUPXS(XS_OpenGL_glBindBuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBindBuffer)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, buffer");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLuint	buffer = (unsigned int)SvUV(ST(1))
;
#line 1674 "pogl_gl_Vert_Multi.xs"
	{
		glBindBuffer(target,buffer);
	}
#line 3147 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteBuffers_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteBuffers_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	buffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1684 "pogl_gl_Vert_Multi.xs"
	{
		glDeleteBuffers(n,buffers);
	}
#line 3168 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteBuffers_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteBuffers_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	buffers = ST(1)
;
#line 1694 "pogl_gl_Vert_Multi.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glDeleteBuffers(n,buffers_s);
	}
#line 3190 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteBuffers_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteBuffers_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    {
#line 1703 "pogl_gl_Vert_Multi.xs"
	{
		if (items) {
			GLuint * list = malloc(sizeof(GLuint) * items);
			int i;

			for (i=0;i<items;i++)
				list[i] = SvIV(ST(i));

			glDeleteBuffers(items, list);
			free(list);
		}
	}
#line 3215 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenBuffers_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenBuffers_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	buffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 1722 "pogl_gl_Vert_Multi.xs"
	{
		glGenBuffers(n, buffers);
	}
#line 3236 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenBuffers_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenBuffers_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	buffers = ST(1)
;
#line 1732 "pogl_gl_Vert_Multi.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glGenBuffers(n, buffers_s);
	}
#line 3258 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenBuffers_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenBuffers_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "n");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLsizei	n = (int)SvIV(ST(0))
;
#line 1742 "pogl_gl_Vert_Multi.xs"
	if (n)
	{
		GLuint * buffers = malloc(sizeof(GLuint) * n);
		int i;

		glGenBuffers(n, buffers);

		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(buffers[i])));

		free(buffers);
	}
#line 3289 "pogl_gl_Vert_Multi.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glIsBuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsBuffer)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "buffer");
    {
	GLuint	buffer = (unsigned int)SvUV(ST(0))
;
	GLboolean	RETVAL;
#line 1761 "pogl_gl_Vert_Multi.xs"
	{
		RETVAL = glIsBuffer(buffer);
	}
#line 3310 "pogl_gl_Vert_Multi.c"
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glBufferData_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferData_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, size, data, usage");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLsizei	size = (int)SvIV(ST(1))
;
	void *	data = INT2PTR(void *,SvIV(ST(2)))
;
	GLenum	usage = (int)SvIV(ST(3))
;
#line 1775 "pogl_gl_Vert_Multi.xs"
	{
		glBufferData(target,size,data,usage);
	}
#line 3336 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferData_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferData_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, size, data, usage");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLsizei	size = (int)SvIV(ST(1))
;
	SV *	data = ST(2)
;
	GLenum	usage = (int)SvIV(ST(3))
;
#line 1787 "pogl_gl_Vert_Multi.xs"
	{
		void * data_s = EL(data, size);
		glBufferData(target,size,data_s,usage);
	}
#line 3362 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferData_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferData_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, oga, usage");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	OpenGL__Array	oga;
	GLenum	usage = (int)SvIV(ST(2))
;

	if (SvROK(ST(1)) && sv_derived_from(ST(1), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(1)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glBufferData_p",
			"oga", "OpenGL::Array")
;
#line 1799 "pogl_gl_Vert_Multi.xs"
	{
		glBufferData(target,oga->data_length,oga->data,usage);
	}
#line 3394 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferSubData_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferSubData_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, offset, size, data");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	size = (int)SvIV(ST(2))
;
	void *	data = INT2PTR(void *,SvIV(ST(3)))
;
#line 1811 "pogl_gl_Vert_Multi.xs"
	{
		glBufferSubData(target,offset,size,data);
	}
#line 3419 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferSubData_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferSubData_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, offset, size, data");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	size = (int)SvIV(ST(2))
;
	SV *	data = ST(3)
;
#line 1823 "pogl_gl_Vert_Multi.xs"
	{
		void * data_s = EL(data, size);
		glBufferSubData(target,offset,size,data);
	}
#line 3445 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferSubData_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferSubData_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, offset, oga");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	OpenGL__Array	oga;

	if (SvROK(ST(2)) && sv_derived_from(ST(2), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(2)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glBufferSubData_p",
			"oga", "OpenGL::Array")
;
#line 1835 "pogl_gl_Vert_Multi.xs"
	{
		glBufferSubData(target,offset*oga->total_types_width,oga->data_length,oga->data);
	}
#line 3477 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferSubData_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferSubData_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, offset, size, data");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	size = (int)SvIV(ST(2))
;
	void *	data = INT2PTR(void *,SvIV(ST(3)))
;
#line 1847 "pogl_gl_Vert_Multi.xs"
		glGetBufferSubData(target,offset,size,data);
#line 3500 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferSubData_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferSubData_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, offset, size, data");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	size = (int)SvIV(ST(2))
;
	SV *	data = ST(3)
;
#line 1857 "pogl_gl_Vert_Multi.xs"
	{
		GLubyte * data_s = EL(data,size);
		glGetBufferSubData(target,offset,size,data_s);
	}
#line 3526 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferSubData_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferSubData_p)
{
    dVAR; dXSARGS;
    if (items < 3)
       croak_xs_usage(cv,  "target, offset, count, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	count = (int)SvIV(ST(2))
;
	OpenGL__Array	RETVAL;
#line 1870 "pogl_gl_Vert_Multi.xs"
	{
		oga_struct * oga = malloc(sizeof(oga_struct));
		GLint size;

		oga->item_count = count;
		oga->type_count = (items - 3);

				if (oga->type_count)
		{
			int i,j;

			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);
			for(i=0,j=0;i<oga->type_count;i++) {
				oga->types[i] = SvIV(ST(i+3));
				oga->type_offset[i] = j;
				j += gl_type_size(oga->types[i]);
			}
			oga->total_types_width = j;
		}
		else
		{
			oga->type_count = 1;
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);

			oga->types[0] = GL_UNSIGNED_BYTE;
			oga->type_offset[0] = 0;
			oga->total_types_width = gl_type_size(oga->types[0]);
		}
		if (!oga->total_types_width) croak("Unable to determine type sizes\n");

		glGetBufferParameteriv(target,GL_BUFFER_SIZE,&size);
		size /= oga->total_types_width;
		if (offset > size) croak("Offset is greater than elements in buffer: %d\n",size);

		if ((offset+count) > size) count = size - offset;

		oga->data_length = oga->total_types_width * count;
		oga->data = malloc(oga->data_length);

		glGetBufferSubData(target,offset*oga->total_types_width,
			oga->data_length,oga->data);

		oga->free_data = 1;

		RETVAL = oga;
	}
#line 3595 "pogl_gl_Vert_Multi.c"
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
	    sv_setref_pv(RETVALSV, "OpenGL::Array", (void*)RETVAL);
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glMapBuffer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMapBuffer_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, access");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	access = (int)SvIV(ST(1))
;
	void *	RETVAL;
	dXSTARG;
#line 1927 "pogl_gl_Vert_Multi.xs"
		RETVAL = glMapBuffer(target,access);
#line 3622 "pogl_gl_Vert_Multi.c"
	XSprePUSH; PUSHi(PTR2IV(RETVAL));
    }
    XSRETURN(1);
}

#define FIXME /* !!! Need to refactor with glGetBufferPointerv_p */

XS_EUPXS(XS_OpenGL_glMapBuffer_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMapBuffer_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "target, access, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	access = (int)SvIV(ST(1))
;
	OpenGL__Array	RETVAL;
#line 1940 "pogl_gl_Vert_Multi.xs"
	{
		GLsizeiptr size;
		oga_struct * oga;
		int i,j;

		void * buffer =	glMapBuffer(target,access);
		if (!buffer) croak("Unable to map buffer\n");

		glGetBufferParameteriv(target,GL_BUFFER_SIZE,(GLint*)&size);
		if (!size) croak("Buffer has no size\n");

		oga = malloc(sizeof(oga_struct));

		oga->type_count = (items - 2);

				if (oga->type_count)
		{
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);
			for(i=0,j=0;i<oga->type_count;i++) {
				oga->types[i] = SvIV(ST(i+2));
				oga->type_offset[i] = j;
				j += gl_type_size(oga->types[i]);
			}
			oga->total_types_width = j;
		}
		else
		{
			oga->type_count = 1;
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);

			oga->types[0] = GL_UNSIGNED_BYTE;
			oga->type_offset[0] = 0;
			oga->total_types_width = gl_type_size(oga->types[0]);
		}

		if (!oga->total_types_width) croak("Unable to determine type sizes\n");
		oga->item_count = size / oga->total_types_width;

		oga->data_length = oga->total_types_width * oga->item_count;

		oga->data = buffer;

		oga->free_data = 0;

		RETVAL = oga;
	}
#line 3691 "pogl_gl_Vert_Multi.c"
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
	    sv_setref_pv(RETVALSV, "OpenGL::Array", (void*)RETVAL);
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glUnmapBuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glUnmapBuffer)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "target");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLboolean	RETVAL;
#line 1996 "pogl_gl_Vert_Multi.xs"
		RETVAL = glUnmapBuffer(target);
#line 3715 "pogl_gl_Vert_Multi.c"
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glGetBufferParameteriv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferParameteriv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 2007 "pogl_gl_Vert_Multi.xs"
		glGetBufferParameteriv(target,pname,params);
#line 3737 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferParameteriv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferParameteriv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 2016 "pogl_gl_Vert_Multi.xs"
	{
		GLint * params_s = EL(params, sizeof(GLint)*1);
		glGetBufferParameteriv(target,pname,params_s);
	}
#line 3761 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferParameteriv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferParameteriv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 2027 "pogl_gl_Vert_Multi.xs"
	{
		GLint	ret;
		glGetBufferParameteriv(target,pname,&ret);
		PUSHs(sv_2mortal(newSViv(ret)));
	}
#line 3786 "pogl_gl_Vert_Multi.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetBufferPointerv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferPointerv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 2040 "pogl_gl_Vert_Multi.xs"
		glGetBufferPointerv(target,pname,&params);
#line 3808 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferPointerv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferPointerv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 2049 "pogl_gl_Vert_Multi.xs"
	{
		void ** params_s = EL(params, sizeof(void*));
		glGetBufferPointerv(target,pname,params_s);
	}
#line 3832 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferPointerv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferPointerv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "target, pname, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	OpenGL__Array	RETVAL;
#line 2061 "pogl_gl_Vert_Multi.xs"
	{
		GLsizeiptr size;
		oga_struct * oga;
		void * buffer;
		int i,j;

		glGetBufferPointerv(target,pname,&buffer);
		if (!buffer) croak("Buffer is not mapped\n");

		glGetBufferParameteriv(target,GL_BUFFER_SIZE,(GLint*)&size);
		if (!size) croak("Buffer has no size\n");

		oga = malloc(sizeof(oga_struct));

		oga->type_count = (items - 2);

				if (oga->type_count)
		{
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);
			for(i=0,j=0;i<oga->type_count;i++) {
				oga->types[i] = SvIV(ST(i+2));
				oga->type_offset[i] = j;
				j += gl_type_size(oga->types[i]);
			}
			oga->total_types_width = j;
		}
		else
		{
			oga->type_count = 1;
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);

			oga->types[0] = GL_UNSIGNED_BYTE;
			oga->type_offset[0] = 0;
			oga->total_types_width = gl_type_size(oga->types[0]);
		}

		if (!oga->total_types_width) croak("Unable to determine type sizes\n");
		oga->item_count = size / oga->total_types_width;

		oga->data_length = oga->total_types_width * oga->item_count;

		oga->data = buffer;

		oga->free_data = 0;

		RETVAL = oga;
	}
#line 3900 "pogl_gl_Vert_Multi.c"
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
	    sv_setref_pv(RETVALSV, "OpenGL::Array", (void*)RETVAL);
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif // GL_VERSION_1_4
#ifdef GL_ARB_vertex_buffer_object
#define XSubPPtmpAAAJ 1


XS_EUPXS(XS_OpenGL_glBindBufferARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBindBufferARB)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, buffer");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLuint	buffer = (unsigned int)SvUV(ST(1))
;
#line 2124 "pogl_gl_Vert_Multi.xs"
		loadProc(glBindBufferARB,"glBindBufferARB");
#line 3929 "pogl_gl_Vert_Multi.c"
#line 2126 "pogl_gl_Vert_Multi.xs"
	{
		glBindBufferARB(target,buffer);
	}
#line 3934 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteBuffersARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteBuffersARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	buffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 2136 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteBuffersARB,"glDeleteBuffersARB");
#line 3953 "pogl_gl_Vert_Multi.c"
#line 2138 "pogl_gl_Vert_Multi.xs"
	{
		glDeleteBuffersARB(n,buffers);
	}
#line 3958 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteBuffersARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteBuffersARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	buffers = ST(1)
;
#line 2148 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteBuffersARB,"glDeleteBuffersARB");
#line 3977 "pogl_gl_Vert_Multi.c"
#line 2150 "pogl_gl_Vert_Multi.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glDeleteBuffersARB(n,buffers_s);
	}
#line 3983 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteBuffersARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteBuffersARB_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    {
#line 2159 "pogl_gl_Vert_Multi.xs"
		loadProc(glDeleteBuffersARB,"glDeleteBuffersARB");
#line 3997 "pogl_gl_Vert_Multi.c"
#line 2161 "pogl_gl_Vert_Multi.xs"
	{
		if (items) {
			GLuint * list = malloc(sizeof(GLuint) * items);
			int i;

			for (i=0;i<items;i++)
				list[i] = SvIV(ST(i));

			glDeleteBuffersARB(items, list);
			free(list);
		}
	}
#line 4011 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenBuffersARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenBuffersARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	buffers = INT2PTR(void *,SvIV(ST(1)))
;
#line 2180 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenBuffersARB,"glGenBuffersARB");
#line 4030 "pogl_gl_Vert_Multi.c"
#line 2182 "pogl_gl_Vert_Multi.xs"
	{
		glGenBuffersARB(n, buffers);
	}
#line 4035 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenBuffersARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenBuffersARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, buffers");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	buffers = ST(1)
;
#line 2192 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenBuffersARB,"glGenBuffersARB");
#line 4054 "pogl_gl_Vert_Multi.c"
#line 2194 "pogl_gl_Vert_Multi.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glGenBuffersARB(n, buffers_s);
	}
#line 4060 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenBuffersARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenBuffersARB_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "n");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLsizei	n = (int)SvIV(ST(0))
;
#line 2204 "pogl_gl_Vert_Multi.xs"
		loadProc(glGenBuffersARB,"glGenBuffersARB");
#line 4079 "pogl_gl_Vert_Multi.c"
#line 2206 "pogl_gl_Vert_Multi.xs"
	if (n)
	{
		GLuint * buffers = malloc(sizeof(GLuint) * n);
		int i;

		glGenBuffersARB(n, buffers);

		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(buffers[i])));

		free(buffers);
	} 
#line 4094 "pogl_gl_Vert_Multi.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glIsBufferARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsBufferARB)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "buffer");
    {
	GLuint	buffer = (unsigned int)SvUV(ST(0))
;
	GLboolean	RETVAL;
#line 2225 "pogl_gl_Vert_Multi.xs"
		loadProc(glIsBufferARB,"glIsBufferARB");
#line 4113 "pogl_gl_Vert_Multi.c"
#line 2227 "pogl_gl_Vert_Multi.xs"
	{
		RETVAL = glIsBufferARB(buffer);
        }
#line 4118 "pogl_gl_Vert_Multi.c"
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glBufferDataARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferDataARB_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, size, data, usage");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLsizei	size = (int)SvIV(ST(1))
;
	void *	data = INT2PTR(void *,SvIV(ST(2)))
;
	GLenum	usage = (int)SvIV(ST(3))
;
#line 2241 "pogl_gl_Vert_Multi.xs"
		loadProc(glBufferDataARB,"glBufferDataARB");
#line 4142 "pogl_gl_Vert_Multi.c"
#line 2243 "pogl_gl_Vert_Multi.xs"
	{
		glBufferDataARB(target,size,data,usage);
	}
#line 4147 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferDataARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferDataARB_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, size, data, usage");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLsizei	size = (int)SvIV(ST(1))
;
	SV *	data = ST(2)
;
	GLenum	usage = (int)SvIV(ST(3))
;
#line 2255 "pogl_gl_Vert_Multi.xs"
		loadProc(glBufferDataARB,"glBufferDataARB");
#line 4170 "pogl_gl_Vert_Multi.c"
#line 2257 "pogl_gl_Vert_Multi.xs"
	{
		void * data_s = EL(data, size);
		glBufferDataARB(target,size,data_s,usage);
	}
#line 4176 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferDataARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferDataARB_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, oga, usage");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	OpenGL__Array	oga;
	GLenum	usage = (int)SvIV(ST(2))
;

	if (SvROK(ST(1)) && sv_derived_from(ST(1), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(1)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glBufferDataARB_p",
			"oga", "OpenGL::Array")
;
#line 2269 "pogl_gl_Vert_Multi.xs"
		loadProc(glBufferDataARB,"glBufferDataARB");
#line 4206 "pogl_gl_Vert_Multi.c"
#line 2271 "pogl_gl_Vert_Multi.xs"
	{
		glBufferDataARB(target,oga->data_length,oga->data,usage);
	}
#line 4211 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferSubDataARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferSubDataARB_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, offset, size, data");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	size = (int)SvIV(ST(2))
;
	void *	data = INT2PTR(void *,SvIV(ST(3)))
;
#line 2283 "pogl_gl_Vert_Multi.xs"
		loadProc(glBufferSubDataARB,"glBufferSubDataARB");
#line 4234 "pogl_gl_Vert_Multi.c"
#line 2285 "pogl_gl_Vert_Multi.xs"
	{
		glBufferSubDataARB(target,offset,size,data);
	}
#line 4239 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferSubDataARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferSubDataARB_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, offset, size, data");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	size = (int)SvIV(ST(2))
;
	SV *	data = ST(3)
;
#line 2297 "pogl_gl_Vert_Multi.xs"
		loadProc(glBufferSubDataARB,"glBufferSubDataARB");
#line 4262 "pogl_gl_Vert_Multi.c"
#line 2299 "pogl_gl_Vert_Multi.xs"
	{
		void * data_s = EL(data, size);
		glBufferSubDataARB(target,offset,size,data);
	}
#line 4268 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBufferSubDataARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBufferSubDataARB_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, offset, oga");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	OpenGL__Array	oga;

	if (SvROK(ST(2)) && sv_derived_from(ST(2), "OpenGL::Array")) {
	    IV tmp = SvIV((SV*)SvRV(ST(2)));
	    oga = INT2PTR(OpenGL__Array,tmp);
	}
	else
	    Perl_croak_nocontext("%s: %s is not of type %s",
			"OpenGL::glBufferSubDataARB_p",
			"oga", "OpenGL::Array")
;
#line 2311 "pogl_gl_Vert_Multi.xs"
		loadProc(glBufferSubDataARB,"glBufferSubDataARB");
#line 4298 "pogl_gl_Vert_Multi.c"
#line 2313 "pogl_gl_Vert_Multi.xs"
	{
		glBufferSubDataARB(target,offset*oga->total_types_width,oga->data_length,oga->data);
	}
#line 4303 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferSubDataARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferSubDataARB_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, offset, size, data");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	size = (int)SvIV(ST(2))
;
	void *	data = INT2PTR(void *,SvIV(ST(3)))
;
#line 2325 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferSubDataARB,"glBufferSubDataARB");
#line 4326 "pogl_gl_Vert_Multi.c"
#line 2327 "pogl_gl_Vert_Multi.xs"
		glGetBufferSubDataARB(target,offset,size,data);
#line 4329 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferSubDataARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferSubDataARB_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, offset, size, data");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	size = (int)SvIV(ST(2))
;
	SV *	data = ST(3)
;
#line 2337 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferSubDataARB,"glBufferSubDataARB");
#line 4352 "pogl_gl_Vert_Multi.c"
#line 2339 "pogl_gl_Vert_Multi.xs"
	{
		GLubyte * data_s = EL(data,size);
		glGetBufferSubDataARB(target,offset,size,data_s);
	}
#line 4358 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferSubDataARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferSubDataARB_p)
{
    dVAR; dXSARGS;
    if (items < 3)
       croak_xs_usage(cv,  "target, offset, count, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	offset = (int)SvIV(ST(1))
;
	GLsizei	count = (int)SvIV(ST(2))
;
	OpenGL__Array	RETVAL;
#line 2352 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferSubDataARB,"glGetBufferSubDataARB");
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 4381 "pogl_gl_Vert_Multi.c"
#line 2355 "pogl_gl_Vert_Multi.xs"
	{
		oga_struct * oga = malloc(sizeof(oga_struct));
		GLint size;

		oga->item_count = count;
		oga->type_count = (items - 3);

                if (oga->type_count)
		{
			int i,j;

			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);
			for(i=0,j=0;i<oga->type_count;i++) {
				oga->types[i] = SvIV(ST(i+3));
				oga->type_offset[i] = j;
				j += gl_type_size(oga->types[i]);
			}
			oga->total_types_width = j;
		}
		else
		{
			oga->type_count = 1;
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);

			oga->types[0] = GL_UNSIGNED_BYTE;
			oga->type_offset[0] = 0;
			oga->total_types_width = gl_type_size(oga->types[0]);
		}
		if (!oga->total_types_width) croak("Unable to determine type sizes\n");

		glGetBufferParameterivARB(target,GL_BUFFER_SIZE_ARB,&size);
		size /= oga->total_types_width;
		if (offset > size) croak("Offset is greater than elements in buffer: %d\n",size);

		if ((offset+count) > size) count = size - offset;

		oga->data_length = oga->total_types_width * count;
		oga->data = malloc(oga->data_length);

		glGetBufferSubDataARB(target,offset*oga->total_types_width,
			oga->data_length,oga->data);

		oga->free_data = 1;

		RETVAL = oga;
	}
#line 4431 "pogl_gl_Vert_Multi.c"
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
	    sv_setref_pv(RETVALSV, "OpenGL::Array", (void*)RETVAL);
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glMapBufferARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMapBufferARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, access");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	access = (int)SvIV(ST(1))
;
	void *	RETVAL;
	dXSTARG;
#line 2412 "pogl_gl_Vert_Multi.xs"
		loadProc(glMapBufferARB,"glMapBufferARB");
#line 4458 "pogl_gl_Vert_Multi.c"
#line 2414 "pogl_gl_Vert_Multi.xs"
		RETVAL = glMapBufferARB(target,access);
#line 4461 "pogl_gl_Vert_Multi.c"
	XSprePUSH; PUSHi(PTR2IV(RETVAL));
    }
    XSRETURN(1);
}

#define FIXME /* !!! Need to refactor with glGetBufferPointervARB_p */

XS_EUPXS(XS_OpenGL_glMapBufferARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMapBufferARB_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "target, access, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	access = (int)SvIV(ST(1))
;
	OpenGL__Array	RETVAL;
#line 2427 "pogl_gl_Vert_Multi.xs"
		loadProc(glMapBufferARB,"glMapBufferARB");
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 4484 "pogl_gl_Vert_Multi.c"
#line 2430 "pogl_gl_Vert_Multi.xs"
	{
		GLsizeiptrARB size;
		oga_struct * oga;
		int i,j;

		void * buffer =	glMapBufferARB(target,access);
		if (!buffer) croak("Unable to map buffer\n");

		glGetBufferParameterivARB(target,GL_BUFFER_SIZE_ARB,(GLint*)&size);
		if (!size) croak("Buffer has no size\n");

		oga = malloc(sizeof(oga_struct));

		oga->type_count = (items - 2);

                if (oga->type_count)
		{
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);
			for(i=0,j=0;i<oga->type_count;i++) {
				oga->types[i] = SvIV(ST(i+2));
				oga->type_offset[i] = j;
				j += gl_type_size(oga->types[i]);
			}
			oga->total_types_width = j;
		}
		else
		{
			oga->type_count = 1;
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);

			oga->types[0] = GL_UNSIGNED_BYTE;
			oga->type_offset[0] = 0;
			oga->total_types_width = gl_type_size(oga->types[0]);
		}

		if (!oga->total_types_width) croak("Unable to determine type sizes\n");
		oga->item_count = size / oga->total_types_width;

		oga->data_length = oga->total_types_width * oga->item_count;

		oga->data = buffer;

		oga->free_data = 0;

		RETVAL = oga;
	}
#line 4534 "pogl_gl_Vert_Multi.c"
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
	    sv_setref_pv(RETVALSV, "OpenGL::Array", (void*)RETVAL);
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glUnmapBufferARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glUnmapBufferARB)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "target");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLboolean	RETVAL;
#line 2486 "pogl_gl_Vert_Multi.xs"
		loadProc(glUnmapBufferARB,"glUnmapBufferARB");
#line 4558 "pogl_gl_Vert_Multi.c"
#line 2488 "pogl_gl_Vert_Multi.xs"
		RETVAL = glUnmapBufferARB(target);
#line 4561 "pogl_gl_Vert_Multi.c"
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glGetBufferParameterivARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferParameterivARB_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 2499 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 4583 "pogl_gl_Vert_Multi.c"
#line 2501 "pogl_gl_Vert_Multi.xs"
		glGetBufferParameterivARB(target,pname,params);
#line 4586 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferParameterivARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferParameterivARB_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 2510 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 4607 "pogl_gl_Vert_Multi.c"
#line 2512 "pogl_gl_Vert_Multi.xs"
	{
		GLint * params_s = EL(params, sizeof(GLint)*1);
		glGetBufferParameterivARB(target,pname,params_s);
	}
#line 4613 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferParameterivARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferParameterivARB_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 2523 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 4634 "pogl_gl_Vert_Multi.c"
#line 2525 "pogl_gl_Vert_Multi.xs"
	{
		GLint	ret;
		glGetBufferParameterivARB(target,pname,&ret);
		PUSHs(sv_2mortal(newSViv(ret)));
	}
#line 4641 "pogl_gl_Vert_Multi.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetBufferPointervARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferPointervARB_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 2538 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferPointervARB,"glGetBufferPointervARB");
#line 4663 "pogl_gl_Vert_Multi.c"
#line 2540 "pogl_gl_Vert_Multi.xs"
		glGetBufferPointervARB(target,pname,&params);
#line 4666 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferPointervARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferPointervARB_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 2549 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferPointervARB,"glGetBufferPointervARB");
#line 4687 "pogl_gl_Vert_Multi.c"
#line 2551 "pogl_gl_Vert_Multi.xs"
	{
		void ** params_s = EL(params, sizeof(void*));
		glGetBufferPointervARB(target,pname,params_s);
	}
#line 4693 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBufferPointervARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBufferPointervARB_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "target, pname, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	OpenGL__Array	RETVAL;
#line 2563 "pogl_gl_Vert_Multi.xs"
		loadProc(glGetBufferPointervARB,"glGetBufferPointervARB");
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 4714 "pogl_gl_Vert_Multi.c"
#line 2566 "pogl_gl_Vert_Multi.xs"
	{
		GLsizeiptrARB size;
		oga_struct * oga;
		void * buffer;
		int i,j;

		glGetBufferPointervARB(target,pname,&buffer);
		if (!buffer) croak("Buffer is not mapped\n");

		glGetBufferParameterivARB(target,GL_BUFFER_SIZE_ARB,(GLint*)&size);
		if (!size) croak("Buffer has no size\n");

		oga = malloc(sizeof(oga_struct));

		oga->type_count = (items - 2);

                if (oga->type_count)
		{
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);
			for(i=0,j=0;i<oga->type_count;i++) {
				oga->types[i] = SvIV(ST(i+2));
				oga->type_offset[i] = j;
				j += gl_type_size(oga->types[i]);
			}
			oga->total_types_width = j;
		}
		else
		{
			oga->type_count = 1;
			oga->types = malloc(sizeof(GLenum) * oga->type_count);
			oga->type_offset = malloc(sizeof(GLint) * oga->type_count);

			oga->types[0] = GL_UNSIGNED_BYTE;
			oga->type_offset[0] = 0;
			oga->total_types_width = gl_type_size(oga->types[0]);
		}

		if (!oga->total_types_width) croak("Unable to determine type sizes\n");
		oga->item_count = size / oga->total_types_width;

		oga->data_length = oga->total_types_width * oga->item_count;

		oga->data = buffer;

		oga->free_data = 0;

		RETVAL = oga;
	}
#line 4765 "pogl_gl_Vert_Multi.c"
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
	    sv_setref_pv(RETVALSV, "OpenGL::Array", (void*)RETVAL);
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif // GL_ARB_vertex_buffer_object
#if defined(GL_VERSION_1_2_1) || defined(GL_VERSION_1_3)
#define XSubPPtmpAAAK 1


XS_EUPXS(XS_OpenGL_glActiveTexture); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glActiveTexture)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "texture");
    {
	GLenum	texture = (int)SvIV(ST(0))
;
#line 2628 "pogl_gl_Vert_Multi.xs"
		glActiveTexture(texture);
#line 4792 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClientActiveTexture); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClientActiveTexture)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "texture");
    {
	GLenum	texture = (int)SvIV(ST(0))
;
#line 2635 "pogl_gl_Vert_Multi.xs"
		glClientActiveTexture(texture);
#line 4809 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1d)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
#line 2643 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1d(target,s);
#line 4828 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1dv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2651 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1dv(target,v);
#line 4847 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1dv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2659 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord1dv(target,v_s);
	}
#line 4869 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1dv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
#line 2671 "pogl_gl_Vert_Multi.xs"
	{
		glMultiTexCoord1dv(target,&s);
	}
#line 4890 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1f)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
#line 2681 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1f(target,s);
#line 4909 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1fv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2689 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1fv(target,v);
#line 4928 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1fv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2697 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord1fv(target,v_s);
	}
#line 4950 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1fv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
#line 2709 "pogl_gl_Vert_Multi.xs"
	{
		glMultiTexCoord1fv(target,&s);
	}
#line 4971 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1i)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
#line 2719 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1i(target,s);
#line 4990 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1iv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2727 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1iv(target,v);
#line 5009 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1iv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2735 "pogl_gl_Vert_Multi.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord1iv(target,v_s);
	}
#line 5031 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1iv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
#line 2747 "pogl_gl_Vert_Multi.xs"
	{
		glMultiTexCoord1iv(target,&s);
	}
#line 5052 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
#line 2757 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1s(target,s);
#line 5071 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1sv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2765 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1sv(target,v);
#line 5090 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1sv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2773 "pogl_gl_Vert_Multi.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord1sv(target,v_s);
	}
#line 5112 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1sv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
#line 2785 "pogl_gl_Vert_Multi.xs"
	{
		glMultiTexCoord1sv(target,&s);
	}
#line 5133 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2d)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
#line 2796 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2d(target,s,t);
#line 5154 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2dv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2804 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2dv(target,v);
#line 5173 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2dv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2812 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord2dv(target,v_s);
	}
#line 5195 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2dv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
#line 2825 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2dv(target,param);
	}
#line 5221 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2f)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
#line 2839 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2f(target,s,t);
#line 5242 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2fv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2847 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2fv(target,v);
#line 5261 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2fv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2855 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord2fv(target,v_s);
	}
#line 5283 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2fv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
#line 2868 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2fv(target,param);
	}
#line 5309 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2i)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
#line 2882 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2i(target,s,t);
#line 5330 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2iv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2890 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2iv(target,v);
#line 5349 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2iv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2898 "pogl_gl_Vert_Multi.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord2iv(target,v_s);
	}
#line 5371 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2iv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
#line 2911 "pogl_gl_Vert_Multi.xs"
	{
		GLint param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2iv(target,param);
	}
#line 5397 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
#line 2925 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2s(target,s,t);
#line 5418 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2sv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2933 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2sv(target,v);
#line 5437 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2sv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2941 "pogl_gl_Vert_Multi.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord2sv(target,v_s);
	}
#line 5459 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2sv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
#line 2954 "pogl_gl_Vert_Multi.xs"
	{
		GLshort param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2sv(target,param);
	}
#line 5485 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3d)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
	GLdouble	r = (double)SvNV(ST(3))
;
#line 2969 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3d(target,s,t,r);
#line 5508 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3dv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2977 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3dv(target,v);
#line 5527 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3dv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 2985 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord3dv(target,v_s);
	}
#line 5549 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3dv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
	GLdouble	r = (double)SvNV(ST(3))
;
#line 2999 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3dv(target,param);
	}
#line 5578 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3f)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
	GLfloat	r = (float)SvNV(ST(3))
;
#line 3015 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3f(target,s,t,r);
#line 5601 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3fv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3023 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3fv(target,v);
#line 5620 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3fv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3031 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord3fv(target,v_s);
	}
#line 5642 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3fv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
	GLfloat	r = (float)SvNV(ST(3))
;
#line 3045 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3fv(target,param);
	}
#line 5671 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3i)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
	GLint	r = (int)SvIV(ST(3))
;
#line 3061 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3i(target,s,t,r);
#line 5694 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3iv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3069 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3iv(target,v);
#line 5713 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3iv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3077 "pogl_gl_Vert_Multi.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord3iv(target,v_s);
	}
#line 5735 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3iv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
	GLint	r = (int)SvIV(ST(3))
;
#line 3091 "pogl_gl_Vert_Multi.xs"
	{
		GLint param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3iv(target,param);
	}
#line 5764 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
	GLshort	r = (short)SvIV(ST(3))
;
#line 3107 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3s(target,s,t,r);
#line 5787 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3sv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3115 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3sv(target,v);
#line 5806 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3sv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3123 "pogl_gl_Vert_Multi.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord3sv(target,v_s);
	}
#line 5828 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3sv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
	GLshort	r = (short)SvIV(ST(3))
;
#line 3137 "pogl_gl_Vert_Multi.xs"
	{
		GLshort param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3sv(target,param);
	}
#line 5857 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4d)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
	GLdouble	r = (double)SvNV(ST(3))
;
	GLdouble	q = (double)SvNV(ST(4))
;
#line 3154 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4d(target,s,t,r,q);
#line 5882 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4dv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3162 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4dv(target,v);
#line 5901 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4dv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3170 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord4dv(target,v_s);
	}
#line 5923 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4dv_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
	GLdouble	r = (double)SvNV(ST(3))
;
	GLdouble	q = (double)SvNV(ST(4))
;
#line 3185 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4dv(target,param);
	}
#line 5955 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4f)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
	GLfloat	r = (float)SvNV(ST(3))
;
	GLfloat	q = (float)SvNV(ST(4))
;
#line 3203 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4f(target,s,t,r,q);
#line 5980 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4fv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3211 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4fv(target,v);
#line 5999 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4fv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3219 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord4fv(target,v_s);
	}
#line 6021 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4fv_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
	GLfloat	r = (float)SvNV(ST(3))
;
	GLfloat	q = (float)SvNV(ST(4))
;
#line 3234 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4fv(target,param);
	}
#line 6053 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4i)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
	GLint	r = (int)SvIV(ST(3))
;
	GLint	q = (int)SvIV(ST(4))
;
#line 3252 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4i(target,s,t,r,q);
#line 6078 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4iv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3260 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4iv(target,v);
#line 6097 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4iv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3268 "pogl_gl_Vert_Multi.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord4iv(target,v_s);
	}
#line 6119 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4iv_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
	GLint	r = (int)SvIV(ST(3))
;
	GLint	q = (int)SvIV(ST(4))
;
#line 3283 "pogl_gl_Vert_Multi.xs"
	{
		GLint param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4iv(target,param);
	}
#line 6151 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
	GLshort	r = (short)SvIV(ST(3))
;
	GLshort	q = (short)SvIV(ST(4))
;
#line 3301 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4s(target,s,t,r,q);
#line 6176 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4sv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3309 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4sv(target,v);
#line 6195 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4sv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3317 "pogl_gl_Vert_Multi.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord4sv(target,v_s);
	}
#line 6217 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4sv_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
	GLshort	r = (short)SvIV(ST(3))
;
	GLshort	q = (short)SvIV(ST(4))
;
#line 3332 "pogl_gl_Vert_Multi.xs"
	{
		GLshort param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4sv(target,param);
	}
#line 6249 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}

#endif // defined(GL_VERSION_1_2_1) || defined(GL_VERSION_1_3)
#ifdef GL_ARB_multitexture
#define XSubPPtmpAAAL 1


XS_EUPXS(XS_OpenGL_glActiveTextureARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glActiveTextureARB)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "texture");
    {
	GLenum	texture = (int)SvIV(ST(0))
;
#line 3351 "pogl_gl_Vert_Multi.xs"
		loadProc(glActiveTextureARB,"glActiveTextureARB");
#line 6270 "pogl_gl_Vert_Multi.c"
#line 3353 "pogl_gl_Vert_Multi.xs"
		glActiveTextureARB(texture);
#line 6273 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClientActiveTextureARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClientActiveTextureARB)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "texture");
    {
	GLenum	texture = (int)SvIV(ST(0))
;
#line 3360 "pogl_gl_Vert_Multi.xs"
		loadProc(glClientActiveTextureARB,"glClientActiveTextureARB");
#line 6290 "pogl_gl_Vert_Multi.c"
#line 3362 "pogl_gl_Vert_Multi.xs"
		glClientActiveTextureARB(texture);
#line 6293 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1dARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1dARB)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
#line 3370 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1dARB,"glMultiTexCoord1dARB");
#line 6312 "pogl_gl_Vert_Multi.c"
#line 3372 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1dARB(target,s);
#line 6315 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1dvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1dvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3380 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1dvARB,"glMultiTexCoord1dvARB");
#line 6334 "pogl_gl_Vert_Multi.c"
#line 3382 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1dvARB(target,v);
#line 6337 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1dvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1dvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3390 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1dvARB,"glMultiTexCoord1dvARB");
#line 6356 "pogl_gl_Vert_Multi.c"
#line 3392 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord1dvARB(target,v_s);
	}
#line 6362 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1dvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1dvARB_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
#line 3404 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1dvARB,"glMultiTexCoord1dvARB");
#line 6381 "pogl_gl_Vert_Multi.c"
#line 3406 "pogl_gl_Vert_Multi.xs"
	{
		glMultiTexCoord1dvARB(target,&s);
	}
#line 6386 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1fARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1fARB)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
#line 3416 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1fARB,"glMultiTexCoord1fARB");
#line 6405 "pogl_gl_Vert_Multi.c"
#line 3418 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1fARB(target,s);
#line 6408 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1fvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1fvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3426 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1fvARB,"glMultiTexCoord1fvARB");
#line 6427 "pogl_gl_Vert_Multi.c"
#line 3428 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1fvARB(target,v);
#line 6430 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1fvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1fvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3436 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1fvARB,"glMultiTexCoord1fvARB");
#line 6449 "pogl_gl_Vert_Multi.c"
#line 3438 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord1fvARB(target,v_s);
	}
#line 6455 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1fvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1fvARB_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
#line 3450 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1fvARB,"glMultiTexCoord1fvARB");
#line 6474 "pogl_gl_Vert_Multi.c"
#line 3452 "pogl_gl_Vert_Multi.xs"
	{
		glMultiTexCoord1fvARB(target,&s);
	}
#line 6479 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1iARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1iARB)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
#line 3462 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1iARB,"glMultiTexCoord1iARB");
#line 6498 "pogl_gl_Vert_Multi.c"
#line 3464 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1iARB(target,s);
#line 6501 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1ivARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1ivARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3472 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1ivARB,"glMultiTexCoord1ivARB");
#line 6520 "pogl_gl_Vert_Multi.c"
#line 3474 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1ivARB(target,v);
#line 6523 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1ivARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1ivARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3482 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1ivARB,"glMultiTexCoord1ivARB");
#line 6542 "pogl_gl_Vert_Multi.c"
#line 3484 "pogl_gl_Vert_Multi.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord1ivARB(target,v_s);
	}
#line 6548 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1ivARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1ivARB_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
#line 3496 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1ivARB,"glMultiTexCoord1ivARB");
#line 6567 "pogl_gl_Vert_Multi.c"
#line 3498 "pogl_gl_Vert_Multi.xs"
	{
		glMultiTexCoord1ivARB(target,&s);
	}
#line 6572 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1sARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1sARB)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
#line 3508 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1sARB,"glMultiTexCoord1sARB");
#line 6591 "pogl_gl_Vert_Multi.c"
#line 3510 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1sARB(target,s);
#line 6594 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1svARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1svARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3518 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1svARB,"glMultiTexCoord1svARB");
#line 6613 "pogl_gl_Vert_Multi.c"
#line 3520 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord1svARB(target,v);
#line 6616 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1svARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1svARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3528 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1svARB,"glMultiTexCoord1svARB");
#line 6635 "pogl_gl_Vert_Multi.c"
#line 3530 "pogl_gl_Vert_Multi.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord1svARB(target,v_s);
	}
#line 6641 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord1svARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord1svARB_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, s");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
#line 3542 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord1svARB,"glMultiTexCoord1svARB");
#line 6660 "pogl_gl_Vert_Multi.c"
#line 3544 "pogl_gl_Vert_Multi.xs"
	{
		glMultiTexCoord1svARB(target,&s);
	}
#line 6665 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2dARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2dARB)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
#line 3555 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2dARB,"glMultiTexCoord2dARB");
#line 6686 "pogl_gl_Vert_Multi.c"
#line 3557 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2dARB(target,s,t);
#line 6689 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2dvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2dvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3565 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2dvARB,"glMultiTexCoord2dvARB");
#line 6708 "pogl_gl_Vert_Multi.c"
#line 3567 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2dvARB(target,v);
#line 6711 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2dvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2dvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3575 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2dvARB,"glMultiTexCoord2dvARB");
#line 6730 "pogl_gl_Vert_Multi.c"
#line 3577 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord2dvARB(target,v_s);
	}
#line 6736 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2dvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2dvARB_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
#line 3590 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2dvARB,"glMultiTexCoord2dvARB");
#line 6757 "pogl_gl_Vert_Multi.c"
#line 3592 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2dvARB(target,param);
	}
#line 6765 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2fARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2fARB)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
#line 3606 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2fARB,"glMultiTexCoord2fARB");
#line 6786 "pogl_gl_Vert_Multi.c"
#line 3608 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2fARB(target,s,t);
#line 6789 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2fvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2fvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3616 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2fvARB,"glMultiTexCoord2fvARB");
#line 6808 "pogl_gl_Vert_Multi.c"
#line 3618 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2fvARB(target,v);
#line 6811 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2fvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2fvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3626 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2fvARB,"glMultiTexCoord2fvARB");
#line 6830 "pogl_gl_Vert_Multi.c"
#line 3628 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord2fvARB(target,v_s);
	}
#line 6836 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2fvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2fvARB_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
#line 3641 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2fvARB,"glMultiTexCoord2fvARB");
#line 6857 "pogl_gl_Vert_Multi.c"
#line 3643 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2fvARB(target,param);
	}
#line 6865 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2iARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2iARB)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
#line 3657 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2iARB,"glMultiTexCoord2iARB");
#line 6886 "pogl_gl_Vert_Multi.c"
#line 3659 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2iARB(target,s,t);
#line 6889 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2ivARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2ivARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3667 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2ivARB,"glMultiTexCoord2ivARB");
#line 6908 "pogl_gl_Vert_Multi.c"
#line 3669 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2ivARB(target,v);
#line 6911 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2ivARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2ivARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3677 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2ivARB,"glMultiTexCoord2ivARB");
#line 6930 "pogl_gl_Vert_Multi.c"
#line 3679 "pogl_gl_Vert_Multi.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord2ivARB(target,v_s);
	}
#line 6936 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2ivARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2ivARB_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
#line 3692 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2ivARB,"glMultiTexCoord2ivARB");
#line 6957 "pogl_gl_Vert_Multi.c"
#line 3694 "pogl_gl_Vert_Multi.xs"
	{
		GLint param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2ivARB(target,param);
	}
#line 6965 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2sARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2sARB)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
#line 3708 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2sARB,"glMultiTexCoord2sARB");
#line 6986 "pogl_gl_Vert_Multi.c"
#line 3710 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2sARB(target,s,t);
#line 6989 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2svARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2svARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3718 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2svARB,"glMultiTexCoord2svARB");
#line 7008 "pogl_gl_Vert_Multi.c"
#line 3720 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord2svARB(target,v);
#line 7011 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2svARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2svARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3728 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2svARB,"glMultiTexCoord2svARB");
#line 7030 "pogl_gl_Vert_Multi.c"
#line 3730 "pogl_gl_Vert_Multi.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord2svARB(target,v_s);
	}
#line 7036 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord2svARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord2svARB_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, s, t");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
#line 3743 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord2svARB,"glMultiTexCoord2svARB");
#line 7057 "pogl_gl_Vert_Multi.c"
#line 3745 "pogl_gl_Vert_Multi.xs"
	{
		GLshort param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2svARB(target,param);
	}
#line 7065 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3dARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3dARB)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
	GLdouble	r = (double)SvNV(ST(3))
;
#line 3760 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3dARB,"glMultiTexCoord3dARB");
#line 7088 "pogl_gl_Vert_Multi.c"
#line 3762 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3dARB(target,s,t,r);
#line 7091 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3dvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3dvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3770 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3dvARB,"glMultiTexCoord3dvARB");
#line 7110 "pogl_gl_Vert_Multi.c"
#line 3772 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3dvARB(target,v);
#line 7113 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3dvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3dvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3780 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3dvARB,"glMultiTexCoord3dvARB");
#line 7132 "pogl_gl_Vert_Multi.c"
#line 3782 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord3dvARB(target,v_s);
	}
#line 7138 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3dvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3dvARB_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
	GLdouble	r = (double)SvNV(ST(3))
;
#line 3796 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3dvARB,"glMultiTexCoord3dvARB");
#line 7161 "pogl_gl_Vert_Multi.c"
#line 3798 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3dvARB(target,param);
	}
#line 7170 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3fARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3fARB)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
	GLfloat	r = (float)SvNV(ST(3))
;
#line 3814 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3fARB,"glMultiTexCoord3fARB");
#line 7193 "pogl_gl_Vert_Multi.c"
#line 3816 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3fARB(target,s,t,r);
#line 7196 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3fvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3fvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3824 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3fvARB,"glMultiTexCoord3fvARB");
#line 7215 "pogl_gl_Vert_Multi.c"
#line 3826 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3fvARB(target,v);
#line 7218 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3fvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3fvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3834 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3fvARB,"glMultiTexCoord3fvARB");
#line 7237 "pogl_gl_Vert_Multi.c"
#line 3836 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord3fvARB(target,v_s);
	}
#line 7243 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3fvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3fvARB_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
	GLfloat	r = (float)SvNV(ST(3))
;
#line 3850 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3fvARB,"glMultiTexCoord3fvARB");
#line 7266 "pogl_gl_Vert_Multi.c"
#line 3852 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3fvARB(target,param);
	}
#line 7275 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3iARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3iARB)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
	GLint	r = (int)SvIV(ST(3))
;
#line 3868 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3iARB,"glMultiTexCoord3iARB");
#line 7298 "pogl_gl_Vert_Multi.c"
#line 3870 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3iARB(target,s,t,r);
#line 7301 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3ivARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3ivARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3878 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3ivARB,"glMultiTexCoord3ivARB");
#line 7320 "pogl_gl_Vert_Multi.c"
#line 3880 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3ivARB(target,v);
#line 7323 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3ivARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3ivARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3888 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3ivARB,"glMultiTexCoord3ivARB");
#line 7342 "pogl_gl_Vert_Multi.c"
#line 3890 "pogl_gl_Vert_Multi.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord3ivARB(target,v_s);
	}
#line 7348 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3ivARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3ivARB_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
	GLint	r = (int)SvIV(ST(3))
;
#line 3904 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3ivARB,"glMultiTexCoord3ivARB");
#line 7371 "pogl_gl_Vert_Multi.c"
#line 3906 "pogl_gl_Vert_Multi.xs"
	{
		GLint param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3ivARB(target,param);
	}
#line 7380 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3sARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3sARB)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
	GLshort	r = (short)SvIV(ST(3))
;
#line 3922 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3sARB,"glMultiTexCoord3sARB");
#line 7403 "pogl_gl_Vert_Multi.c"
#line 3924 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3sARB(target,s,t,r);
#line 7406 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3svARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3svARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3932 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3svARB,"glMultiTexCoord3svARB");
#line 7425 "pogl_gl_Vert_Multi.c"
#line 3934 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord3svARB(target,v);
#line 7428 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3svARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3svARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3942 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3svARB,"glMultiTexCoord3svARB");
#line 7447 "pogl_gl_Vert_Multi.c"
#line 3944 "pogl_gl_Vert_Multi.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord3svARB(target,v_s);
	}
#line 7453 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord3svARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord3svARB_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, s, t, r");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
	GLshort	r = (short)SvIV(ST(3))
;
#line 3958 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord3svARB,"glMultiTexCoord3svARB");
#line 7476 "pogl_gl_Vert_Multi.c"
#line 3960 "pogl_gl_Vert_Multi.xs"
	{
		GLshort param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3svARB(target,param);
	}
#line 7485 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4dARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4dARB)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
	GLdouble	r = (double)SvNV(ST(3))
;
	GLdouble	q = (double)SvNV(ST(4))
;
#line 3977 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4dARB,"glMultiTexCoord4dARB");
#line 7510 "pogl_gl_Vert_Multi.c"
#line 3979 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4dARB(target,s,t,r,q);
#line 7513 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4dvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4dvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3987 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4dvARB,"glMultiTexCoord4dvARB");
#line 7532 "pogl_gl_Vert_Multi.c"
#line 3989 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4dvARB(target,v);
#line 7535 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4dvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4dvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 3997 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4dvARB,"glMultiTexCoord4dvARB");
#line 7554 "pogl_gl_Vert_Multi.c"
#line 3999 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord4dvARB(target,v_s);
	}
#line 7560 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4dvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4dvARB_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	s = (double)SvNV(ST(1))
;
	GLdouble	t = (double)SvNV(ST(2))
;
	GLdouble	r = (double)SvNV(ST(3))
;
	GLdouble	q = (double)SvNV(ST(4))
;
#line 4014 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4dvARB,"glMultiTexCoord4dvARB");
#line 7585 "pogl_gl_Vert_Multi.c"
#line 4016 "pogl_gl_Vert_Multi.xs"
	{
		GLdouble param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4dvARB(target,param);
	}
#line 7595 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4fARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4fARB)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
	GLfloat	r = (float)SvNV(ST(3))
;
	GLfloat	q = (float)SvNV(ST(4))
;
#line 4034 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4fARB,"glMultiTexCoord4fARB");
#line 7620 "pogl_gl_Vert_Multi.c"
#line 4036 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4fARB(target,s,t,r,q);
#line 7623 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4fvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4fvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 4044 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4fvARB,"glMultiTexCoord4fvARB");
#line 7642 "pogl_gl_Vert_Multi.c"
#line 4046 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4fvARB(target,v);
#line 7645 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4fvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4fvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 4054 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4fvARB,"glMultiTexCoord4fvARB");
#line 7664 "pogl_gl_Vert_Multi.c"
#line 4056 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord4fvARB(target,v_s);
	}
#line 7670 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4fvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4fvARB_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	s = (float)SvNV(ST(1))
;
	GLfloat	t = (float)SvNV(ST(2))
;
	GLfloat	r = (float)SvNV(ST(3))
;
	GLfloat	q = (float)SvNV(ST(4))
;
#line 4071 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4fvARB,"glMultiTexCoord4fvARB");
#line 7695 "pogl_gl_Vert_Multi.c"
#line 4073 "pogl_gl_Vert_Multi.xs"
	{
		GLfloat param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4fvARB(target,param);
	}
#line 7705 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4iARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4iARB)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
	GLint	r = (int)SvIV(ST(3))
;
	GLint	q = (int)SvIV(ST(4))
;
#line 4091 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4iARB,"glMultiTexCoord4iARB");
#line 7730 "pogl_gl_Vert_Multi.c"
#line 4093 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4iARB(target,s,t,r,q);
#line 7733 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4ivARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4ivARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 4101 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4ivARB,"glMultiTexCoord4ivARB");
#line 7752 "pogl_gl_Vert_Multi.c"
#line 4103 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4ivARB(target,v);
#line 7755 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4ivARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4ivARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 4111 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4ivARB,"glMultiTexCoord4ivARB");
#line 7774 "pogl_gl_Vert_Multi.c"
#line 4113 "pogl_gl_Vert_Multi.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord4ivARB(target,v_s);
	}
#line 7780 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4ivARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4ivARB_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	s = (int)SvIV(ST(1))
;
	GLint	t = (int)SvIV(ST(2))
;
	GLint	r = (int)SvIV(ST(3))
;
	GLint	q = (int)SvIV(ST(4))
;
#line 4128 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4ivARB,"glMultiTexCoord4ivARB");
#line 7805 "pogl_gl_Vert_Multi.c"
#line 4130 "pogl_gl_Vert_Multi.xs"
	{
		GLint param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4ivARB(target,param);
	}
#line 7815 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4sARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4sARB)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
	GLshort	r = (short)SvIV(ST(3))
;
	GLshort	q = (short)SvIV(ST(4))
;
#line 4148 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4sARB,"glMultiTexCoord4sARB");
#line 7840 "pogl_gl_Vert_Multi.c"
#line 4150 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4sARB(target,s,t,r,q);
#line 7843 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4svARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4svARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 4158 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4svARB,"glMultiTexCoord4svARB");
#line 7862 "pogl_gl_Vert_Multi.c"
#line 4160 "pogl_gl_Vert_Multi.xs"
		glMultiTexCoord4svARB(target,v);
#line 7865 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4svARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4svARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	void *	v = INT2PTR(void *,SvIV(ST(1)))
;
#line 4168 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4svARB,"glMultiTexCoord4svARB");
#line 7884 "pogl_gl_Vert_Multi.c"
#line 4170 "pogl_gl_Vert_Multi.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord4svARB(target,v_s);
	}
#line 7890 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultiTexCoord4svARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultiTexCoord4svARB_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, s, t, r, q");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLshort	s = (short)SvIV(ST(1))
;
	GLshort	t = (short)SvIV(ST(2))
;
	GLshort	r = (short)SvIV(ST(3))
;
	GLshort	q = (short)SvIV(ST(4))
;
#line 4185 "pogl_gl_Vert_Multi.xs"
		loadProc(glMultiTexCoord4svARB,"glMultiTexCoord4svARB");
#line 7915 "pogl_gl_Vert_Multi.c"
#line 4187 "pogl_gl_Vert_Multi.xs"
	{
		GLshort param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4svARB(target,param);
	}
#line 7925 "pogl_gl_Vert_Multi.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_ARB_multitexture
#endif // HAVE_GL
#ifdef __cplusplus
extern "C"
#endif
XS_EXTERNAL(boot_OpenGL__GL__VertMulti); /* prototype to pass -Wmissing-prototypes */
XS_EXTERNAL(boot_OpenGL__GL__VertMulti)
{
#if PERL_VERSION_LE(5, 21, 5)
    dVAR; dXSARGS;
#else
    dVAR; dXSBOOTARGSXSAPIVERCHK;
#endif
#if (PERL_REVISION == 5 && PERL_VERSION < 9)
    char* file = __FILE__;
#else
    const char* file = __FILE__;
#endif

    PERL_UNUSED_VAR(file);

    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
#if PERL_VERSION_LE(5, 21, 5)
    XS_VERSION_BOOTCHECK;
#  ifdef XS_APIVERSION_BOOTCHECK
    XS_APIVERSION_BOOTCHECK;
#  endif
#endif

#if XSubPPtmpAAAA
        newXS_deffile("OpenGL::glVertexPointerEXT_c", XS_OpenGL_glVertexPointerEXT_c);
        newXS_deffile("OpenGL::glVertexPointerEXT_s", XS_OpenGL_glVertexPointerEXT_s);
        newXS_deffile("OpenGL::glVertexPointerEXT_p", XS_OpenGL_glVertexPointerEXT_p);
        newXS_deffile("OpenGL::glVertexPointer_p", XS_OpenGL_glVertexPointer_p);
        newXS_deffile("OpenGL::glNormalPointerEXT_c", XS_OpenGL_glNormalPointerEXT_c);
        newXS_deffile("OpenGL::glNormalPointerEXT_s", XS_OpenGL_glNormalPointerEXT_s);
        newXS_deffile("OpenGL::glNormalPointerEXT_p", XS_OpenGL_glNormalPointerEXT_p);
        newXS_deffile("OpenGL::glNormalPointer_p", XS_OpenGL_glNormalPointer_p);
        newXS_deffile("OpenGL::glColorPointerEXT_c", XS_OpenGL_glColorPointerEXT_c);
        newXS_deffile("OpenGL::glColorPointerEXT_s", XS_OpenGL_glColorPointerEXT_s);
        newXS_deffile("OpenGL::glColorPointerEXT_p", XS_OpenGL_glColorPointerEXT_p);
        newXS_deffile("OpenGL::glColorPointer_p", XS_OpenGL_glColorPointer_p);
        newXS_deffile("OpenGL::glIndexPointerEXT_c", XS_OpenGL_glIndexPointerEXT_c);
        newXS_deffile("OpenGL::glIndexPointerEXT_s", XS_OpenGL_glIndexPointerEXT_s);
        newXS_deffile("OpenGL::glIndexPointerEXT_p", XS_OpenGL_glIndexPointerEXT_p);
        newXS_deffile("OpenGL::glIndexPointer_p", XS_OpenGL_glIndexPointer_p);
        newXS_deffile("OpenGL::glTexCoordPointerEXT_c", XS_OpenGL_glTexCoordPointerEXT_c);
        newXS_deffile("OpenGL::glTexCoordPointerEXT_s", XS_OpenGL_glTexCoordPointerEXT_s);
        newXS_deffile("OpenGL::glTexCoordPointerEXT_p", XS_OpenGL_glTexCoordPointerEXT_p);
        newXS_deffile("OpenGL::glTexCoordPointer_p", XS_OpenGL_glTexCoordPointer_p);
        newXS_deffile("OpenGL::glEdgeFlagPointerEXT_c", XS_OpenGL_glEdgeFlagPointerEXT_c);
        newXS_deffile("OpenGL::glEdgeFlagPointerEXT_s", XS_OpenGL_glEdgeFlagPointerEXT_s);
        newXS_deffile("OpenGL::glEdgeFlagPointerEXT_p", XS_OpenGL_glEdgeFlagPointerEXT_p);
        newXS_deffile("OpenGL::glEdgeFlagPointer_p", XS_OpenGL_glEdgeFlagPointer_p);
#endif
#if XSubPPtmpAAAB
        newXS_deffile("OpenGL::glVertexPointer_c", XS_OpenGL_glVertexPointer_c);
        newXS_deffile("OpenGL::glVertexPointer_s", XS_OpenGL_glVertexPointer_s);
        newXS_deffile("OpenGL::glNormalPointer_c", XS_OpenGL_glNormalPointer_c);
        newXS_deffile("OpenGL::glNormalPointer_s", XS_OpenGL_glNormalPointer_s);
        newXS_deffile("OpenGL::glColorPointer_c", XS_OpenGL_glColorPointer_c);
        newXS_deffile("OpenGL::glColorPointer_s", XS_OpenGL_glColorPointer_s);
        newXS_deffile("OpenGL::glIndexPointer_c", XS_OpenGL_glIndexPointer_c);
        newXS_deffile("OpenGL::glIndexPointer_s", XS_OpenGL_glIndexPointer_s);
        newXS_deffile("OpenGL::glTexCoordPointer_c", XS_OpenGL_glTexCoordPointer_c);
        newXS_deffile("OpenGL::glTexCoordPointer_s", XS_OpenGL_glTexCoordPointer_s);
        newXS_deffile("OpenGL::glEdgeFlagPointer_c", XS_OpenGL_glEdgeFlagPointer_c);
        newXS_deffile("OpenGL::glEdgeFlagPointer_s", XS_OpenGL_glEdgeFlagPointer_s);
#endif
#if XSubPPtmpAAAC
        newXS_deffile("OpenGL::glArrayElementEXT", XS_OpenGL_glArrayElementEXT);
        newXS_deffile("OpenGL::glDrawArraysEXT", XS_OpenGL_glDrawArraysEXT);
#endif
#if XSubPPtmpAAAD
        newXS_deffile("OpenGL::glResizeBuffersMESA", XS_OpenGL_glResizeBuffersMESA);
#endif
#if XSubPPtmpAAAE
        newXS_deffile("OpenGL::glDrawBuffers_c", XS_OpenGL_glDrawBuffers_c);
        newXS_deffile("OpenGL::glDrawBuffers_s", XS_OpenGL_glDrawBuffers_s);
        newXS_deffile("OpenGL::glDrawBuffers_p", XS_OpenGL_glDrawBuffers_p);
#endif
#if XSubPPtmpAAAF
        newXS_deffile("OpenGL::glDrawBuffersARB_c", XS_OpenGL_glDrawBuffersARB_c);
        newXS_deffile("OpenGL::glDrawBuffersARB_s", XS_OpenGL_glDrawBuffersARB_s);
        newXS_deffile("OpenGL::glDrawBuffersARB_p", XS_OpenGL_glDrawBuffersARB_p);
#endif
#if XSubPPtmpAAAG
        newXS_deffile("OpenGL::glIsRenderbuffer", XS_OpenGL_glIsRenderbuffer);
        newXS_deffile("OpenGL::glBindRenderbuffer", XS_OpenGL_glBindRenderbuffer);
        newXS_deffile("OpenGL::glDeleteRenderbuffers_c", XS_OpenGL_glDeleteRenderbuffers_c);
        newXS_deffile("OpenGL::glDeleteRenderbuffers_s", XS_OpenGL_glDeleteRenderbuffers_s);
        newXS_deffile("OpenGL::glDeleteRenderbuffers_p", XS_OpenGL_glDeleteRenderbuffers_p);
        newXS_deffile("OpenGL::glGenRenderbuffers_c", XS_OpenGL_glGenRenderbuffers_c);
        newXS_deffile("OpenGL::glGenRenderbuffers_s", XS_OpenGL_glGenRenderbuffers_s);
        newXS_deffile("OpenGL::glGenRenderbuffers_p", XS_OpenGL_glGenRenderbuffers_p);
        newXS_deffile("OpenGL::glRenderbufferStorage", XS_OpenGL_glRenderbufferStorage);
        newXS_deffile("OpenGL::glGetRenderbufferParameteriv_s", XS_OpenGL_glGetRenderbufferParameteriv_s);
        newXS_deffile("OpenGL::glGetRenderbufferParameteriv_c", XS_OpenGL_glGetRenderbufferParameteriv_c);
        newXS_deffile("OpenGL::glIsFramebuffer", XS_OpenGL_glIsFramebuffer);
        newXS_deffile("OpenGL::glBindFramebuffer", XS_OpenGL_glBindFramebuffer);
        newXS_deffile("OpenGL::glDeleteFramebuffers_c", XS_OpenGL_glDeleteFramebuffers_c);
        newXS_deffile("OpenGL::glDeleteFramebuffers_s", XS_OpenGL_glDeleteFramebuffers_s);
        newXS_deffile("OpenGL::glDeleteFramebuffers_p", XS_OpenGL_glDeleteFramebuffers_p);
        newXS_deffile("OpenGL::glGenFramebuffers_c", XS_OpenGL_glGenFramebuffers_c);
        newXS_deffile("OpenGL::glGenFramebuffers_s", XS_OpenGL_glGenFramebuffers_s);
        newXS_deffile("OpenGL::glGenFramebuffers_p", XS_OpenGL_glGenFramebuffers_p);
        newXS_deffile("OpenGL::glCheckFramebufferStatus", XS_OpenGL_glCheckFramebufferStatus);
        newXS_deffile("OpenGL::glFramebufferTexture1D", XS_OpenGL_glFramebufferTexture1D);
        newXS_deffile("OpenGL::glFramebufferTexture2D", XS_OpenGL_glFramebufferTexture2D);
        newXS_deffile("OpenGL::glFramebufferTexture3D", XS_OpenGL_glFramebufferTexture3D);
        newXS_deffile("OpenGL::glFramebufferRenderbuffer", XS_OpenGL_glFramebufferRenderbuffer);
        newXS_deffile("OpenGL::glGetFramebufferAttachmentParameteriv_s", XS_OpenGL_glGetFramebufferAttachmentParameteriv_s);
        newXS_deffile("OpenGL::glGetFramebufferAttachmentParameteriv_c", XS_OpenGL_glGetFramebufferAttachmentParameteriv_c);
        newXS_deffile("OpenGL::glGenerateMipmap", XS_OpenGL_glGenerateMipmap);
#endif
#if XSubPPtmpAAAH
        newXS_deffile("OpenGL::glIsRenderbufferEXT", XS_OpenGL_glIsRenderbufferEXT);
        newXS_deffile("OpenGL::glBindRenderbufferEXT", XS_OpenGL_glBindRenderbufferEXT);
        newXS_deffile("OpenGL::glDeleteRenderbuffersEXT_c", XS_OpenGL_glDeleteRenderbuffersEXT_c);
        newXS_deffile("OpenGL::glDeleteRenderbuffersEXT_s", XS_OpenGL_glDeleteRenderbuffersEXT_s);
        newXS_deffile("OpenGL::glDeleteRenderbuffersEXT_p", XS_OpenGL_glDeleteRenderbuffersEXT_p);
        newXS_deffile("OpenGL::glGenRenderbuffersEXT_c", XS_OpenGL_glGenRenderbuffersEXT_c);
        newXS_deffile("OpenGL::glGenRenderbuffersEXT_s", XS_OpenGL_glGenRenderbuffersEXT_s);
        newXS_deffile("OpenGL::glGenRenderbuffersEXT_p", XS_OpenGL_glGenRenderbuffersEXT_p);
        newXS_deffile("OpenGL::glRenderbufferStorageEXT", XS_OpenGL_glRenderbufferStorageEXT);
        newXS_deffile("OpenGL::glGetRenderbufferParameterivEXT_s", XS_OpenGL_glGetRenderbufferParameterivEXT_s);
        newXS_deffile("OpenGL::glGetRenderbufferParameterivEXT_c", XS_OpenGL_glGetRenderbufferParameterivEXT_c);
        newXS_deffile("OpenGL::glIsFramebufferEXT", XS_OpenGL_glIsFramebufferEXT);
        newXS_deffile("OpenGL::glBindFramebufferEXT", XS_OpenGL_glBindFramebufferEXT);
        newXS_deffile("OpenGL::glDeleteFramebuffersEXT_c", XS_OpenGL_glDeleteFramebuffersEXT_c);
        newXS_deffile("OpenGL::glDeleteFramebuffersEXT_s", XS_OpenGL_glDeleteFramebuffersEXT_s);
        newXS_deffile("OpenGL::glDeleteFramebuffersEXT_p", XS_OpenGL_glDeleteFramebuffersEXT_p);
        newXS_deffile("OpenGL::glGenFramebuffersEXT_c", XS_OpenGL_glGenFramebuffersEXT_c);
        newXS_deffile("OpenGL::glGenFramebuffersEXT_s", XS_OpenGL_glGenFramebuffersEXT_s);
        newXS_deffile("OpenGL::glGenFramebuffersEXT_p", XS_OpenGL_glGenFramebuffersEXT_p);
        newXS_deffile("OpenGL::glCheckFramebufferStatusEXT", XS_OpenGL_glCheckFramebufferStatusEXT);
        newXS_deffile("OpenGL::glFramebufferTexture1DEXT", XS_OpenGL_glFramebufferTexture1DEXT);
        newXS_deffile("OpenGL::glFramebufferTexture2DEXT", XS_OpenGL_glFramebufferTexture2DEXT);
        newXS_deffile("OpenGL::glFramebufferTexture3DEXT", XS_OpenGL_glFramebufferTexture3DEXT);
        newXS_deffile("OpenGL::glFramebufferRenderbufferEXT", XS_OpenGL_glFramebufferRenderbufferEXT);
        newXS_deffile("OpenGL::glGetFramebufferAttachmentParameterivEXT_s", XS_OpenGL_glGetFramebufferAttachmentParameterivEXT_s);
        newXS_deffile("OpenGL::glGetFramebufferAttachmentParameterivEXT_c", XS_OpenGL_glGetFramebufferAttachmentParameterivEXT_c);
        newXS_deffile("OpenGL::glGenerateMipmapEXT", XS_OpenGL_glGenerateMipmapEXT);
#endif
#if XSubPPtmpAAAI
        newXS_deffile("OpenGL::glBindBuffer", XS_OpenGL_glBindBuffer);
        newXS_deffile("OpenGL::glDeleteBuffers_c", XS_OpenGL_glDeleteBuffers_c);
        newXS_deffile("OpenGL::glDeleteBuffers_s", XS_OpenGL_glDeleteBuffers_s);
        newXS_deffile("OpenGL::glDeleteBuffers_p", XS_OpenGL_glDeleteBuffers_p);
        newXS_deffile("OpenGL::glGenBuffers_c", XS_OpenGL_glGenBuffers_c);
        newXS_deffile("OpenGL::glGenBuffers_s", XS_OpenGL_glGenBuffers_s);
        newXS_deffile("OpenGL::glGenBuffers_p", XS_OpenGL_glGenBuffers_p);
        newXS_deffile("OpenGL::glIsBuffer", XS_OpenGL_glIsBuffer);
        newXS_deffile("OpenGL::glBufferData_c", XS_OpenGL_glBufferData_c);
        newXS_deffile("OpenGL::glBufferData_s", XS_OpenGL_glBufferData_s);
        newXS_deffile("OpenGL::glBufferData_p", XS_OpenGL_glBufferData_p);
        newXS_deffile("OpenGL::glBufferSubData_c", XS_OpenGL_glBufferSubData_c);
        newXS_deffile("OpenGL::glBufferSubData_s", XS_OpenGL_glBufferSubData_s);
        newXS_deffile("OpenGL::glBufferSubData_p", XS_OpenGL_glBufferSubData_p);
        newXS_deffile("OpenGL::glGetBufferSubData_c", XS_OpenGL_glGetBufferSubData_c);
        newXS_deffile("OpenGL::glGetBufferSubData_s", XS_OpenGL_glGetBufferSubData_s);
        newXS_deffile("OpenGL::glGetBufferSubData_p", XS_OpenGL_glGetBufferSubData_p);
        newXS_deffile("OpenGL::glMapBuffer_c", XS_OpenGL_glMapBuffer_c);
        newXS_deffile("OpenGL::glMapBuffer_p", XS_OpenGL_glMapBuffer_p);
        newXS_deffile("OpenGL::glUnmapBuffer", XS_OpenGL_glUnmapBuffer);
        newXS_deffile("OpenGL::glGetBufferParameteriv_c", XS_OpenGL_glGetBufferParameteriv_c);
        newXS_deffile("OpenGL::glGetBufferParameteriv_s", XS_OpenGL_glGetBufferParameteriv_s);
        newXS_deffile("OpenGL::glGetBufferParameteriv_p", XS_OpenGL_glGetBufferParameteriv_p);
        newXS_deffile("OpenGL::glGetBufferPointerv_c", XS_OpenGL_glGetBufferPointerv_c);
        newXS_deffile("OpenGL::glGetBufferPointerv_s", XS_OpenGL_glGetBufferPointerv_s);
        newXS_deffile("OpenGL::glGetBufferPointerv_p", XS_OpenGL_glGetBufferPointerv_p);
#endif
#if XSubPPtmpAAAJ
        newXS_deffile("OpenGL::glBindBufferARB", XS_OpenGL_glBindBufferARB);
        newXS_deffile("OpenGL::glDeleteBuffersARB_c", XS_OpenGL_glDeleteBuffersARB_c);
        newXS_deffile("OpenGL::glDeleteBuffersARB_s", XS_OpenGL_glDeleteBuffersARB_s);
        newXS_deffile("OpenGL::glDeleteBuffersARB_p", XS_OpenGL_glDeleteBuffersARB_p);
        newXS_deffile("OpenGL::glGenBuffersARB_c", XS_OpenGL_glGenBuffersARB_c);
        newXS_deffile("OpenGL::glGenBuffersARB_s", XS_OpenGL_glGenBuffersARB_s);
        newXS_deffile("OpenGL::glGenBuffersARB_p", XS_OpenGL_glGenBuffersARB_p);
        newXS_deffile("OpenGL::glIsBufferARB", XS_OpenGL_glIsBufferARB);
        newXS_deffile("OpenGL::glBufferDataARB_c", XS_OpenGL_glBufferDataARB_c);
        newXS_deffile("OpenGL::glBufferDataARB_s", XS_OpenGL_glBufferDataARB_s);
        newXS_deffile("OpenGL::glBufferDataARB_p", XS_OpenGL_glBufferDataARB_p);
        newXS_deffile("OpenGL::glBufferSubDataARB_c", XS_OpenGL_glBufferSubDataARB_c);
        newXS_deffile("OpenGL::glBufferSubDataARB_s", XS_OpenGL_glBufferSubDataARB_s);
        newXS_deffile("OpenGL::glBufferSubDataARB_p", XS_OpenGL_glBufferSubDataARB_p);
        newXS_deffile("OpenGL::glGetBufferSubDataARB_c", XS_OpenGL_glGetBufferSubDataARB_c);
        newXS_deffile("OpenGL::glGetBufferSubDataARB_s", XS_OpenGL_glGetBufferSubDataARB_s);
        newXS_deffile("OpenGL::glGetBufferSubDataARB_p", XS_OpenGL_glGetBufferSubDataARB_p);
        newXS_deffile("OpenGL::glMapBufferARB_c", XS_OpenGL_glMapBufferARB_c);
        newXS_deffile("OpenGL::glMapBufferARB_p", XS_OpenGL_glMapBufferARB_p);
        newXS_deffile("OpenGL::glUnmapBufferARB", XS_OpenGL_glUnmapBufferARB);
        newXS_deffile("OpenGL::glGetBufferParameterivARB_c", XS_OpenGL_glGetBufferParameterivARB_c);
        newXS_deffile("OpenGL::glGetBufferParameterivARB_s", XS_OpenGL_glGetBufferParameterivARB_s);
        newXS_deffile("OpenGL::glGetBufferParameterivARB_p", XS_OpenGL_glGetBufferParameterivARB_p);
        newXS_deffile("OpenGL::glGetBufferPointervARB_c", XS_OpenGL_glGetBufferPointervARB_c);
        newXS_deffile("OpenGL::glGetBufferPointervARB_s", XS_OpenGL_glGetBufferPointervARB_s);
        newXS_deffile("OpenGL::glGetBufferPointervARB_p", XS_OpenGL_glGetBufferPointervARB_p);
#endif
#if XSubPPtmpAAAK
        newXS_deffile("OpenGL::glActiveTexture", XS_OpenGL_glActiveTexture);
        newXS_deffile("OpenGL::glClientActiveTexture", XS_OpenGL_glClientActiveTexture);
        newXS_deffile("OpenGL::glMultiTexCoord1d", XS_OpenGL_glMultiTexCoord1d);
        newXS_deffile("OpenGL::glMultiTexCoord1dv_c", XS_OpenGL_glMultiTexCoord1dv_c);
        newXS_deffile("OpenGL::glMultiTexCoord1dv_s", XS_OpenGL_glMultiTexCoord1dv_s);
        newXS_deffile("OpenGL::glMultiTexCoord1dv_p", XS_OpenGL_glMultiTexCoord1dv_p);
        newXS_deffile("OpenGL::glMultiTexCoord1f", XS_OpenGL_glMultiTexCoord1f);
        newXS_deffile("OpenGL::glMultiTexCoord1fv_c", XS_OpenGL_glMultiTexCoord1fv_c);
        newXS_deffile("OpenGL::glMultiTexCoord1fv_s", XS_OpenGL_glMultiTexCoord1fv_s);
        newXS_deffile("OpenGL::glMultiTexCoord1fv_p", XS_OpenGL_glMultiTexCoord1fv_p);
        newXS_deffile("OpenGL::glMultiTexCoord1i", XS_OpenGL_glMultiTexCoord1i);
        newXS_deffile("OpenGL::glMultiTexCoord1iv_c", XS_OpenGL_glMultiTexCoord1iv_c);
        newXS_deffile("OpenGL::glMultiTexCoord1iv_s", XS_OpenGL_glMultiTexCoord1iv_s);
        newXS_deffile("OpenGL::glMultiTexCoord1iv_p", XS_OpenGL_glMultiTexCoord1iv_p);
        newXS_deffile("OpenGL::glMultiTexCoord1s", XS_OpenGL_glMultiTexCoord1s);
        newXS_deffile("OpenGL::glMultiTexCoord1sv_c", XS_OpenGL_glMultiTexCoord1sv_c);
        newXS_deffile("OpenGL::glMultiTexCoord1sv_s", XS_OpenGL_glMultiTexCoord1sv_s);
        newXS_deffile("OpenGL::glMultiTexCoord1sv_p", XS_OpenGL_glMultiTexCoord1sv_p);
        newXS_deffile("OpenGL::glMultiTexCoord2d", XS_OpenGL_glMultiTexCoord2d);
        newXS_deffile("OpenGL::glMultiTexCoord2dv_c", XS_OpenGL_glMultiTexCoord2dv_c);
        newXS_deffile("OpenGL::glMultiTexCoord2dv_s", XS_OpenGL_glMultiTexCoord2dv_s);
        newXS_deffile("OpenGL::glMultiTexCoord2dv_p", XS_OpenGL_glMultiTexCoord2dv_p);
        newXS_deffile("OpenGL::glMultiTexCoord2f", XS_OpenGL_glMultiTexCoord2f);
        newXS_deffile("OpenGL::glMultiTexCoord2fv_c", XS_OpenGL_glMultiTexCoord2fv_c);
        newXS_deffile("OpenGL::glMultiTexCoord2fv_s", XS_OpenGL_glMultiTexCoord2fv_s);
        newXS_deffile("OpenGL::glMultiTexCoord2fv_p", XS_OpenGL_glMultiTexCoord2fv_p);
        newXS_deffile("OpenGL::glMultiTexCoord2i", XS_OpenGL_glMultiTexCoord2i);
        newXS_deffile("OpenGL::glMultiTexCoord2iv_c", XS_OpenGL_glMultiTexCoord2iv_c);
        newXS_deffile("OpenGL::glMultiTexCoord2iv_s", XS_OpenGL_glMultiTexCoord2iv_s);
        newXS_deffile("OpenGL::glMultiTexCoord2iv_p", XS_OpenGL_glMultiTexCoord2iv_p);
        newXS_deffile("OpenGL::glMultiTexCoord2s", XS_OpenGL_glMultiTexCoord2s);
        newXS_deffile("OpenGL::glMultiTexCoord2sv_c", XS_OpenGL_glMultiTexCoord2sv_c);
        newXS_deffile("OpenGL::glMultiTexCoord2sv_s", XS_OpenGL_glMultiTexCoord2sv_s);
        newXS_deffile("OpenGL::glMultiTexCoord2sv_p", XS_OpenGL_glMultiTexCoord2sv_p);
        newXS_deffile("OpenGL::glMultiTexCoord3d", XS_OpenGL_glMultiTexCoord3d);
        newXS_deffile("OpenGL::glMultiTexCoord3dv_c", XS_OpenGL_glMultiTexCoord3dv_c);
        newXS_deffile("OpenGL::glMultiTexCoord3dv_s", XS_OpenGL_glMultiTexCoord3dv_s);
        newXS_deffile("OpenGL::glMultiTexCoord3dv_p", XS_OpenGL_glMultiTexCoord3dv_p);
        newXS_deffile("OpenGL::glMultiTexCoord3f", XS_OpenGL_glMultiTexCoord3f);
        newXS_deffile("OpenGL::glMultiTexCoord3fv_c", XS_OpenGL_glMultiTexCoord3fv_c);
        newXS_deffile("OpenGL::glMultiTexCoord3fv_s", XS_OpenGL_glMultiTexCoord3fv_s);
        newXS_deffile("OpenGL::glMultiTexCoord3fv_p", XS_OpenGL_glMultiTexCoord3fv_p);
        newXS_deffile("OpenGL::glMultiTexCoord3i", XS_OpenGL_glMultiTexCoord3i);
        newXS_deffile("OpenGL::glMultiTexCoord3iv_c", XS_OpenGL_glMultiTexCoord3iv_c);
        newXS_deffile("OpenGL::glMultiTexCoord3iv_s", XS_OpenGL_glMultiTexCoord3iv_s);
        newXS_deffile("OpenGL::glMultiTexCoord3iv_p", XS_OpenGL_glMultiTexCoord3iv_p);
        newXS_deffile("OpenGL::glMultiTexCoord3s", XS_OpenGL_glMultiTexCoord3s);
        newXS_deffile("OpenGL::glMultiTexCoord3sv_c", XS_OpenGL_glMultiTexCoord3sv_c);
        newXS_deffile("OpenGL::glMultiTexCoord3sv_s", XS_OpenGL_glMultiTexCoord3sv_s);
        newXS_deffile("OpenGL::glMultiTexCoord3sv_p", XS_OpenGL_glMultiTexCoord3sv_p);
        newXS_deffile("OpenGL::glMultiTexCoord4d", XS_OpenGL_glMultiTexCoord4d);
        newXS_deffile("OpenGL::glMultiTexCoord4dv_c", XS_OpenGL_glMultiTexCoord4dv_c);
        newXS_deffile("OpenGL::glMultiTexCoord4dv_s", XS_OpenGL_glMultiTexCoord4dv_s);
        newXS_deffile("OpenGL::glMultiTexCoord4dv_p", XS_OpenGL_glMultiTexCoord4dv_p);
        newXS_deffile("OpenGL::glMultiTexCoord4f", XS_OpenGL_glMultiTexCoord4f);
        newXS_deffile("OpenGL::glMultiTexCoord4fv_c", XS_OpenGL_glMultiTexCoord4fv_c);
        newXS_deffile("OpenGL::glMultiTexCoord4fv_s", XS_OpenGL_glMultiTexCoord4fv_s);
        newXS_deffile("OpenGL::glMultiTexCoord4fv_p", XS_OpenGL_glMultiTexCoord4fv_p);
        newXS_deffile("OpenGL::glMultiTexCoord4i", XS_OpenGL_glMultiTexCoord4i);
        newXS_deffile("OpenGL::glMultiTexCoord4iv_c", XS_OpenGL_glMultiTexCoord4iv_c);
        newXS_deffile("OpenGL::glMultiTexCoord4iv_s", XS_OpenGL_glMultiTexCoord4iv_s);
        newXS_deffile("OpenGL::glMultiTexCoord4iv_p", XS_OpenGL_glMultiTexCoord4iv_p);
        newXS_deffile("OpenGL::glMultiTexCoord4s", XS_OpenGL_glMultiTexCoord4s);
        newXS_deffile("OpenGL::glMultiTexCoord4sv_c", XS_OpenGL_glMultiTexCoord4sv_c);
        newXS_deffile("OpenGL::glMultiTexCoord4sv_s", XS_OpenGL_glMultiTexCoord4sv_s);
        newXS_deffile("OpenGL::glMultiTexCoord4sv_p", XS_OpenGL_glMultiTexCoord4sv_p);
#endif
#if XSubPPtmpAAAL
        newXS_deffile("OpenGL::glActiveTextureARB", XS_OpenGL_glActiveTextureARB);
        newXS_deffile("OpenGL::glClientActiveTextureARB", XS_OpenGL_glClientActiveTextureARB);
        newXS_deffile("OpenGL::glMultiTexCoord1dARB", XS_OpenGL_glMultiTexCoord1dARB);
        newXS_deffile("OpenGL::glMultiTexCoord1dvARB_c", XS_OpenGL_glMultiTexCoord1dvARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord1dvARB_s", XS_OpenGL_glMultiTexCoord1dvARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord1dvARB_p", XS_OpenGL_glMultiTexCoord1dvARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord1fARB", XS_OpenGL_glMultiTexCoord1fARB);
        newXS_deffile("OpenGL::glMultiTexCoord1fvARB_c", XS_OpenGL_glMultiTexCoord1fvARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord1fvARB_s", XS_OpenGL_glMultiTexCoord1fvARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord1fvARB_p", XS_OpenGL_glMultiTexCoord1fvARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord1iARB", XS_OpenGL_glMultiTexCoord1iARB);
        newXS_deffile("OpenGL::glMultiTexCoord1ivARB_c", XS_OpenGL_glMultiTexCoord1ivARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord1ivARB_s", XS_OpenGL_glMultiTexCoord1ivARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord1ivARB_p", XS_OpenGL_glMultiTexCoord1ivARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord1sARB", XS_OpenGL_glMultiTexCoord1sARB);
        newXS_deffile("OpenGL::glMultiTexCoord1svARB_c", XS_OpenGL_glMultiTexCoord1svARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord1svARB_s", XS_OpenGL_glMultiTexCoord1svARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord1svARB_p", XS_OpenGL_glMultiTexCoord1svARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord2dARB", XS_OpenGL_glMultiTexCoord2dARB);
        newXS_deffile("OpenGL::glMultiTexCoord2dvARB_c", XS_OpenGL_glMultiTexCoord2dvARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord2dvARB_s", XS_OpenGL_glMultiTexCoord2dvARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord2dvARB_p", XS_OpenGL_glMultiTexCoord2dvARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord2fARB", XS_OpenGL_glMultiTexCoord2fARB);
        newXS_deffile("OpenGL::glMultiTexCoord2fvARB_c", XS_OpenGL_glMultiTexCoord2fvARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord2fvARB_s", XS_OpenGL_glMultiTexCoord2fvARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord2fvARB_p", XS_OpenGL_glMultiTexCoord2fvARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord2iARB", XS_OpenGL_glMultiTexCoord2iARB);
        newXS_deffile("OpenGL::glMultiTexCoord2ivARB_c", XS_OpenGL_glMultiTexCoord2ivARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord2ivARB_s", XS_OpenGL_glMultiTexCoord2ivARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord2ivARB_p", XS_OpenGL_glMultiTexCoord2ivARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord2sARB", XS_OpenGL_glMultiTexCoord2sARB);
        newXS_deffile("OpenGL::glMultiTexCoord2svARB_c", XS_OpenGL_glMultiTexCoord2svARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord2svARB_s", XS_OpenGL_glMultiTexCoord2svARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord2svARB_p", XS_OpenGL_glMultiTexCoord2svARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord3dARB", XS_OpenGL_glMultiTexCoord3dARB);
        newXS_deffile("OpenGL::glMultiTexCoord3dvARB_c", XS_OpenGL_glMultiTexCoord3dvARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord3dvARB_s", XS_OpenGL_glMultiTexCoord3dvARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord3dvARB_p", XS_OpenGL_glMultiTexCoord3dvARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord3fARB", XS_OpenGL_glMultiTexCoord3fARB);
        newXS_deffile("OpenGL::glMultiTexCoord3fvARB_c", XS_OpenGL_glMultiTexCoord3fvARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord3fvARB_s", XS_OpenGL_glMultiTexCoord3fvARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord3fvARB_p", XS_OpenGL_glMultiTexCoord3fvARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord3iARB", XS_OpenGL_glMultiTexCoord3iARB);
        newXS_deffile("OpenGL::glMultiTexCoord3ivARB_c", XS_OpenGL_glMultiTexCoord3ivARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord3ivARB_s", XS_OpenGL_glMultiTexCoord3ivARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord3ivARB_p", XS_OpenGL_glMultiTexCoord3ivARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord3sARB", XS_OpenGL_glMultiTexCoord3sARB);
        newXS_deffile("OpenGL::glMultiTexCoord3svARB_c", XS_OpenGL_glMultiTexCoord3svARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord3svARB_s", XS_OpenGL_glMultiTexCoord3svARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord3svARB_p", XS_OpenGL_glMultiTexCoord3svARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord4dARB", XS_OpenGL_glMultiTexCoord4dARB);
        newXS_deffile("OpenGL::glMultiTexCoord4dvARB_c", XS_OpenGL_glMultiTexCoord4dvARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord4dvARB_s", XS_OpenGL_glMultiTexCoord4dvARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord4dvARB_p", XS_OpenGL_glMultiTexCoord4dvARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord4fARB", XS_OpenGL_glMultiTexCoord4fARB);
        newXS_deffile("OpenGL::glMultiTexCoord4fvARB_c", XS_OpenGL_glMultiTexCoord4fvARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord4fvARB_s", XS_OpenGL_glMultiTexCoord4fvARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord4fvARB_p", XS_OpenGL_glMultiTexCoord4fvARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord4iARB", XS_OpenGL_glMultiTexCoord4iARB);
        newXS_deffile("OpenGL::glMultiTexCoord4ivARB_c", XS_OpenGL_glMultiTexCoord4ivARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord4ivARB_s", XS_OpenGL_glMultiTexCoord4ivARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord4ivARB_p", XS_OpenGL_glMultiTexCoord4ivARB_p);
        newXS_deffile("OpenGL::glMultiTexCoord4sARB", XS_OpenGL_glMultiTexCoord4sARB);
        newXS_deffile("OpenGL::glMultiTexCoord4svARB_c", XS_OpenGL_glMultiTexCoord4svARB_c);
        newXS_deffile("OpenGL::glMultiTexCoord4svARB_s", XS_OpenGL_glMultiTexCoord4svARB_s);
        newXS_deffile("OpenGL::glMultiTexCoord4svARB_p", XS_OpenGL_glMultiTexCoord4svARB_p);
#endif

    /* Initialisation Section */

#if XSubPPtmpAAAA
#endif
#if XSubPPtmpAAAB
#endif
#if XSubPPtmpAAAC
#endif
#if XSubPPtmpAAAD
#endif
#if XSubPPtmpAAAE
#endif
#if XSubPPtmpAAAF
#endif
#if XSubPPtmpAAAG
#endif
#if XSubPPtmpAAAH
#endif
#if XSubPPtmpAAAI
#endif
#if XSubPPtmpAAAJ
#endif
#if XSubPPtmpAAAK
#endif
#if XSubPPtmpAAAL
#endif
#line 8294 "pogl_gl_Vert_Multi.c"

    /* End of Initialisation Section */

#if PERL_VERSION_LE(5, 21, 5)
#  if PERL_VERSION_GE(5, 9, 0)
    if (PL_unitcheckav)
        call_list(PL_scopestack_ix, PL_unitcheckav);
#  endif
    XSRETURN_YES;
#else
    Perl_xs_boot_epilog(aTHX_ ax);
#endif
}

