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

#line 1 "lib/OpenGL/V1.xs"
/*  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.
 */

#include <stdio.h>

#include "pgopogl.h"

#ifdef HAVE_GL
#include "gl_util.h"
#endif /* defined HAVE_GL */

#line 26 "lib/OpenGL/V1.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 170 "lib/OpenGL/V1.c"
#ifdef HAVE_GL
#define XSubPPtmpAAAA 1


XS_EUPXS(XS_OpenGL_glAccum); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glAccum)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "op, value");
    {
	GLenum	op = (int)SvIV(ST(0))
;
	GLfloat	value = (float)SvNV(ST(1))
;

	glAccum(op, value);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glAlphaFunc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glAlphaFunc)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "func, ref");
    {
	GLenum	func = (int)SvIV(ST(0))
;
	GLclampf	ref = (float)SvNV(ST(1))
;

	glAlphaFunc(func, ref);
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAB 1


XS_EUPXS(XS_OpenGL_glAreTexturesResident_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glAreTexturesResident_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "n, textures, residences");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	textures = INT2PTR(void *,SvIV(ST(1)))
;
	void *	residences = INT2PTR(void *,SvIV(ST(2)))
;
#line 43 "lib/OpenGL/V1.xs"
	glAreTexturesResident(n, textures, residences);
#line 229 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glAreTexturesResident_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glAreTexturesResident_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "n, textures, residences");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	textures = ST(1)
;
	SV *	residences = ST(2)
;
#line 52 "lib/OpenGL/V1.xs"
	{
	void * textures_s = EL(textures, sizeof(GLuint)*n);
	void * residences_s = EL(residences, sizeof(GLboolean)*n);
	glAreTexturesResident(n, textures_s, residences_s);
	}
#line 254 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glAreTexturesResident_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glAreTexturesResident_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
#line 63 "lib/OpenGL/V1.xs"
	{
		GLsizei n = items;
		GLuint * textures = malloc(sizeof(GLuint) * (n+1));
		GLboolean * residences = malloc(sizeof(GLboolean) * (n+1));
		GLboolean result;
		int i;

		for (i=0;i<n;i++)
			textures[i] = SvIV(ST(i));

		result = glAreTexturesResident(n, textures, residences);

		if ((result == GL_TRUE) || (GIMME != G_ARRAY))
			PUSHs(sv_2mortal(newSViv(result)));
		else {
			EXTEND(sp, n+1);
			PUSHs(sv_2mortal(newSViv(result)));
			for(i=0;i<n;i++)
				PUSHs(sv_2mortal(newSViv(residences[i])));
		}

		free(textures);
		free(residences);
	}
#line 294 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glArrayElement); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glArrayElement)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "i");
    {
	GLint	i = (int)SvIV(ST(0))
;

	glArrayElement(i);
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glBegin); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBegin)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;

	glBegin(mode);
    }
    XSRETURN_EMPTY;
}


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

	glEnd();
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAC 1


XS_EUPXS(XS_OpenGL_glBindTexture); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBindTexture)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, texture");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLuint	texture = (unsigned int)SvUV(ST(1))
;

	glBindTexture(target, texture);
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glBitmap_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBitmap_c)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "width, height, xorig, yorig, xmove, ymove, bitmap");
    {
	GLsizei	width = (int)SvIV(ST(0))
;
	GLsizei	height = (int)SvIV(ST(1))
;
	GLfloat	xorig = (float)SvNV(ST(2))
;
	GLfloat	yorig = (float)SvNV(ST(3))
;
	GLfloat	xmove = (float)SvNV(ST(4))
;
	GLfloat	ymove = (float)SvNV(ST(5))
;
	void *	bitmap = INT2PTR(void *,SvIV(ST(6)))
;
#line 130 "lib/OpenGL/V1.xs"
	glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
#line 393 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBitmap_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBitmap_s)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "width, height, xorig, yorig, xmove, ymove, bitmap");
    {
	GLsizei	width = (int)SvIV(ST(0))
;
	GLsizei	height = (int)SvIV(ST(1))
;
	GLfloat	xorig = (float)SvNV(ST(2))
;
	GLfloat	yorig = (float)SvNV(ST(3))
;
	GLfloat	xmove = (float)SvNV(ST(4))
;
	GLfloat	ymove = (float)SvNV(ST(5))
;
	SV *	bitmap = ST(6)
;
#line 143 "lib/OpenGL/V1.xs"
	{
	GLubyte * bitmap_s = ELI(bitmap, width, height,
		GL_COLOR_INDEX, GL_BITMAP, gl_pixelbuffer_unpack);
	glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap_s);
	}
#line 426 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBitmap_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBitmap_p)
{
    dVAR; dXSARGS;
    if (items < 6)
       croak_xs_usage(cv,  "width, height, xorig, yorig, xmove, ymove, ...");
    {
	GLsizei	width = (int)SvIV(ST(0))
;
	GLsizei	height = (int)SvIV(ST(1))
;
	GLfloat	xorig = (float)SvNV(ST(2))
;
	GLfloat	yorig = (float)SvNV(ST(3))
;
	GLfloat	xmove = (float)SvNV(ST(4))
;
	GLfloat	ymove = (float)SvNV(ST(5))
;
#line 159 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr;
	glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
	glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	ptr = pack_image_ST(&(ST(6)), items-6, width, height,
		1, GL_COLOR_INDEX, GL_BITMAP, 0);
	glBitmap(width, height, xorig, yorig, xmove, ymove, ptr);
	glPopClientAttrib();
	free(ptr);
	}
#line 463 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBlendFunc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBlendFunc)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "sfactor, dfactor");
    {
	GLenum	sfactor = (int)SvIV(ST(0))
;
	GLenum	dfactor = (int)SvIV(ST(1))
;

	glBlendFunc(sfactor, dfactor);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glCallList); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCallList)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "list");
    {
	GLuint	list = (unsigned int)SvUV(ST(0))
;

	glCallList(list);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glCallLists_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCallLists_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "n, type, lists");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	void *	lists = INT2PTR(void *,SvIV(ST(2)))
;
#line 192 "lib/OpenGL/V1.xs"
	glCallLists(n, type, lists);
#line 518 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glCallLists_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCallLists_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "n, type, lists");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	SV *	lists = ST(2)
;
#line 202 "lib/OpenGL/V1.xs"
	{
	void * lists_s = EL(lists, gl_type_size(type) * n);
	glCallLists(n, type, lists_s);
	}
#line 542 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glCallLists_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCallLists_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 213 "lib/OpenGL/V1.xs"
	if (items) {
		int * list = malloc(sizeof(int) * items);
		int i;
		for(i=0;i<items;i++)
			list[i] = SvIV(ST(i));
		glCallLists(items, GL_INT, list);
		free(list);
	}
#line 564 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClear); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClear)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	GLbitfield	mask = (int)SvIV(ST(0))
;

	glClear(mask);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClearAccum); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClearAccum)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLfloat	red = (float)SvNV(ST(0))
;
	GLfloat	green = (float)SvNV(ST(1))
;
	GLfloat	blue = (float)SvNV(ST(2))
;
	GLfloat	alpha = (float)SvNV(ST(3))
;

	glClearAccum(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClearColor); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClearColor)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLclampf	red = (float)SvNV(ST(0))
;
	GLclampf	green = (float)SvNV(ST(1))
;
	GLclampf	blue = (float)SvNV(ST(2))
;
	GLclampf	alpha = (float)SvNV(ST(3))
;

	glClearColor(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClearDepth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClearDepth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "depth");
    {
	GLclampd	depth = (double)SvNV(ST(0))
;

	glClearDepth(depth);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClearIndex); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClearIndex)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "c");
    {
	GLfloat	c = (float)SvNV(ST(0))
;

	glClearIndex(c);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClearStencil); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClearStencil)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLint	s = (int)SvIV(ST(0))
;

	glClearStencil(s);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClipPlane_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClipPlane_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "plane, eqn");
    {
	GLenum	plane = (int)SvIV(ST(0))
;
	void *	eqn = INT2PTR(void *,SvIV(ST(1)))
;
#line 271 "lib/OpenGL/V1.xs"
	glClipPlane(plane, eqn);
#line 691 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClipPlane_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClipPlane_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "plane, eqn");
    {
	GLenum	plane = (int)SvIV(ST(0))
;
	SV *	eqn = ST(1)
;
#line 280 "lib/OpenGL/V1.xs"
	{
		GLdouble * eqn_s = EL(eqn, sizeof(GLdouble) * 4);
		glClipPlane(plane, eqn_s);
	}
#line 713 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glClipPlane_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glClipPlane_p)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "plane, eqn0, eqn1, eqn2, eqn3");
    {
	GLenum	plane = (int)SvIV(ST(0))
;
	double	eqn0 = (double)SvNV(ST(1))
;
	double	eqn1 = (double)SvNV(ST(2))
;
	double	eqn2 = (double)SvNV(ST(3))
;
	double	eqn3 = (double)SvNV(ST(4))
;
#line 295 "lib/OpenGL/V1.xs"
	{
		double eqn[4];
		eqn[0] = eqn0;
		eqn[1] = eqn1;
		eqn[2] = eqn2;
		eqn[3] = eqn3;
		glClipPlane(plane, &eqn[0]);
	}
#line 745 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColorMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColorMask)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLboolean	red = (bool)SvTRUE(ST(0))
;
	GLboolean	green = (bool)SvTRUE(ST(1))
;
	GLboolean	blue = (bool)SvTRUE(ST(2))
;
	GLboolean	alpha = (bool)SvTRUE(ST(3))
;

	glColorMask(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColorMaterial); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColorMaterial)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "face, mode");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	mode = (int)SvIV(ST(1))
;

	glColorMaterial(face, mode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glCopyPixels); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCopyPixels)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "x, y, width, height, type");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLsizei	width = (int)SvIV(ST(2))
;
	GLsizei	height = (int)SvIV(ST(3))
;
	GLenum	type = (int)SvIV(ST(4))
;

	glCopyPixels(x, y, width, height, type);
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAD 1


XS_EUPXS(XS_OpenGL_glCopyTexImage1D); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCopyTexImage1D)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "target, level, internalFormat, x, y, width, border");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	internalFormat = (int)SvIV(ST(2))
;
	GLint	x = (int)SvIV(ST(3))
;
	GLint	y = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;
	GLint	border = (int)SvIV(ST(6))
;

	glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glCopyTexImage2D); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCopyTexImage2D)
{
    dVAR; dXSARGS;
    if (items != 8)
       croak_xs_usage(cv,  "target, level, internalFormat, x, y, width, height, border");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	internalFormat = (int)SvIV(ST(2))
;
	GLint	x = (int)SvIV(ST(3))
;
	GLint	y = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;
	GLsizei	height = (int)SvIV(ST(6))
;
	GLint	border = (int)SvIV(ST(7))
;

	glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glCopyTexSubImage1D); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCopyTexSubImage1D)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "target, level, xoffset, x, y, width");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	x = (int)SvIV(ST(3))
;
	GLint	y = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;

	glCopyTexSubImage1D(target, level, xoffset, x, y, width);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glCopyTexSubImage2D); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCopyTexSubImage2D)
{
    dVAR; dXSARGS;
    if (items != 8)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, x, y, width, height");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLint	x = (int)SvIV(ST(4))
;
	GLint	y = (int)SvIV(ST(5))
;
	GLsizei	width = (int)SvIV(ST(6))
;
	GLsizei	height = (int)SvIV(ST(7))
;

	glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_2
#define XSubPPtmpAAAE 1


XS_EUPXS(XS_OpenGL_glCopyTexSubImage3D); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCopyTexSubImage3D)
{
    dVAR; dXSARGS;
    if (items != 9)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, zoffset, x, y, width, height");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLint	zoffset = (int)SvIV(ST(4))
;
	GLint	x = (int)SvIV(ST(5))
;
	GLint	y = (int)SvIV(ST(6))
;
	GLsizei	width = (int)SvIV(ST(7))
;
	GLsizei	height = (int)SvIV(ST(8))
;
#line 398 "lib/OpenGL/V1.xs"
		loadProc(glCopyTexSubImage3D,"glCopyTexSubImage3D");
#line 962 "lib/OpenGL/V1.c"
#line 400 "lib/OpenGL/V1.xs"
	{
		glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset,
			x, y, width, height);
	}
#line 968 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif
#endif

XS_EUPXS(XS_OpenGL_glCullFace); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glCullFace)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;

	glCullFace(mode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteLists); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteLists)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "list, range");
    {
	GLenum	list = (int)SvIV(ST(0))
;
	GLsizei	range = (int)SvIV(ST(1))
;

	glDeleteLists(list, range);
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAF 1


XS_EUPXS(XS_OpenGL_glDeleteTextures_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteTextures_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "items, list");
    {
	GLint	items = (int)SvIV(ST(0))
;
	void *	list = INT2PTR(void *,SvIV(ST(1)))
;
#line 431 "lib/OpenGL/V1.xs"
	glDeleteTextures(items,list);
#line 1026 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDeleteTextures_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteTextures_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "items, list");
    {
	GLint	items = (int)SvIV(ST(0))
;
	SV *	list = ST(1)
;
#line 440 "lib/OpenGL/V1.xs"
	{
	void * list_s = EL(list, sizeof(GLuint) * items);
	glDeleteTextures(items,list_s);
	}
#line 1048 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


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

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

		glDeleteTextures(items, list);
		free(list);
	}
#line 1072 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glDepthFunc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDepthFunc)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "func");
    {
	GLenum	func = (int)SvIV(ST(0))
;

	glDepthFunc(func);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDepthMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDepthMask)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "flag");
    {
	GLboolean	flag = (bool)SvTRUE(ST(0))
;

	glDepthMask(flag);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDepthRange); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDepthRange)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "zNear, zFar");
    {
	GLclampd	zNear = (double)SvNV(ST(0))
;
	GLclampd	zFar = (double)SvNV(ST(1))
;

	glDepthRange(zNear, zFar);
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAG 1


XS_EUPXS(XS_OpenGL_glDrawArrays); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawArrays)
{
    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))
;

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

#endif

XS_EUPXS(XS_OpenGL_glDrawBuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawBuffer)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;

	glDrawBuffer(mode);
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAH 1


XS_EUPXS(XS_OpenGL_glDrawElements_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawElements_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "mode, count, type, indices");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLint	count = (int)SvIV(ST(1))
;
	GLenum	type = (int)SvIV(ST(2))
;
	void *	indices = INT2PTR(void *,SvIV(ST(3)))
;
#line 511 "lib/OpenGL/V1.xs"
		glDrawElements(mode, count, type, indices);
#line 1189 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawElements_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawElements_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "mode, count, type, indices");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLint	count = (int)SvIV(ST(1))
;
	GLenum	type = (int)SvIV(ST(2))
;
	SV *	indices = ST(3)
;
#line 522 "lib/OpenGL/V1.xs"
	{
		void * indices_s = EL(indices, gl_type_size(type)*count);
		glDrawElements(mode, count, type, indices_s);
	}
#line 1215 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawElements_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawElements_p)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "mode, ...");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
#line 533 "lib/OpenGL/V1.xs"
	{
		GLuint * indices = malloc(sizeof(GLuint) * items);
		int i;

		for (i=1; i<items; i++)
			indices[i-1] = SvIV(ST(i));

		glDrawElements(mode, items-1, GL_UNSIGNED_INT, indices);

		free(indices);
	}
#line 1242 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glDrawPixels_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawPixels_c)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "width, height, format, type, pixels");
    {
	GLsizei	width = (int)SvIV(ST(0))
;
	GLsizei	height = (int)SvIV(ST(1))
;
	GLenum	format = (int)SvIV(ST(2))
;
	GLenum	type = (int)SvIV(ST(3))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(4)))
;
#line 557 "lib/OpenGL/V1.xs"
	glDrawPixels(width, height, format, type, pixels);
#line 1268 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawPixels_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawPixels_s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "width, height, format, type, pixels");
    {
	GLsizei	width = (int)SvIV(ST(0))
;
	GLsizei	height = (int)SvIV(ST(1))
;
	GLenum	format = (int)SvIV(ST(2))
;
	GLenum	type = (int)SvIV(ST(3))
;
	SV *	pixels = ST(4)
;
#line 569 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr = ELI(pixels, width, height,
		format, type, gl_pixelbuffer_unpack);
	glDrawPixels(width, height, format, type, ptr);
	}
#line 1297 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawPixels_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawPixels_p)
{
    dVAR; dXSARGS;
    if (items < 4)
       croak_xs_usage(cv,  "width, height, format, type, ...");
    {
	GLsizei	width = (int)SvIV(ST(0))
;
	GLsizei	height = (int)SvIV(ST(1))
;
	GLenum	format = (int)SvIV(ST(2))
;
	GLenum	type = (int)SvIV(ST(3))
;
#line 584 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr;
	glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
	glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	ptr = pack_image_ST(&(ST(4)), items-4, width, height, 1, format, type, 0);
	glDrawPixels(width, height, format, type, ptr);
	glPopClientAttrib();
	free(ptr);
	}
#line 1329 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_2
#define XSubPPtmpAAAI 1


XS_EUPXS(XS_OpenGL_glDrawRangeElements_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawRangeElements_c)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "mode, start, end, count, type, indices");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLuint	start = (unsigned int)SvUV(ST(1))
;
	GLuint	end = (unsigned int)SvUV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	GLenum	type = (int)SvIV(ST(4))
;
	void *	indices = INT2PTR(void *,SvIV(ST(5)))
;
#line 608 "lib/OpenGL/V1.xs"
		loadProc(glDrawRangeElements,"glDrawRangeElements");
#line 1359 "lib/OpenGL/V1.c"
#line 610 "lib/OpenGL/V1.xs"
		glDrawRangeElements(mode, start, end, count, type, indices);
#line 1362 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawRangeElements_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawRangeElements_s)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "mode, start, end, count, type, indices");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLuint	start = (unsigned int)SvUV(ST(1))
;
	GLuint	end = (unsigned int)SvUV(ST(2))
;
	GLsizei	count = (int)SvIV(ST(3))
;
	GLenum	type = (int)SvIV(ST(4))
;
	SV *	indices = ST(5)
;
#line 622 "lib/OpenGL/V1.xs"
		loadProc(glDrawRangeElements,"glDrawRangeElements");
#line 1389 "lib/OpenGL/V1.c"
#line 624 "lib/OpenGL/V1.xs"
	{
		void * indices_s = EL(indices, gl_type_size(type) * count);
		glDrawRangeElements(mode, start, end, count, type, indices_s);
	}
#line 1395 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDrawRangeElements_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDrawRangeElements_p)
{
    dVAR; dXSARGS;
    if (items < 3)
       croak_xs_usage(cv,  "mode, start, count, ...");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLuint	start = (unsigned int)SvUV(ST(1))
;
	GLuint	count = (unsigned int)SvUV(ST(2))
;
#line 637 "lib/OpenGL/V1.xs"
		loadProc(glDrawRangeElements,"glDrawRangeElements");
#line 1416 "lib/OpenGL/V1.c"
#line 639 "lib/OpenGL/V1.xs"
	{
		if (items > 3)
		{
			if (start < (GLuint)items-3)
			{
				GLuint * indices;
				GLuint i;

				if (start+count > (GLuint)(items-3))
					count = (GLuint)items-(start+3);

				indices = malloc(sizeof(GLuint) * count);

				for (i=start; i<count; i++)
					indices[i] = SvIV(ST(i+3));

				glDrawRangeElements(mode, start, start+count-1,
					count, GL_UNSIGNED_INT, indices);

				free(indices);
			}
		}
		else
		{
			glDrawRangeElements(mode, start, start+count-1,
				count, GL_UNSIGNED_INT, 0);
		}
	}
#line 1446 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glEdgeFlag); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEdgeFlag)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "flag");
    {
	GLboolean	flag = (bool)SvTRUE(ST(0))
;

	glEdgeFlag(flag);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEnable); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEnable)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "cap");
    {
	GLenum	cap = (int)SvIV(ST(0))
;

	glEnable(cap);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDisable); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDisable)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "cap");
    {
	GLenum	cap = (int)SvIV(ST(0))
;

	glDisable(cap);
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAJ 1


XS_EUPXS(XS_OpenGL_glEnableClientState); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEnableClientState)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "cap");
    {
	GLenum	cap = (int)SvIV(ST(0))
;

	glEnableClientState(cap);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glDisableClientState); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDisableClientState)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "cap");
    {
	GLenum	cap = (int)SvIV(ST(0))
;

	glDisableClientState(cap);
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glEvalCoord1d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEvalCoord1d)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "u");
    {
	GLdouble	u = (double)SvNV(ST(0))
;

	glEvalCoord1d(u);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEvalCoord1f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEvalCoord1f)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "u");
    {
	GLfloat	u = (float)SvNV(ST(0))
;

	glEvalCoord1f(u);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEvalCoord2d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEvalCoord2d)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "u, v");
    {
	GLdouble	u = (double)SvNV(ST(0))
;
	GLdouble	v = (double)SvNV(ST(1))
;

	glEvalCoord2d(u, v);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEvalCoord2f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEvalCoord2f)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "u, v");
    {
	GLfloat	u = (float)SvNV(ST(0))
;
	GLfloat	v = (float)SvNV(ST(1))
;

	glEvalCoord2f(u, v);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEvalMesh1); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEvalMesh1)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "mode, i1, i2");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLint	i1 = (int)SvIV(ST(1))
;
	GLint	i2 = (int)SvIV(ST(2))
;

	glEvalMesh1(mode, i1, i2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEvalMesh2); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEvalMesh2)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "mode, i1, i2, j1, j2");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLint	i1 = (int)SvIV(ST(1))
;
	GLint	i2 = (int)SvIV(ST(2))
;
	GLint	j1 = (int)SvIV(ST(3))
;
	GLint	j2 = (int)SvIV(ST(4))
;

	glEvalMesh2(mode, i1, i2, j1, j2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEvalPoint1); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEvalPoint1)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "i");
    {
	GLint	i = (int)SvIV(ST(0))
;

	glEvalPoint1(i);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEvalPoint2); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEvalPoint2)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "i, j");
    {
	GLint	i = (int)SvIV(ST(0))
;
	GLint	j = (int)SvIV(ST(1))
;

	glEvalPoint2(i, j);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFeedbackBuffer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFeedbackBuffer_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "size, type, buffer");
    {
	GLsizei	size = (int)SvIV(ST(0))
;
	GLenum	type = (int)SvIV(ST(1))
;
	void *	buffer = INT2PTR(void *,SvIV(ST(2)))
;
#line 770 "lib/OpenGL/V1.xs"
	glFeedbackBuffer(size, type, (GLfloat*)(buffer));
#line 1698 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


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

	glFinish();
    }
    XSRETURN_EMPTY;
}


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

	glFlush();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFogf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFogf)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLfloat	param = (float)SvNV(ST(1))
;

	glFogf(pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFogi); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFogi)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLint	param = (int)SvIV(ST(1))
;

	glFogi(pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFogfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFogfv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 803 "lib/OpenGL/V1.xs"
	glFogfv(pname, params);
#line 1781 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFogiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFogiv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 812 "lib/OpenGL/V1.xs"
	glFogiv(pname, params);
#line 1800 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFogfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFogfv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 821 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params, sizeof(GLfloat)*gl_fog_count(pname));
	glFogfv(pname, params_s);
	}
#line 1822 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFogiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFogiv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 833 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params, sizeof(GLint)*gl_fog_count(pname));
	glFogiv(pname, params_s);
	}
#line 1844 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFogfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFogfv_p)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 5)
       croak_xs_usage(cv,  "pname, param1, param2=0, param3=0, param4=0");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLfloat	param1 = (float)SvNV(ST(1))
;
	GLfloat	param2;
	GLfloat	param3;
	GLfloat	param4;

	if (items < 3)
	    param2 = 0;
	else {
	    param2 = (float)SvNV(ST(2))
;
	}

	if (items < 4)
	    param3 = 0;
	else {
	    param3 = (float)SvNV(ST(3))
;
	}

	if (items < 5)
	    param4 = 0;
	else {
	    param4 = (float)SvNV(ST(4))
;
	}
#line 848 "lib/OpenGL/V1.xs"
	{
		GLfloat p[4];
		p[0] = param1;
		p[1] = param2;
		p[2] = param3;
		p[3] = param4;
		glFogfv(pname, &p[0]);
	}
#line 1894 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFogiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFogiv_p)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 5)
       croak_xs_usage(cv,  "pname, param1, param2=0, param3=0, param4=0");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLint	param1 = (int)SvIV(ST(1))
;
	GLint	param2;
	GLint	param3;
	GLint	param4;

	if (items < 3)
	    param2 = 0;
	else {
	    param2 = (int)SvIV(ST(2))
;
	}

	if (items < 4)
	    param3 = 0;
	else {
	    param3 = (int)SvIV(ST(3))
;
	}

	if (items < 5)
	    param4 = 0;
	else {
	    param4 = (int)SvIV(ST(4))
;
	}
#line 867 "lib/OpenGL/V1.xs"
	{
		GLint p[4];
		p[0] = param1;
		p[1] = param2;
		p[2] = param3;
		p[3] = param4;
		glFogiv(pname, &p[0]);
	}
#line 1944 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFrontFace); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFrontFace)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;

	glFrontFace(mode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glFrustum); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glFrustum)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "left, right, bottom, top, zNear, zFar");
    {
	GLdouble	left = (double)SvNV(ST(0))
;
	GLdouble	right = (double)SvNV(ST(1))
;
	GLdouble	bottom = (double)SvNV(ST(2))
;
	GLdouble	top = (double)SvNV(ST(3))
;
	GLdouble	zNear = (double)SvNV(ST(4))
;
	GLdouble	zFar = (double)SvNV(ST(5))
;

	glFrustum(left, right, bottom, top, zNear, zFar);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenLists); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenLists)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "range");
    {
	GLsizei	range = (int)SvIV(ST(0))
;
	GLuint	RETVAL;
	dXSTARG;

	RETVAL = glGenLists(range);
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAK 1


XS_EUPXS(XS_OpenGL_glGenTextures_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenTextures_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, textures");
    {
	GLint	n = (int)SvIV(ST(0))
;
	void *	textures = INT2PTR(void *,SvIV(ST(1)))
;
#line 908 "lib/OpenGL/V1.xs"
	glGenTextures(n, textures);
#line 2028 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenTextures_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenTextures_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "n, textures");
    {
	GLint	n = (int)SvIV(ST(0))
;
	SV *	textures = ST(1)
;
#line 917 "lib/OpenGL/V1.xs"
	{
	void * textures_s = EL(textures, sizeof(GLuint)*n);
	glGenTextures(n, textures_s);
	}
#line 2050 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGenTextures_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenTextures_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "n");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLint	n = (int)SvIV(ST(0))
;
#line 928 "lib/OpenGL/V1.xs"
	if (n) {
		GLuint * textures = malloc(sizeof(GLuint) * n);
		int i;

		glGenTextures(n, textures);

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

		free(textures);
	}
#line 2080 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}

#endif

XS_EUPXS(XS_OpenGL_glGetDoublev_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetDoublev_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 950 "lib/OpenGL/V1.xs"
	glGetDoublev(pname, params);
#line 2101 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetDoublev_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetDoublev_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 959 "lib/OpenGL/V1.xs"
	{
	void * params_s = EL(params, sizeof(GLdouble) * gl_get_count(pname));
	glGetDoublev(pname, params_s);
	}
#line 2123 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBooleanv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBooleanv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 971 "lib/OpenGL/V1.xs"
	glGetBooleanv(pname, params);
#line 2142 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetBooleanv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBooleanv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 980 "lib/OpenGL/V1.xs"
	{
	void * params_s = EL(params, sizeof(GLboolean) * gl_get_count(pname));
	glGetBooleanv(pname, params_s);
	}
#line 2164 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetIntegerv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetIntegerv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 992 "lib/OpenGL/V1.xs"
	glGetIntegerv(pname, params);
#line 2183 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetIntegerv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetIntegerv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 1001 "lib/OpenGL/V1.xs"
	{
	void * params_s = EL(params, sizeof(GLint) * gl_get_count(pname));
	glGetIntegerv(pname, params_s);
	}
#line 2205 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetFloatv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetFloatv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 1013 "lib/OpenGL/V1.xs"
	glGetFloatv(pname, params);
#line 2224 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetFloatv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetFloatv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 1022 "lib/OpenGL/V1.xs"
	{
	void * params_s = EL(params, sizeof(GLfloat) * gl_get_count(pname));
	glGetFloatv(pname, params_s);
	}
#line 2246 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetDoublev_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetDoublev_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "param");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	param = (int)SvIV(ST(0))
;
#line 1033 "lib/OpenGL/V1.xs"
	{
		GLdouble	ret[MAX_GL_GET_COUNT];
		int n = gl_get_count(param);
		int i;
		glGetDoublev(param, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 2273 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetBooleanv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetBooleanv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "param");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	param = (int)SvIV(ST(0))
;
#line 1049 "lib/OpenGL/V1.xs"
	{
		GLboolean	ret[MAX_GL_GET_COUNT];
		int n = gl_get_count(param);
		int i;
		glGetBooleanv(param, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(ret[i])));
	}
#line 2301 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetIntegerv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetIntegerv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "param");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	param = (int)SvIV(ST(0))
;
#line 1065 "lib/OpenGL/V1.xs"
	{
		GLint	ret[MAX_GL_GET_COUNT];
		int n = gl_get_count(param);
		int i;
		glGetIntegerv(param, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(ret[i])));
	}
#line 2329 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetFloatv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetFloatv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "param");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	param = (int)SvIV(ST(0))
;
#line 1081 "lib/OpenGL/V1.xs"
	{
		GLfloat	ret[MAX_GL_GET_COUNT];
		int n = gl_get_count(param);
		int i;
		glGetFloatv(param, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 2357 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetClipPlane_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetClipPlane_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "plane, eqn");
    {
	GLenum	plane = (int)SvIV(ST(0))
;
	void *	eqn = INT2PTR(void *,SvIV(ST(1)))
;
#line 1098 "lib/OpenGL/V1.xs"
	glGetClipPlane(plane, eqn);
#line 2377 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetClipPlane_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetClipPlane_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "plane, eqn");
    {
	GLenum	plane = (int)SvIV(ST(0))
;
	SV *	eqn = ST(1)
;
#line 1107 "lib/OpenGL/V1.xs"
	{
	GLdouble * eqn_s = EL(eqn, sizeof(GLdouble)*4);
	glGetClipPlane(plane, eqn_s);
	}
#line 2399 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetClipPlane_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetClipPlane_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "plane");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	plane = (int)SvIV(ST(0))
;
#line 1118 "lib/OpenGL/V1.xs"
	{
		int i;
		GLdouble	eqn[4];
		eqn[0] = eqn[1] = eqn[2] = eqn[3] = 0;
		glGetClipPlane(plane, &eqn[0]);
		EXTEND(sp, 4);
		for(i=0;i<4;i++)
			PUSHs(sv_2mortal(newSVnv(eqn[i])));
	}
#line 2426 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


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

	RETVAL = glGetError();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glGetLightfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetLightfv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, p");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	p = INT2PTR(void *,SvIV(ST(2)))
;
#line 1141 "lib/OpenGL/V1.xs"
	glGetLightfv(light, pname, p);
#line 2466 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetLightiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetLightiv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, p");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	p = INT2PTR(void *,SvIV(ST(2)))
;
#line 1151 "lib/OpenGL/V1.xs"
	glGetLightiv(light, pname, p);
#line 2487 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetLightfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetLightfv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, p");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	p = ST(2)
;
#line 1161 "lib/OpenGL/V1.xs"
	{
	void * p_s = EL(p, sizeof(GLfloat)*gl_light_count(pname));
	glGetLightfv(light, pname, p_s);
	}
#line 2511 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetLightiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetLightiv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, p");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	p = ST(2)
;
#line 1174 "lib/OpenGL/V1.xs"
	{
	void * p_s = EL(p, sizeof(GLint)*gl_light_count(pname));
	glGetLightiv(light, pname, p_s);
	}
#line 2535 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetLightfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetLightfv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "light, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 1186 "lib/OpenGL/V1.xs"
	{
		GLfloat	ret[MAX_GL_LIGHT_COUNT];
		int n = gl_light_count(pname);
		int i;
		glGetLightfv(light, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 2564 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetLightiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetLightiv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "light, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 1203 "lib/OpenGL/V1.xs"
	{
		GLint	ret[MAX_GL_LIGHT_COUNT];
		int n = gl_light_count(pname);
		int i;
		glGetLightiv(light, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(ret[i])));
	}
#line 2594 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetMapiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapiv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, query, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	void *	v = INT2PTR(void *,SvIV(ST(2)))
;
#line 1221 "lib/OpenGL/V1.xs"
	glGetMapiv(target, query, (GLint*)v);
#line 2616 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMapfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapfv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, query, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	void *	v = INT2PTR(void *,SvIV(ST(2)))
;
#line 1231 "lib/OpenGL/V1.xs"
	glGetMapfv(target, query, (GLfloat*)v);
#line 2637 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMapdv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapdv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, query, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	void *	v = INT2PTR(void *,SvIV(ST(2)))
;
#line 1241 "lib/OpenGL/V1.xs"
	glGetMapdv(target, query, (GLdouble*)v);
#line 2658 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMapdv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapdv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, query, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	SV *	v = ST(2)
;
#line 1251 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v,
			sizeof(GLdouble)*gl_map_count(target, query));
		glGetMapdv(target, query, v_s);
	}
#line 2683 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMapfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapfv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, query, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	SV *	v = ST(2)
;
#line 1265 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*gl_map_count(target, query));
		glGetMapfv(target, query, v_s);
	}
#line 2707 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMapiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapiv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, query, v");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	SV *	v = ST(2)
;
#line 1278 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*gl_map_count(target, query));
		glGetMapiv(target, query, v_s);
	}
#line 2731 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMapfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapfv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, query");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
#line 1290 "lib/OpenGL/V1.xs"
	{
		GLfloat	ret[MAX_GL_MAP_COUNT];
		int n = gl_map_count(target, query);
		int i;
		glGetMapfv(target, query, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 2760 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetMapdv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapdv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, query");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
#line 1307 "lib/OpenGL/V1.xs"
	{
		GLdouble	ret[MAX_GL_MAP_COUNT];
		int n = gl_map_count(target, query);
		int i;
		glGetMapdv(target, query, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 2790 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetMapiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMapiv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, query");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
#line 1324 "lib/OpenGL/V1.xs"
	{
		GLint	ret[MAX_GL_MAP_COUNT];
		int n = gl_map_count(target, query);
		int i;
		glGetMapiv(target, query, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(ret[i])));
	}
#line 2820 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetMaterialfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMaterialfv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, query, params");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 1342 "lib/OpenGL/V1.xs"
	glGetMaterialfv(face, query, params);
#line 2842 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMaterialiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMaterialiv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, query, params");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 1352 "lib/OpenGL/V1.xs"
	glGetMaterialiv(face, query, params);
#line 2863 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMaterialfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMaterialfv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, query, params");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 1362 "lib/OpenGL/V1.xs"
	{
		GLfloat * params_s = EL(params,
			sizeof(GLfloat)*gl_material_count(query));
		glGetMaterialfv(face, query, params_s);
	}
#line 2888 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMaterialiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMaterialiv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, query, params");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 1376 "lib/OpenGL/V1.xs"
	{
		GLint * params_s = EL(params,
			sizeof(GLfloat)*gl_material_count(query));
		glGetMaterialiv(face, query, params_s);
	}
#line 2913 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetMaterialfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMaterialfv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "face, query");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
#line 1389 "lib/OpenGL/V1.xs"
	{
		GLfloat	ret[MAX_GL_MATERIAL_COUNT];
		int n = gl_material_count(query);
		int i;
		glGetMaterialfv(face, query, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 2942 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetMaterialiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetMaterialiv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "face, query");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	query = (int)SvIV(ST(1))
;
#line 1406 "lib/OpenGL/V1.xs"
	{
		GLint	ret[MAX_GL_MATERIAL_COUNT];
		int n = gl_material_count(query);
		int i;
		glGetMaterialiv(face, query, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(ret[i])));
	}
#line 2972 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetPixelMapfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapfv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "map, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	void *	values = INT2PTR(void *,SvIV(ST(1)))
;
#line 1423 "lib/OpenGL/V1.xs"
	glGetPixelMapfv(map, values);
#line 2992 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPixelMapuiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapuiv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "map, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	void *	values = INT2PTR(void *,SvIV(ST(1)))
;
#line 1432 "lib/OpenGL/V1.xs"
	glGetPixelMapuiv(map, values);
#line 3011 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPixelMapusv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapusv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "map, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	void *	values = INT2PTR(void *,SvIV(ST(1)))
;
#line 1441 "lib/OpenGL/V1.xs"
	glGetPixelMapusv(map, values);
#line 3030 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPixelMapfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapfv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "map, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	SV *	values = ST(1)
;
#line 1450 "lib/OpenGL/V1.xs"
	{
	GLfloat * values_s = EL(values, sizeof(GLfloat)* gl_pixelmap_size(map));
	glGetPixelMapfv(map, values_s);
	}
#line 3052 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPixelMapuiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapuiv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "map, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	SV *	values = ST(1)
;
#line 1462 "lib/OpenGL/V1.xs"
	{
	GLuint * values_s = EL(values, sizeof(GLuint)* gl_pixelmap_size(map));
	glGetPixelMapuiv(map, values_s);
	}
#line 3074 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPixelMapusv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapusv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "map, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	SV *	values = ST(1)
;
#line 1474 "lib/OpenGL/V1.xs"
	{
	GLushort * values_s = EL(values, sizeof(GLushort)* gl_pixelmap_size(map));
	glGetPixelMapusv(map, values_s);
	}
#line 3096 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPixelMapfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapfv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "map");
    {
	GLenum	map = (int)SvIV(ST(0))
;
#line 1485 "lib/OpenGL/V1.xs"
	{
		int count = gl_pixelmap_size(map);
		GLfloat * values;
		int i;

		values = malloc(sizeof(GLfloat) * count);

		glGetPixelMapfv(map, values);

		EXTEND(sp, count);

		for(i=0; i<count; i++)
			PUSHs(sv_2mortal(newSVnv(values[i])));

		free(values);
	}
#line 3128 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPixelMapuiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapuiv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "map");
    {
	GLenum	map = (int)SvIV(ST(0))
;
#line 1508 "lib/OpenGL/V1.xs"
	{
		int count = gl_pixelmap_size(map);
		GLuint * values;
		int i;
		values = malloc(sizeof(GLuint) * count);
		glGetPixelMapuiv(map, values);
		EXTEND(sp, count);
		for(i=0; i<count; i++)
			PUSHs(sv_2mortal(newSViv(values[i])));
		free(values);
	}
#line 3155 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPixelMapusv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPixelMapusv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "map");
    {
	GLenum	map = (int)SvIV(ST(0))
;
#line 1526 "lib/OpenGL/V1.xs"
	{
		int count = gl_pixelmap_size(map);
		GLushort * values;
		int i;
		values = malloc(sizeof(GLushort) * count);
		glGetPixelMapusv(map, values);
		EXTEND(sp, count);
		for(i=0; i<count; i++)
			PUSHs(sv_2mortal(newSViv(values[i])));
		free(values);
	}
#line 3182 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPolygonStipple_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPolygonStipple_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	void *	mask = INT2PTR(void *,SvIV(ST(0)))
;
#line 1544 "lib/OpenGL/V1.xs"
	glGetPolygonStipple(mask);
#line 3199 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPolygonStipple_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPolygonStipple_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	SV *	mask = ST(0)
;
#line 1552 "lib/OpenGL/V1.xs"
	{
	GLubyte * ptr = ELI(mask, 32, 32, GL_COLOR_INDEX, GL_BITMAP, gl_pixelbuffer_unpack);
	glGetPolygonStipple(ptr);
	}
#line 3219 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPolygonStipple_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPolygonStipple_p)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
#line 1562 "lib/OpenGL/V1.xs"
	{
		void * ptr;
		glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
		glPixelStorei(GL_PACK_ROW_LENGTH, 0);
		glPixelStorei(GL_PACK_ALIGNMENT, 1);
		ptr = allocate_image_ST(32, 32, 1, GL_COLOR_INDEX, GL_BITMAP, 0);
		glGetPolygonStipple(ptr);
		sp = unpack_image_ST(sp, ptr, 32, 32, 1,
			GL_COLOR_INDEX, GL_BITMAP, 0);
		free(ptr);
		glPopClientAttrib();
	}
#line 3247 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAL 1


XS_EUPXS(XS_OpenGL_glGetPointerv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPointerv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 1584 "lib/OpenGL/V1.xs"
	glGetPointerv(pname,&params);
#line 3270 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPointerv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPointerv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 1593 "lib/OpenGL/V1.xs"
	{
		void ** params_s = EL(params, sizeof(void*));
		glGetPointerv(pname, params_s);
	}
#line 3292 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetPointerv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetPointerv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "pname");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	RETVAL;
	dXSTARG;
#line 1604 "lib/OpenGL/V1.xs"
	glGetPointerv(pname, &RETVAL);
#line 3311 "lib/OpenGL/V1.c"
	XSprePUSH;
	PUSHi(PTR2IV(RETVAL));
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_OpenGL_glGetString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetString)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "name");
    {
	GLenum	name = (int)SvIV(ST(0))
;
	SV *	RETVAL;
#line 1616 "lib/OpenGL/V1.xs"
	{
		char * c = (char*)glGetString(name);
		if (c)
			RETVAL = newSVpv(c, 0);
		else
			RETVAL = newSVsv(&PL_sv_undef);
	}
#line 3338 "lib/OpenGL/V1.c"
	RETVAL = sv_2mortal(RETVAL);
	ST(0) = RETVAL;
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glGetTexEnvfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexEnvfv_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 1634 "lib/OpenGL/V1.xs"
	glGetTexEnvfv(target, pname, params);
#line 3361 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexEnviv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexEnviv_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 1644 "lib/OpenGL/V1.xs"
	glGetTexEnviv(target, pname, params);
#line 3382 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexEnvfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexEnvfv_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 1654 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params, sizeof(GLfloat) * gl_texenv_count(pname));
	glGetTexEnvfv(target, pname, params_s);
	}
#line 3406 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexEnviv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexEnviv_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 1667 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params, sizeof(GLint) * gl_texenv_count(pname));
	glGetTexEnviv(target, pname, params_s);
	}
#line 3430 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexEnvfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexEnvfv_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 1679 "lib/OpenGL/V1.xs"
	{
		GLfloat	ret[MAX_GL_TEXENV_COUNT];
		int n = gl_texenv_count(pname);
		int i;
		glGetTexEnvfv(target, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 3459 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexEnviv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexEnviv_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 1696 "lib/OpenGL/V1.xs"
	{
		GLint	ret[MAX_GL_TEXENV_COUNT];
		int n = gl_texenv_count(pname);
		int i;
		glGetTexEnviv(target, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(ret[i])));
	}
#line 3489 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexGenfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGenfv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "coord, pname, params");
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 1714 "lib/OpenGL/V1.xs"
	glGetTexGenfv(coord, pname, params);
#line 3511 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexGendv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGendv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "coord, pname, params");
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 1724 "lib/OpenGL/V1.xs"
	glGetTexGendv(coord, pname, params);
#line 3532 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexGeniv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGeniv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "coord, pname, params");
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 1734 "lib/OpenGL/V1.xs"
	glGetTexGeniv(coord, pname, params);
#line 3553 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexGendv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGendv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "coord, pname, params");
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 1744 "lib/OpenGL/V1.xs"
	{
	GLdouble * params_s = EL(params, sizeof(GLdouble)*gl_texgen_count(pname));
	glGetTexGendv(coord, pname, params_s);
	}
#line 3577 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexGenfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGenfv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "coord, pname, params");
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 1757 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params, sizeof(GLfloat)*gl_texgen_count(pname));
	glGetTexGenfv(coord, pname, params_s);
	}
#line 3601 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexGeniv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGeniv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "coord, pname, params");
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 1770 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params, sizeof(GLint)*gl_texgen_count(pname));
	glGetTexGeniv(coord, pname, params_s);
	}
#line 3625 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexGenfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGenfv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "coord, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 1782 "lib/OpenGL/V1.xs"
	{
		GLfloat	ret[MAX_GL_TEXGEN_COUNT];
		int n = gl_texgen_count(pname);
		int i;
		glGetTexGenfv(coord, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 3654 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexGendv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGendv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "coord, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 1799 "lib/OpenGL/V1.xs"
	{
		GLdouble	ret[MAX_GL_TEXGEN_COUNT];
		int n = gl_texgen_count(pname);
		int i;
		glGetTexGendv(coord, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 3684 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexGeniv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexGeniv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "coord, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 1816 "lib/OpenGL/V1.xs"
	{
		GLint	ret[MAX_GL_TEXGEN_COUNT];
		int n = gl_texgen_count(pname);
		int i;
		glGetTexGeniv(coord, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(ret[i])));
	}
#line 3714 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexImage_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexImage_c)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, level, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	format = (int)SvIV(ST(2))
;
	GLenum	type = (int)SvIV(ST(3))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(4)))
;
#line 1836 "lib/OpenGL/V1.xs"
	glGetTexImage(target, level, format, type, pixels);
#line 3740 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexImage_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexImage_s)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "target, level, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	format = (int)SvIV(ST(2))
;
	GLenum	type = (int)SvIV(ST(3))
;
	SV *	pixels = ST(4)
;
#line 1848 "lib/OpenGL/V1.xs"
	{
		GLint width, height;
		GLvoid * ptr;

		glGetTexLevelParameteriv(target, level,
			GL_TEXTURE_WIDTH, &width);
		glGetTexLevelParameteriv(target, level,
			GL_TEXTURE_HEIGHT, &height);

		ptr = ELI(pixels, width, height, format, type,
			gl_pixelbuffer_unpack);
		glGetTexImage(target, level, format, type, pixels);
	}
#line 3777 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexImage_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexImage_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, level, format, type");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	format = (int)SvIV(ST(2))
;
	GLenum	type = (int)SvIV(ST(3))
;
#line 1871 "lib/OpenGL/V1.xs"
	{
		GLint width, height;
		GLvoid * ptr;

		glGetTexLevelParameteriv(target, level,
			GL_TEXTURE_WIDTH, &width);
		glGetTexLevelParameteriv(target, level,
			GL_TEXTURE_HEIGHT, &height);

		glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
		glPixelStorei(GL_PACK_ROW_LENGTH, 0);
		glPixelStorei(GL_PACK_ALIGNMENT, 1);

		ptr = allocate_image_ST(width, height, 1, format, type, 0);
		glGetTexImage(target, level, format, type, ptr);
		sp = unpack_image_ST(sp, ptr, width, height, 1, format, type, 0);

		free(ptr);
		glPopClientAttrib();
	}
#line 3821 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexLevelParameterfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexLevelParameterfv_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, level, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
	void *	params = INT2PTR(void *,SvIV(ST(3)))
;
#line 1901 "lib/OpenGL/V1.xs"
	glGetTexLevelParameterfv(target, level, pname, params);
#line 3845 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexLevelParameteriv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexLevelParameteriv_c)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, level, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
	void *	params = INT2PTR(void *,SvIV(ST(3)))
;
#line 1912 "lib/OpenGL/V1.xs"
	glGetTexLevelParameteriv(target, level, pname, params);
#line 3868 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexLevelParameterfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexLevelParameterfv_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, level, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
	SV *	params = ST(3)
;
#line 1923 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params, sizeof(GLfloat)*1);
	glGetTexLevelParameterfv(target, level, pname, params_s);
	}
#line 3894 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexLevelParameteriv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexLevelParameteriv_s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "target, level, pname, params");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
	SV *	params = ST(3)
;
#line 1937 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params, sizeof(GLint)*1);
	glGetTexLevelParameteriv(target, level, pname, params_s);
	}
#line 3920 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexLevelParameterfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexLevelParameterfv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, level, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
#line 1950 "lib/OpenGL/V1.xs"
	{
		GLfloat	ret;
		glGetTexLevelParameterfv(target, level, pname, &ret);
		PUSHs(sv_2mortal(newSVnv(ret)));
	}
#line 3947 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexLevelParameteriv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexLevelParameteriv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, level, pname");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	pname = (int)SvIV(ST(2))
;
#line 1964 "lib/OpenGL/V1.xs"
	{
		GLint	ret;
		glGetTexLevelParameteriv(target, level, pname, &ret);
		PUSHs(sv_2mortal(newSViv(ret)));
	}
#line 3975 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexParameterfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexParameterfv_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 1978 "lib/OpenGL/V1.xs"
	glGetTexParameterfv(target, pname, params);
#line 3997 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexParameteriv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexParameteriv_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 1988 "lib/OpenGL/V1.xs"
	glGetTexParameteriv(target, pname, params);
#line 4018 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexParameterfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexParameterfv_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 1998 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params,
		sizeof(GLfloat)*gl_texparameter_count(pname));
	glGetTexParameterfv(target, pname, params_s);
	}
#line 4043 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexParameteriv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexParameteriv_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 2012 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params,
		sizeof(GLint)*gl_texparameter_count(pname));
	glGetTexParameteriv(target, pname, params_s);
	}
#line 4068 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glGetTexParameterfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexParameterfv_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 2025 "lib/OpenGL/V1.xs"
	{
		GLfloat	ret[MAX_GL_TEXPARAMETER_COUNT];
		int n = gl_texparameter_count(pname);
		int i;
		glGetTexParameterfv(target, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSVnv(ret[i])));
	}
#line 4097 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetTexParameteriv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetTexParameteriv_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 2042 "lib/OpenGL/V1.xs"
	{
		GLint	ret[MAX_GL_TEXPARAMETER_COUNT];
		int n = gl_texparameter_count(pname);
		int i;
		glGetTexParameteriv(target, pname, &ret[0]);
		EXTEND(sp, n);
		for(i=0;i<n;i++)
			PUSHs(sv_2mortal(newSViv(ret[i])));
	}
#line 4127 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glHint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glHint)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, mode");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	mode = (int)SvIV(ST(1))
;

	glHint(target, mode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexd); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexd)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "c");
    {
	GLdouble	c = (double)SvNV(ST(0))
;

	glIndexd(c);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexi); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexi)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "c");
    {
	GLint	c = (int)SvIV(ST(0))
;

	glIndexi(c);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glIndexMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIndexMask)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	GLuint	mask = (unsigned int)SvUV(ST(0))
;

	glIndexMask(mask);
    }
    XSRETURN_EMPTY;
}


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

	glInitNames();
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAM 1


XS_EUPXS(XS_OpenGL_glInterleavedArrays_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glInterleavedArrays_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "format, stride, pointer");
    {
	GLenum	format = (int)SvIV(ST(0))
;
	GLsizei	stride = (int)SvIV(ST(1))
;
	void *	pointer = INT2PTR(void *,SvIV(ST(2)))
;
#line 2093 "lib/OpenGL/V1.xs"
	glInterleavedArrays(format, stride, pointer);
#line 4232 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glIsEnabled); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsEnabled)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "cap");
    {
	GLenum	cap = (int)SvIV(ST(0))
;
	GLboolean	RETVAL;

	RETVAL = glIsEnabled(cap);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glIsList); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsList)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "list");
    {
	GLuint	list = (unsigned int)SvUV(ST(0))
;
	GLboolean	RETVAL;

	RETVAL = glIsList(list);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAN 1


XS_EUPXS(XS_OpenGL_glIsTexture); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glIsTexture)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "list");
    {
	GLuint	list = (unsigned int)SvUV(ST(0))
;
	GLboolean	RETVAL;

	RETVAL = glIsTexture(list);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_OpenGL_glLightf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightf)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, param");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLfloat	param = (float)SvNV(ST(2))
;

	glLightf(light, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLighti); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLighti)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, param");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLint	param = (int)SvIV(ST(2))
;

	glLighti(light, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightfv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, params");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 2144 "lib/OpenGL/V1.xs"
	glLightfv(light, pname, params);
#line 4352 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightiv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, params");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 2154 "lib/OpenGL/V1.xs"
	glLightiv(light, pname, params);
#line 4373 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightfv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, params");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 2164 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params, sizeof(GLfloat)*gl_light_count(pname));
	glLightfv(light, pname, params_s);
	}
#line 4397 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightiv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "light, pname, params");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 2177 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params, sizeof(GLint)*gl_light_count(pname));
	glLightiv(light, pname, params_s);
	}
#line 4421 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightfv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "light, pname, ...");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 2189 "lib/OpenGL/V1.xs"
	{
		GLfloat p[MAX_GL_LIGHT_COUNT];
		int i;
		if ((items-2) != gl_light_count(pname))
			croak("Incorrect number of arguments");
		for(i=2;i<items;i++)
			p[i-2] = (GLfloat)SvNV(ST(i));
		glLightfv(light, pname, &p[0]);
	}
#line 4448 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightiv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "light, pname, ...");
    {
	GLenum	light = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 2206 "lib/OpenGL/V1.xs"
	{
		GLint p[MAX_GL_LIGHT_COUNT];
		int i;
		if ((items-2) != gl_light_count(pname))
			croak("Incorrect number of arguments");
		for(i=2;i<items;i++)
			p[i-2] = SvIV(ST(i));
		glLightiv(light, pname, &p[0]);
	}
#line 4475 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightModelf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightModelf)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLfloat	param = (float)SvNV(ST(1))
;

	glLightModelf(pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightModeli); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightModeli)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLint	param = (int)SvIV(ST(1))
;

	glLightModeli(pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightModeliv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightModeliv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 2237 "lib/OpenGL/V1.xs"
	glLightModeliv(pname, params);
#line 4530 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightModelfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightModelfv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 2246 "lib/OpenGL/V1.xs"
	glLightModelfv(pname, params);
#line 4549 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightModeliv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightModeliv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 2255 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params, sizeof(GLint)*gl_lightmodel_count(pname));
	glLightModeliv(pname, params_s);
	}
#line 4571 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightModelfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightModelfv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 2267 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params,
		sizeof(GLfloat)*gl_lightmodel_count(pname));
	glLightModelfv(pname, params_s);
	}
#line 4594 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightModelfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightModelfv_p)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "pname, ...");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
#line 2279 "lib/OpenGL/V1.xs"
	{
		GLfloat p[MAX_GL_LIGHTMODEL_COUNT];
		int i;
		if ((items-1) != gl_lightmodel_count(pname))
			croak("Incorrect number of arguments");
		for(i=1;i<items;i++)
			p[i-1] = (GLfloat)SvNV(ST(i));
		glLightModelfv(pname, &p[0]);
	}
#line 4619 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLightModeliv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLightModeliv_p)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "pname, ...");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
#line 2295 "lib/OpenGL/V1.xs"
	{
		GLint p[MAX_GL_LIGHTMODEL_COUNT];
		int i;
		if ((items-1) != gl_lightmodel_count(pname))
			croak("Incorrect number of arguments");
		for(i=1;i<items;i++)
			p[i-1] = SvIV(ST(i));
		glLightModeliv(pname, &p[0]);
	}
#line 4644 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLineStipple); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLineStipple)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "factor, pattern");
    {
	GLint	factor = (int)SvIV(ST(0))
;
	GLushort	pattern = (unsigned short)SvUV(ST(1))
;

	glLineStipple(factor, pattern);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLineWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLineWidth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "width");
    {
	GLfloat	width = (float)SvNV(ST(0))
;

	glLineWidth(width);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glListBase); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glListBase)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "base");
    {
	GLuint	base = (unsigned int)SvUV(ST(0))
;

	glListBase(base);
    }
    XSRETURN_EMPTY;
}


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

	glLoadIdentity();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLoadMatrixf_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLoadMatrixf_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "m");
    {
	void *	m = INT2PTR(void *,SvIV(ST(0)))
;
#line 2335 "lib/OpenGL/V1.xs"
	glLoadMatrixf(m);
#line 4725 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLoadMatrixd_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLoadMatrixd_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "m");
    {
	void *	m = INT2PTR(void *,SvIV(ST(0)))
;
#line 2343 "lib/OpenGL/V1.xs"
	glLoadMatrixd(m);
#line 4742 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLoadMatrixf_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLoadMatrixf_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "m");
    {
	SV *	m = ST(0)
;
#line 2351 "lib/OpenGL/V1.xs"
	{
	GLfloat * m_s = EL(m, sizeof(GLfloat)*16);
	glLoadMatrixf(m_s);
	}
#line 4762 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLoadMatrixd_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLoadMatrixd_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "m");
    {
	SV *	m = ST(0)
;
#line 2362 "lib/OpenGL/V1.xs"
	{
	GLdouble * m_s = EL(m, sizeof(GLdouble)*16);
	glLoadMatrixd(m_s);
	}
#line 4782 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLoadMatrixd_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLoadMatrixd_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 2372 "lib/OpenGL/V1.xs"
	{
		GLdouble m[16];
		int i;
		if (items != 16)
			croak("Incorrect number of arguments");
		for (i=0;i<16;i++)
			m[i] = SvNV(ST(i));
		glLoadMatrixd(&m[0]);
	}
#line 4805 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLoadMatrixf_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLoadMatrixf_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 2387 "lib/OpenGL/V1.xs"
	{
		GLfloat m[16];
		int i;
		if (items != 16)
			croak("Incorrect number of arguments");
		for (i=0;i<16;i++)
			m[i] = (GLfloat)SvNV(ST(i));
		glLoadMatrixf(&m[0]);
	}
#line 4828 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLoadName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLoadName)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "name");
    {
	GLuint	name = (unsigned int)SvUV(ST(0))
;

	glLoadName(name);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glLogicOp); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glLogicOp)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "opcode");
    {
	GLenum	opcode = (int)SvIV(ST(0))
;

	glLogicOp(opcode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap1d_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap1d_c)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "target, u1, u2, stride, order, points");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	u1 = (double)SvNV(ST(1))
;
	GLdouble	u2 = (double)SvNV(ST(2))
;
	GLint	stride = (int)SvIV(ST(3))
;
	GLint	order = (int)SvIV(ST(4))
;
	void *	points = INT2PTR(void *,SvIV(ST(5)))
;
#line 2420 "lib/OpenGL/V1.xs"
	glMap1d(target, u1, u2, stride, order, points);
#line 4887 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap1f_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap1f_c)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "target, u1, u2, stride, order, points");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	u1 = (float)SvNV(ST(1))
;
	GLfloat	u2 = (float)SvNV(ST(2))
;
	GLint	stride = (int)SvIV(ST(3))
;
	GLint	order = (int)SvIV(ST(4))
;
	void *	points = INT2PTR(void *,SvIV(ST(5)))
;
#line 2433 "lib/OpenGL/V1.xs"
	glMap1f(target, u1, u2, stride, order, points);
#line 4914 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap1d_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap1d_s)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "target, u1, u2, stride, order, points");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	u1 = (double)SvNV(ST(1))
;
	GLdouble	u2 = (double)SvNV(ST(2))
;
	GLint	stride = (int)SvIV(ST(3))
;
	GLint	order = (int)SvIV(ST(4))
;
	SV *	points = ST(5)
;
#line 2446 "lib/OpenGL/V1.xs"
	{
	GLdouble * points_s = EL(points, 0 /*FIXME*/);
	glMap1d(target, u1, u2, stride, order, points_s);
	}
#line 4944 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap1f_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap1f_s)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "target, u1, u2, stride, order, points");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	u1 = (float)SvNV(ST(1))
;
	GLfloat	u2 = (float)SvNV(ST(2))
;
	GLint	stride = (int)SvIV(ST(3))
;
	GLint	order = (int)SvIV(ST(4))
;
	SV *	points = ST(5)
;
#line 2462 "lib/OpenGL/V1.xs"
	{
	GLfloat * points_s = EL(points, 0 /*FIXME*/);
	glMap1f(target, u1, u2, stride, order, points_s);
	}
#line 4974 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap1d_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap1d_p)
{
    dVAR; dXSARGS;
    if (items < 3)
       croak_xs_usage(cv,  "target, u1, u2, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	u1 = (double)SvNV(ST(1))
;
	GLdouble	u2 = (double)SvNV(ST(2))
;
#line 2476 "lib/OpenGL/V1.xs"
	{
		int count = items-3;
		GLint order = (items - 3) / gl_map_count(target, GL_COEFF);
		GLdouble * points = malloc(sizeof(GLdouble) * (count+1));
		int i;
		for (i=0;i<count;i++)
			points[i] = SvNV(ST(i+3));
		glMap1d(target, u1, u2, 0, order, points);
		free(points);
	}
#line 5004 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap1f_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap1f_p)
{
    dVAR; dXSARGS;
    if (items < 3)
       croak_xs_usage(cv,  "target, u1, u2, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	u1 = (float)SvNV(ST(1))
;
	GLfloat	u2 = (float)SvNV(ST(2))
;
#line 2496 "lib/OpenGL/V1.xs"
	{
		int count = items-3;
		GLint order = (items - 3) / gl_map_count(target, GL_COEFF);
		GLfloat * points = malloc(sizeof(GLfloat) * (count+1));
		int i;
		for (i=0;i<count;i++)
			points[i] = (GLfloat)SvNV(ST(i+3));
		glMap1f(target, u1, u2, 0, order, points);
		free(points);
	}
#line 5034 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap2d_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap2d_c)
{
    dVAR; dXSARGS;
    if (items != 10)
       croak_xs_usage(cv,  "target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	u1 = (double)SvNV(ST(1))
;
	GLdouble	u2 = (double)SvNV(ST(2))
;
	GLint	ustride = (int)SvIV(ST(3))
;
	GLint	uorder = (int)SvIV(ST(4))
;
	GLdouble	v1 = (double)SvNV(ST(5))
;
	GLdouble	v2 = (double)SvNV(ST(6))
;
	GLint	vstride = (int)SvIV(ST(7))
;
	GLint	vorder = (int)SvIV(ST(8))
;
	void *	points = INT2PTR(void *,SvIV(ST(9)))
;
#line 2522 "lib/OpenGL/V1.xs"
	glMap2d(target, u1, u2, ustride, uorder, v1, v2,
		vstride, vorder, points);
#line 5070 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap2f_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap2f_c)
{
    dVAR; dXSARGS;
    if (items != 10)
       croak_xs_usage(cv,  "target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	u1 = (float)SvNV(ST(1))
;
	GLfloat	u2 = (float)SvNV(ST(2))
;
	GLint	ustride = (int)SvIV(ST(3))
;
	GLint	uorder = (int)SvIV(ST(4))
;
	GLfloat	v1 = (float)SvNV(ST(5))
;
	GLfloat	v2 = (float)SvNV(ST(6))
;
	GLint	vstride = (int)SvIV(ST(7))
;
	GLint	vorder = (int)SvIV(ST(8))
;
	void *	points = INT2PTR(void *,SvIV(ST(9)))
;
#line 2540 "lib/OpenGL/V1.xs"
	glMap2f(target, u1, u2, ustride, uorder, v1, v2,
		vstride, vorder, points);
#line 5106 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap2d_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap2d_s)
{
    dVAR; dXSARGS;
    if (items != 10)
       croak_xs_usage(cv,  "target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	u1 = (double)SvNV(ST(1))
;
	GLdouble	u2 = (double)SvNV(ST(2))
;
	GLint	ustride = (int)SvIV(ST(3))
;
	GLint	uorder = (int)SvIV(ST(4))
;
	GLdouble	v1 = (double)SvNV(ST(5))
;
	GLdouble	v2 = (double)SvNV(ST(6))
;
	GLint	vstride = (int)SvIV(ST(7))
;
	GLint	vorder = (int)SvIV(ST(8))
;
	SV *	points = ST(9)
;
#line 2558 "lib/OpenGL/V1.xs"
	{
	GLdouble * points_s = EL(points, 0 /*FIXME*/);
	glMap2d(target, u1, u2, ustride, uorder, v1, v2,
		vstride, vorder, points_s);
	}
#line 5145 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap2f_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap2f_s)
{
    dVAR; dXSARGS;
    if (items != 10)
       croak_xs_usage(cv,  "target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	u1 = (float)SvNV(ST(1))
;
	GLfloat	u2 = (float)SvNV(ST(2))
;
	GLint	ustride = (int)SvIV(ST(3))
;
	GLint	uorder = (int)SvIV(ST(4))
;
	GLfloat	v1 = (float)SvNV(ST(5))
;
	GLfloat	v2 = (float)SvNV(ST(6))
;
	GLint	vstride = (int)SvIV(ST(7))
;
	GLint	vorder = (int)SvIV(ST(8))
;
	SV *	points = ST(9)
;
#line 2579 "lib/OpenGL/V1.xs"
	{
	GLfloat * points_s = EL(points, 0 /*FIXME*/);
	glMap2f(target, u1, u2, ustride, uorder, v1, v2,
		vstride, vorder, points_s);
	}
#line 5184 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap2d_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap2d_p)
{
    dVAR; dXSARGS;
    if (items < 6)
       croak_xs_usage(cv,  "target, u1, u2, uorder, v1, v2, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLdouble	u1 = (double)SvNV(ST(1))
;
	GLdouble	u2 = (double)SvNV(ST(2))
;
	GLint	uorder = (int)SvIV(ST(3))
;
	GLdouble	v1 = (double)SvNV(ST(4))
;
	GLdouble	v2 = (double)SvNV(ST(5))
;
#line 2597 "lib/OpenGL/V1.xs"
	{
		int count = items-6;
		GLint vorder = (count / uorder) / gl_map_count(target, GL_COEFF);
		GLdouble * points = malloc(sizeof(GLdouble) * (count+1));
		int i;
		for (i=0;i<count;i++)
			points[i] = SvNV(ST(i+6));
		glMap2d(target, u1, u2, 0, uorder, v1, v2, 0, vorder, points);
		free(points);
	}
#line 5220 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMap2f_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMap2f_p)
{
    dVAR; dXSARGS;
    if (items < 6)
       croak_xs_usage(cv,  "target, u1, u2, uorder, v1, v2, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLfloat	u1 = (float)SvNV(ST(1))
;
	GLfloat	u2 = (float)SvNV(ST(2))
;
	GLint	uorder = (int)SvIV(ST(3))
;
	GLfloat	v1 = (float)SvNV(ST(4))
;
	GLfloat	v2 = (float)SvNV(ST(5))
;
#line 2620 "lib/OpenGL/V1.xs"
	{
		int count = items-6;
		GLint vorder = (count / uorder) / gl_map_count(target, GL_COEFF);
		GLfloat * points = malloc(sizeof(GLfloat) * (count+1));
		int i;
		for (i=0;i<count;i++)
			points[i] = (GLfloat)SvNV(ST(i+6));
		glMap2f(target, u1, u2, 0, uorder, v1, v2, 0, vorder, points);
		free(points);
	}
#line 5256 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMapGrid1d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMapGrid1d)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "un, u1, u2");
    {
	GLint	un = (int)SvIV(ST(0))
;
	GLdouble	u1 = (double)SvNV(ST(1))
;
	GLdouble	u2 = (double)SvNV(ST(2))
;

	glMapGrid1d(un, u1, u2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMapGrid1f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMapGrid1f)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "un, u1, u2");
    {
	GLint	un = (int)SvIV(ST(0))
;
	GLfloat	u1 = (float)SvNV(ST(1))
;
	GLfloat	u2 = (float)SvNV(ST(2))
;

	glMapGrid1f(un, u1, u2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMapGrid2d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMapGrid2d)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "un, u1, u2, vn, v1, v2");
    {
	GLint	un = (int)SvIV(ST(0))
;
	GLdouble	u1 = (double)SvNV(ST(1))
;
	GLdouble	u2 = (double)SvNV(ST(2))
;
	GLint	vn = (int)SvIV(ST(3))
;
	GLdouble	v1 = (double)SvNV(ST(4))
;
	GLdouble	v2 = (double)SvNV(ST(5))
;

	glMapGrid2d(un, u1, u2, vn, v1, v2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMapGrid2f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMapGrid2f)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "un, u1, u2, vn, v1, v2");
    {
	GLint	un = (int)SvIV(ST(0))
;
	GLfloat	u1 = (float)SvNV(ST(1))
;
	GLfloat	u2 = (float)SvNV(ST(2))
;
	GLint	vn = (int)SvIV(ST(3))
;
	GLfloat	v1 = (float)SvNV(ST(4))
;
	GLfloat	v2 = (float)SvNV(ST(5))
;

	glMapGrid2f(un, u1, u2, vn, v1, v2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMaterialf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMaterialf)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, pname, param");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLfloat	param = (float)SvNV(ST(2))
;

	glMaterialf(face, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMateriali); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMateriali)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, pname, param");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLint	param = (int)SvIV(ST(2))
;

	glMateriali(face, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMaterialfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMaterialfv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, pname, param");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	param = INT2PTR(void *,SvIV(ST(2)))
;
#line 2693 "lib/OpenGL/V1.xs"
	glMaterialfv(face, pname, param);
#line 5409 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMaterialiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMaterialiv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, pname, param");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	param = INT2PTR(void *,SvIV(ST(2)))
;
#line 2703 "lib/OpenGL/V1.xs"
	glMaterialiv(face, pname, param);
#line 5430 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMaterialfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMaterialfv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, pname, param");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	param = ST(2)
;
#line 2713 "lib/OpenGL/V1.xs"
	{
	GLfloat * param_s = EL(param, sizeof(GLfloat)*gl_material_count(pname));
	glMaterialfv(face, pname, param_s);
	}
#line 5454 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMaterialiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMaterialiv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "face, pname, param");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	param = ST(2)
;
#line 2726 "lib/OpenGL/V1.xs"
	{
	GLint * param_s = EL(param, sizeof(GLint)*gl_material_count(pname));
	glMaterialiv(face, pname, param_s);
	}
#line 5478 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMaterialfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMaterialfv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "face, pname, ...");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 2738 "lib/OpenGL/V1.xs"
	{
		GLfloat p[MAX_GL_MATERIAL_COUNT];
		int i;
		if ((items-2) != gl_material_count(pname))
			croak("Incorrect number of arguments");
		for(i=2;i<items;i++)
			p[i-2] = (GLfloat)SvNV(ST(i));
		glMaterialfv(face, pname, &p[0]);
	}
#line 5505 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMaterialiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMaterialiv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "face, pname, ...");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 2755 "lib/OpenGL/V1.xs"
	{
		GLint p[MAX_GL_MATERIAL_COUNT];
		int i;
		if ((items-2) != gl_material_count(pname))
			croak("Incorrect number of arguments");
		for(i=2;i<items;i++)
			p[i-2] = SvIV(ST(i));
		glMaterialiv(face, pname, &p[0]);
	}
#line 5532 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMatrixMode); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMatrixMode)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;

	glMatrixMode(mode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultMatrixd_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultMatrixd_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 2776 "lib/OpenGL/V1.xs"
	{
		GLdouble m[16];
		int i;
		if (items != 16)
			croak("Incorrect number of arguments");
		for (i=0;i<16;i++)
			m[i] = SvNV(ST(i));
		glMultMatrixd(&m[0]);
	}
#line 5571 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glMultMatrixf_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glMultMatrixf_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 2791 "lib/OpenGL/V1.xs"
	{
		GLfloat m[16];
		int i;
		if (items != 16)
			croak("Incorrect number of arguments");
		for (i=0;i<16;i++)
			m[i] = (GLfloat)SvNV(ST(i));
		glMultMatrixf(&m[0]);
	}
#line 5594 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNewList); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNewList)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "list, mode");
    {
	GLuint	list = (unsigned int)SvUV(ST(0))
;
	GLenum	mode = (int)SvIV(ST(1))
;

	glNewList(list, mode);
    }
    XSRETURN_EMPTY;
}


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

	glEndList();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glOrtho); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glOrtho)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "left, right, bottom, top, zNear, zFar");
    {
	GLdouble	left = (double)SvNV(ST(0))
;
	GLdouble	right = (double)SvNV(ST(1))
;
	GLdouble	bottom = (double)SvNV(ST(2))
;
	GLdouble	top = (double)SvNV(ST(3))
;
	GLdouble	zNear = (double)SvNV(ST(4))
;
	GLdouble	zFar = (double)SvNV(ST(5))
;

	glOrtho(left, right, bottom, top, zNear, zFar);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPassThrough); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPassThrough)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "token");
    {
	GLfloat	token = (float)SvNV(ST(0))
;

	glPassThrough(token);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapfv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "map, mapsize, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	GLsizei	mapsize = (int)SvIV(ST(1))
;
	void *	values = INT2PTR(void *,SvIV(ST(2)))
;
#line 2839 "lib/OpenGL/V1.xs"
	glPixelMapfv(map, mapsize, values);
#line 5689 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapuiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapuiv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "map, mapsize, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	GLsizei	mapsize = (int)SvIV(ST(1))
;
	void *	values = INT2PTR(void *,SvIV(ST(2)))
;
#line 2849 "lib/OpenGL/V1.xs"
	glPixelMapuiv(map, mapsize, values);
#line 5710 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapusv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapusv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "map, mapsize, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	GLsizei	mapsize = (int)SvIV(ST(1))
;
	void *	values = INT2PTR(void *,SvIV(ST(2)))
;
#line 2859 "lib/OpenGL/V1.xs"
	glPixelMapusv(map, mapsize, values);
#line 5731 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapfv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "map, mapsize, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	GLsizei	mapsize = (int)SvIV(ST(1))
;
	SV *	values = ST(2)
;
#line 2869 "lib/OpenGL/V1.xs"
	{
	GLfloat * values_s = EL(values, sizeof(GLfloat)*mapsize);
	glPixelMapfv(map, mapsize, values_s);
	}
#line 5755 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapuiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapuiv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "map, mapsize, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	GLsizei	mapsize = (int)SvIV(ST(1))
;
	SV *	values = ST(2)
;
#line 2882 "lib/OpenGL/V1.xs"
	{
	GLuint * values_s = EL(values, sizeof(GLuint)*mapsize);
	glPixelMapuiv(map, mapsize, values_s);
	}
#line 5779 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapusv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapusv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "map, mapsize, values");
    {
	GLenum	map = (int)SvIV(ST(0))
;
	GLsizei	mapsize = (int)SvIV(ST(1))
;
	SV *	values = ST(2)
;
#line 2895 "lib/OpenGL/V1.xs"
	{
	GLushort * values_s = EL(values, sizeof(GLushort)*mapsize);
	glPixelMapusv(map, mapsize, values_s);
	}
#line 5803 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapfv_p)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "map, ...");
    {
	GLenum	map = (int)SvIV(ST(0))
;
#line 2906 "lib/OpenGL/V1.xs"
	{
		GLint mapsize = items-1;
		GLfloat * values;
		int i;
		values = malloc(sizeof(GLfloat) * (mapsize+1));
		for (i=0;i<mapsize;i++)
			values[i] = (GLfloat)SvNV(ST(i+1));
		glPixelMapfv(map, mapsize, values);
		free(values);
	}
#line 5829 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapuiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapuiv_p)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "map, ...");
    {
	GLenum	map = (int)SvIV(ST(0))
;
#line 2923 "lib/OpenGL/V1.xs"
	{
		GLint mapsize = items-1;
		GLuint * values;
		int i;
		values = malloc(sizeof(GLuint) * (mapsize+1));
		for (i=0;i<mapsize;i++)
			values[i] = SvIV(ST(i+1));
		glPixelMapuiv(map, mapsize, values);
		free(values);
	}
#line 5855 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelMapusv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelMapusv_p)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "map, ...");
    {
	GLenum	map = (int)SvIV(ST(0))
;
#line 2940 "lib/OpenGL/V1.xs"
	{
		GLint mapsize = items-1;
		GLushort * values;
		int i;
		values = malloc(sizeof(GLushort) * (mapsize+1));
		for (i=0;i<mapsize;i++)
			values[i] = (GLushort)SvIV(ST(i+1));
		glPixelMapusv(map, mapsize, values);
		free(values);
	}
#line 5881 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelStoref); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelStoref)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLfloat	param = (float)SvNV(ST(1))
;

	glPixelStoref(pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelStorei); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelStorei)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLint	param = (int)SvIV(ST(1))
;

	glPixelStorei(pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelTransferf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelTransferf)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLfloat	param = (float)SvNV(ST(1))
;

	glPixelTransferf(pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelTransferi); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelTransferi)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLint	param = (int)SvIV(ST(1))
;

	glPixelTransferi(pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPixelZoom); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPixelZoom)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "xfactor, yfactor");
    {
	GLfloat	xfactor = (float)SvNV(ST(0))
;
	GLfloat	yfactor = (float)SvNV(ST(1))
;

	glPixelZoom(xfactor, yfactor);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPointSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPointSize)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "size");
    {
	GLfloat	size = (float)SvNV(ST(0))
;

	glPointSize(size);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPolygonMode); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPolygonMode)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "face, mode");
    {
	GLenum	face = (int)SvIV(ST(0))
;
	GLenum	mode = (int)SvIV(ST(1))
;

	glPolygonMode(face, mode);
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAO 1


XS_EUPXS(XS_OpenGL_glPolygonOffset); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPolygonOffset)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "factor, units");
    {
	GLfloat	factor = (float)SvNV(ST(0))
;
	GLfloat	units = (float)SvNV(ST(1))
;

	glPolygonOffset(factor, units);
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glPolygonStipple_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPolygonStipple_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	void *	mask = INT2PTR(void *,SvIV(ST(0)))
;
#line 3016 "lib/OpenGL/V1.xs"
	glPolygonStipple(mask);
#line 6044 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPolygonStipple_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPolygonStipple_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	SV *	mask = ST(0)
;
#line 3024 "lib/OpenGL/V1.xs"
	{
	GLubyte * ptr = ELI(mask, 32, 32, GL_COLOR_INDEX, GL_BITMAP, 0);
	glPolygonStipple(ptr);
	}
#line 6064 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPolygonStipple_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPolygonStipple_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 3033 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr;
	glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
	glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	ptr = pack_image_ST(&(ST(0)), items, 32, 32, 1,
		GL_COLOR_INDEX, GL_BITMAP, 0);
	glPolygonStipple(ptr);
	glPopClientAttrib();
	free(ptr);
	}
#line 6089 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAP 1


XS_EUPXS(XS_OpenGL_glPrioritizeTextures_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPrioritizeTextures_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "n, textures, priorities");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	void *	textures = INT2PTR(void *,SvIV(ST(1)))
;
	void *	priorities = INT2PTR(void *,SvIV(ST(2)))
;
#line 3055 "lib/OpenGL/V1.xs"
	glPrioritizeTextures(n, textures, priorities);
#line 6113 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPrioritizeTextures_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPrioritizeTextures_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "n, textures, priorities");
    {
	GLsizei	n = (int)SvIV(ST(0))
;
	SV *	textures = ST(1)
;
	SV *	priorities = ST(2)
;
#line 3065 "lib/OpenGL/V1.xs"
	{
	GLuint * textures_s = EL(textures, sizeof(GLuint) * n);
	GLclampf * priorities_s = EL(priorities, sizeof(GLclampf) * n);
	glPrioritizeTextures(n, textures_s, priorities_s);
	}
#line 6138 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPrioritizeTextures_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPrioritizeTextures_p)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 3076 "lib/OpenGL/V1.xs"
	{
		GLsizei n = items/2;
		GLuint * textures = malloc(sizeof(GLuint) * (n+1));
		GLclampf * prior = malloc(sizeof(GLclampf) * (n+1));
		int i;

		for (i=0;i<n;i++) {
			textures[i] = SvIV(ST(i * 2 + 0));
			prior[i] = (GLclampf)SvNV(ST(i * 2 + 1));
		}

		glPrioritizeTextures(n, textures, prior);

		free(textures);
		free(prior);
	}
#line 6168 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glPushAttrib); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPushAttrib)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	GLbitfield	mask = (int)SvIV(ST(0))
;

	glPushAttrib(mask);
    }
    XSRETURN_EMPTY;
}


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

	glPopAttrib();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPushClientAttrib); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPushClientAttrib)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	GLbitfield	mask = (int)SvIV(ST(0))
;

	glPushClientAttrib(mask);
    }
    XSRETURN_EMPTY;
}


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

	glPopClientAttrib();
    }
    XSRETURN_EMPTY;
}


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

	glPushMatrix();
    }
    XSRETURN_EMPTY;
}


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

	glPopMatrix();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPushName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPushName)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "name");
    {
	GLuint	name = (unsigned int)SvUV(ST(0))
;

	glPushName(name);
    }
    XSRETURN_EMPTY;
}


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

	glPopName();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glReadBuffer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glReadBuffer)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;

	glReadBuffer(mode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glReadPixels_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glReadPixels_c)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "x, y, width, height, format, type, pixels");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLsizei	width = (int)SvIV(ST(2))
;
	GLsizei	height = (int)SvIV(ST(3))
;
	GLenum	format = (int)SvIV(ST(4))
;
	GLenum	type = (int)SvIV(ST(5))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(6)))
;
#line 3157 "lib/OpenGL/V1.xs"
	glReadPixels(x, y, width, height, format, type, pixels);
#line 6332 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glReadPixels_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glReadPixels_s)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "x, y, width, height, format, type, pixels");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLsizei	width = (int)SvIV(ST(2))
;
	GLsizei	height = (int)SvIV(ST(3))
;
	GLenum	format = (int)SvIV(ST(4))
;
	GLenum	type = (int)SvIV(ST(5))
;
	SV *	pixels = ST(6)
;
#line 3171 "lib/OpenGL/V1.xs"
	{
		void * ptr = ELI(pixels, width, height,
			format, type, gl_pixelbuffer_pack);
		glReadPixels(x, y, width, height, format, type, ptr);
	}
#line 6365 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glReadPixels_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glReadPixels_p)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "x, y, width, height, format, type");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLsizei	width = (int)SvIV(ST(2))
;
	GLsizei	height = (int)SvIV(ST(3))
;
	GLenum	format = (int)SvIV(ST(4))
;
	GLenum	type = (int)SvIV(ST(5))
;
#line 3188 "lib/OpenGL/V1.xs"
	{
		void * ptr;
		glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
		glPixelStorei(GL_PACK_ROW_LENGTH, 0);
		glPixelStorei(GL_PACK_ALIGNMENT, 1);
		ptr = allocate_image_ST(width, height, 1, format, type, 0);
		glReadPixels(x, y, width, height, format, type, ptr);
		sp = unpack_image_ST(sp, ptr, width, height, 1, format, type, 0);
		free(ptr);
		glPopClientAttrib();
	}
#line 6404 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glRecti); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRecti)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 4)
       croak_xs_usage(cv,  "x1, y1, x2, y2");
    {
	GLint	x1 = (int)SvIV(ST(0))
;
	GLint	y1 = (int)SvIV(ST(1))
;
	GLint	x2 = (int)SvIV(ST(2))
;
	GLint	y2 = (int)SvIV(ST(3))
;

	glRecti(x1, y1, x2, y2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRects); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRects)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 4)
       croak_xs_usage(cv,  "x1, y1, x2, y2");
    {
	GLshort	x1 = (short)SvIV(ST(0))
;
	GLshort	y1 = (short)SvIV(ST(1))
;
	GLshort	x2 = (short)SvIV(ST(2))
;
	GLshort	y2 = (short)SvIV(ST(3))
;

	glRects(x1, y1, x2, y2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectd); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectd)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 4)
       croak_xs_usage(cv,  "x1, y1, x2, y2");
    {
	GLdouble	x1 = (double)SvNV(ST(0))
;
	GLdouble	y1 = (double)SvNV(ST(1))
;
	GLdouble	x2 = (double)SvNV(ST(2))
;
	GLdouble	y2 = (double)SvNV(ST(3))
;

	glRectd(x1, y1, x2, y2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectf)
{
    dVAR; dXSARGS;
    dXSI32;
    if (items != 4)
       croak_xs_usage(cv,  "x1, y1, x2, y2");
    {
	GLfloat	x1 = (float)SvNV(ST(0))
;
	GLfloat	y1 = (float)SvNV(ST(1))
;
	GLfloat	x2 = (float)SvNV(ST(2))
;
	GLfloat	y2 = (float)SvNV(ST(3))
;

	glRectf(x1, y1, x2, y2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectsv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectsv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "v1, v2");
    {
	void *	v1 = INT2PTR(void *,SvIV(ST(0)))
;
	void *	v2 = INT2PTR(void *,SvIV(ST(1)))
;
#line 3253 "lib/OpenGL/V1.xs"
	glRectsv(v1, v2);
#line 6516 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectiv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "v1, v2");
    {
	void *	v1 = INT2PTR(void *,SvIV(ST(0)))
;
	void *	v2 = INT2PTR(void *,SvIV(ST(1)))
;
#line 3262 "lib/OpenGL/V1.xs"
	glRectiv(v1, v2);
#line 6535 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectfv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "v1, v2");
    {
	void *	v1 = INT2PTR(void *,SvIV(ST(0)))
;
	void *	v2 = INT2PTR(void *,SvIV(ST(1)))
;
#line 3271 "lib/OpenGL/V1.xs"
	glRectfv(v1, v2);
#line 6554 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectdv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectdv_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "v1, v2");
    {
	void *	v1 = INT2PTR(void *,SvIV(ST(0)))
;
	void *	v2 = INT2PTR(void *,SvIV(ST(1)))
;
#line 3280 "lib/OpenGL/V1.xs"
	glRectdv(v1, v2);
#line 6573 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectdv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectdv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "v1, v2");
    {
	SV *	v1 = ST(0)
;
	SV *	v2 = ST(1)
;
#line 3289 "lib/OpenGL/V1.xs"
	{
	GLdouble * v1_s = EL(v1, sizeof(GLdouble)*2);
	GLdouble * v2_s = EL(v2, sizeof(GLdouble)*2);
	glRectdv(v1_s, v2_s);
	}
#line 6596 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectfv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "v1, v2");
    {
	SV *	v1 = ST(0)
;
	SV *	v2 = ST(1)
;
#line 3302 "lib/OpenGL/V1.xs"
	{
	GLfloat * v1_s = EL(v1, sizeof(GLfloat)*2);
	GLfloat * v2_s = EL(v2, sizeof(GLfloat)*2);
	glRectfv(v1_s, v2_s);
	}
#line 6619 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectiv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "v1, v2");
    {
	SV *	v1 = ST(0)
;
	SV *	v2 = ST(1)
;
#line 3315 "lib/OpenGL/V1.xs"
	{
	GLint * v1_s = EL(v1, sizeof(GLint)*2);
	GLint * v2_s = EL(v2, sizeof(GLint)*2);
	glRectiv(v1_s, v2_s);
	}
#line 6642 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRectsv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRectsv_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "v1, v2");
    {
	SV *	v1 = ST(0)
;
	SV *	v2 = ST(1)
;
#line 3328 "lib/OpenGL/V1.xs"
	{
	GLshort * v1_s = EL(v1, sizeof(GLshort)*2);
	GLshort * v2_s = EL(v2, sizeof(GLshort)*2);
	glRectsv(v1_s, v2_s);
	}
#line 6665 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRenderMode); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRenderMode)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
	GLint	RETVAL;
	dXSTARG;

	RETVAL = glRenderMode(mode);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glRotated); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRotated)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "angle, x, y, z");
    {
	GLdouble	angle = (double)SvNV(ST(0))
;
	GLdouble	x = (double)SvNV(ST(1))
;
	GLdouble	y = (double)SvNV(ST(2))
;
	GLdouble	z = (double)SvNV(ST(3))
;

	glRotated(angle, x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRotatef); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRotatef)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "angle, x, y, z");
    {
	GLfloat	angle = (float)SvNV(ST(0))
;
	GLfloat	x = (float)SvNV(ST(1))
;
	GLfloat	y = (float)SvNV(ST(2))
;
	GLfloat	z = (float)SvNV(ST(3))
;

	glRotatef(angle, x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glScaled); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glScaled)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;

	glScaled(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glScalef); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glScalef)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;

	glScalef(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glScissor); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glScissor)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, width, height");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLsizei	width = (int)SvIV(ST(2))
;
	GLsizei	height = (int)SvIV(ST(3))
;

	glScissor(x, y, width, height);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glSelectBuffer_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glSelectBuffer_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "size, list");
    {
	GLsizei	size = (int)SvIV(ST(0))
;
	void *	list = INT2PTR(void *,SvIV(ST(1)))
;
#line 3390 "lib/OpenGL/V1.xs"
	glSelectBuffer(size, list);
#line 6810 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glShadeModel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glShadeModel)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;

	glShadeModel(mode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glStencilFunc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glStencilFunc)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "func, ref, mask");
    {
	GLenum	func = (int)SvIV(ST(0))
;
	GLint	ref = (int)SvIV(ST(1))
;
	GLuint	mask = (unsigned int)SvUV(ST(2))
;

	glStencilFunc(func, ref, mask);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glStencilMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glStencilMask)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mask");
    {
	GLuint	mask = (unsigned int)SvUV(ST(0))
;

	glStencilMask(mask);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glStencilOp); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glStencilOp)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "fail, zfail, zpass");
    {
	GLenum	fail = (int)SvIV(ST(0))
;
	GLenum	zfail = (int)SvIV(ST(1))
;
	GLenum	zpass = (int)SvIV(ST(2))
;

	glStencilOp(fail, zfail, zpass);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexEnvf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexEnvf)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, param");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLfloat	param = (float)SvNV(ST(2))
;

	glTexEnvf(target, pname, param);
    }
    XSRETURN_EMPTY;
}


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

	glTexEnvi(target, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexEnvfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexEnvfv_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 3446 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params, sizeof(GLfloat)*gl_texenv_count(pname));
	glTexEnvfv(target, pname, params_s);
	}
#line 6946 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexEnviv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexEnviv_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 3459 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params, sizeof(GLint)*gl_texenv_count(pname));
	glTexEnviv(target, pname, params_s);
	}
#line 6970 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexEnvfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexEnvfv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "target, pname, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 3471 "lib/OpenGL/V1.xs"
	{
		GLfloat p[MAX_GL_TEXENV_COUNT];
		int n = items-2;
		int i;
		if (n != gl_texenv_count(pname))
			croak("Incorrect number of arguments");
		for (i=2;i<items;i++)
			p[i-2] = (GLfloat)SvNV(ST(i));
		glTexEnvfv(target, pname, &p[0]);
	}
#line 6998 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexEnviv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexEnviv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "target, pname, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 3489 "lib/OpenGL/V1.xs"
	{
		GLint p[MAX_GL_TEXENV_COUNT];
		int n = items-2;
		int i;
		if (n != gl_texenv_count(pname))
			croak("Incorrect number of arguments");
		for (i=2;i<items;i++)
			p[i-2] = SvIV(ST(i));
		glTexEnviv(target, pname, &p[0]);
	}
#line 7026 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGend); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGend)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, param");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLdouble	param = (double)SvNV(ST(2))
;

	glTexGend(Coord, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGenf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGenf)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, param");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLfloat	param = (float)SvNV(ST(2))
;

	glTexGenf(Coord, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGeni); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGeni)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, param");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLint	param = (int)SvIV(ST(2))
;

	glTexGeni(Coord, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGendv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGendv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, params");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 3532 "lib/OpenGL/V1.xs"
	glTexGendv(Coord, pname, params);
#line 7107 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGenfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGenfv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, params");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 3542 "lib/OpenGL/V1.xs"
	glTexGenfv(Coord, pname, params);
#line 7128 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGeniv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGeniv_c)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, params");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	void *	params = INT2PTR(void *,SvIV(ST(2)))
;
#line 3552 "lib/OpenGL/V1.xs"
	glTexGeniv(Coord, pname, params);
#line 7149 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGendv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGendv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, params");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 3562 "lib/OpenGL/V1.xs"
	{
	GLdouble * params_s = EL(params,
		sizeof(GLdouble)* gl_texgen_count(pname));
	glTexGendv(Coord, pname, params_s);
	}
#line 7174 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGenfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGenfv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, params");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 3576 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params,
		sizeof(GLfloat)* gl_texgen_count(pname));
	glTexGenfv(Coord, pname, params_s);
	}
#line 7199 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGeniv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGeniv_s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "Coord, pname, params");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	SV *	params = ST(2)
;
#line 3590 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params,
		sizeof(GLint)* gl_texgen_count(pname));
	glTexGeniv(Coord, pname, params_s);
	}
#line 7224 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGendv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGendv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "Coord, pname, ...");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 3603 "lib/OpenGL/V1.xs"
	{
		GLdouble p[MAX_GL_TEXGEN_COUNT];
		int n = items-2;
		int i;
		if (n != gl_texgen_count(pname))
			croak("Incorrect number of arguments");
		for (i=2;i<items;i++)
			p[i-2] = SvNV(ST(i));
		glTexGendv(Coord, pname, &p[0]);
	}
#line 7252 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGenfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGenfv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "Coord, pname, ...");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 3621 "lib/OpenGL/V1.xs"
	{
		GLfloat p[MAX_GL_TEXGEN_COUNT];
		int n = items-2;
		int i;
		if (n != gl_texgen_count(pname))
			croak("Incorrect number of arguments");
		for (i=2;i<items;i++)
			p[i-2] = (GLfloat)SvNV(ST(i));
		glTexGenfv(Coord, pname, &p[0]);
	}
#line 7280 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexGeniv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexGeniv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "Coord, pname, ...");
    {
	GLenum	Coord = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 3639 "lib/OpenGL/V1.xs"
	{
		GLint p[MAX_GL_TEXGEN_COUNT];
		int n = items-2;
		int i;
		if (n != gl_texgen_count(pname))
			croak("Incorrect number of arguments");
		for (i=2;i<items;i++)
			p[i-2] = SvIV(ST(i));
		glTexGeniv(Coord, pname, &p[0]);
	}
#line 7308 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage1D_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage1D_c)
{
    dVAR; dXSARGS;
    if (items != 8)
       croak_xs_usage(cv,  "target, level, internalformat, width, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLint	border = (int)SvIV(ST(4))
;
	GLenum	format = (int)SvIV(ST(5))
;
	GLenum	type = (int)SvIV(ST(6))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(7)))
;
#line 3663 "lib/OpenGL/V1.xs"
	glTexImage1D(target, level, internalformat,
		width, border, format, type, pixels);
#line 7340 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage1D_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage1D_s)
{
    dVAR; dXSARGS;
    if (items != 8)
       croak_xs_usage(cv,  "target, level, internalformat, width, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLint	border = (int)SvIV(ST(4))
;
	GLenum	format = (int)SvIV(ST(5))
;
	GLenum	type = (int)SvIV(ST(6))
;
	SV *	pixels = ST(7)
;
#line 3679 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr = ELI(pixels, width, 1, format, type,
		gl_pixelbuffer_unpack);
	glTexImage1D(target, level, internalformat,
		width, border, format, type, ptr);
	}
#line 7376 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage1D_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage1D_p)
{
    dVAR; dXSARGS;
    if (items < 7)
       croak_xs_usage(cv,  "target, level, internalformat, width, border, format, type, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLint	border = (int)SvIV(ST(4))
;
	GLenum	format = (int)SvIV(ST(5))
;
	GLenum	type = (int)SvIV(ST(6))
;
#line 3698 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr;
	glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
	glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	ptr = pack_image_ST(&(ST(7)), items-7, width, 1, 1, format, type, 0);
	glTexImage1D(target, level, internalformat,
		width, border, format, type, ptr);
	glPopClientAttrib();
	free(ptr);
	}
#line 7415 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage2D_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage2D_c)
{
    dVAR; dXSARGS;
    if (items != 9)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLint	border = (int)SvIV(ST(5))
;
	GLenum	format = (int)SvIV(ST(6))
;
	GLenum	type = (int)SvIV(ST(7))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(8)))
;
#line 3724 "lib/OpenGL/V1.xs"
	glTexImage2D(target, level, internalformat,
		width, height, border, format, type, pixels);
#line 7449 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage2D_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage2D_s)
{
    dVAR; dXSARGS;
    if (items != 9)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLint	border = (int)SvIV(ST(5))
;
	GLenum	format = (int)SvIV(ST(6))
;
	GLenum	type = (int)SvIV(ST(7))
;
	SV *	pixels = ST(8)
;
#line 3741 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr = NULL;
		if (pixels)
		{
			ptr = ELI(pixels, width, height,
				format, type, gl_pixelbuffer_unpack);
		}
		glTexImage2D(target, level, internalformat,
			width, height, border, format, type, ptr);
	}
#line 7491 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage2D_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage2D_p)
{
    dVAR; dXSARGS;
    if (items < 8)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, border, format, type, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLint	border = (int)SvIV(ST(5))
;
	GLenum	format = (int)SvIV(ST(6))
;
	GLenum	type = (int)SvIV(ST(7))
;
#line 3765 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr;
	glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
	glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	ptr = pack_image_ST(&(ST(8)), items-8, width, height,
		1, format, type, 0);
	glTexImage2D(target, level, internalformat,
		width, height, border, format, type, ptr);
	glPopClientAttrib();
	free(ptr);
	}
#line 7533 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_2
#define XSubPPtmpAAAQ 1


XS_EUPXS(XS_OpenGL_glTexImage3D_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage3D_c)
{
    dVAR; dXSARGS;
    if (items != 10)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, depth, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLsizei	depth = (int)SvIV(ST(5))
;
	GLint	border = (int)SvIV(ST(6))
;
	GLenum	format = (int)SvIV(ST(7))
;
	GLenum	type = (int)SvIV(ST(8))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(9)))
;
#line 3795 "lib/OpenGL/V1.xs"
		loadProc(glTexImage3D,"glTexImage3D");
#line 7571 "lib/OpenGL/V1.c"
#line 3797 "lib/OpenGL/V1.xs"
		glTexImage3D(target, level, internalformat,
			width, height, depth, border, format, type, pixels);
#line 7575 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage3D_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage3D_s)
{
    dVAR; dXSARGS;
    if (items != 10)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, depth, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLsizei	depth = (int)SvIV(ST(5))
;
	GLint	border = (int)SvIV(ST(6))
;
	GLenum	format = (int)SvIV(ST(7))
;
	GLenum	type = (int)SvIV(ST(8))
;
	SV *	pixels = ST(9)
;
#line 3815 "lib/OpenGL/V1.xs"
		loadProc(glTexImage3D,"glTexImage3D");
#line 7610 "lib/OpenGL/V1.c"
#line 3817 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr = ELI(pixels, width, height, format,
			type, gl_pixelbuffer_unpack);
		glTexImage3D(target, level, internalformat,
			width, height, depth, border, format, type, ptr);
	}
#line 7618 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage3D_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage3D_p)
{
    dVAR; dXSARGS;
    if (items < 9)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, depth, border, format, type, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLsizei	depth = (int)SvIV(ST(5))
;
	GLint	border = (int)SvIV(ST(6))
;
	GLenum	format = (int)SvIV(ST(7))
;
	GLenum	type = (int)SvIV(ST(8))
;
#line 3838 "lib/OpenGL/V1.xs"
		loadProc(glTexImage3D,"glTexImage3D");
#line 7651 "lib/OpenGL/V1.c"
#line 3840 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr;
		glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
		glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
		ptr = pack_image_ST(&(ST(9)), items-9, width, height,
			depth, format, type, 0);
		glTexImage3D(target, level, internalformat,
			width, height, depth, border, format, type, ptr);
		glPopClientAttrib();
		free(ptr);
	}
#line 7665 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glTexParameterf); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexParameterf)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "target, pname, param");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLfloat	param = (float)SvNV(ST(2))
;

	glTexParameterf(target, pname, param);
    }
    XSRETURN_EMPTY;
}


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

	glTexParameteri(target, pname, param);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexParameterfv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexParameterfv_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 3879 "lib/OpenGL/V1.xs"
	glTexParameterfv(target, pname, params);
#line 7727 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexParameteriv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexParameteriv_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 3889 "lib/OpenGL/V1.xs"
	glTexParameteriv(target, pname, params);
#line 7748 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexParameterfv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexParameterfv_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 3899 "lib/OpenGL/V1.xs"
	{
	GLfloat * params_s = EL(params,
		sizeof(GLfloat)*gl_texparameter_count(pname));
	glTexParameterfv(target, pname, params_s);
	}
#line 7773 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexParameteriv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexParameteriv_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 3913 "lib/OpenGL/V1.xs"
	{
	GLint * params_s = EL(params,
		sizeof(GLint)*gl_texparameter_count(pname));
	glTexParameteriv(target, pname, params_s);
	}
#line 7798 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexParameterfv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexParameterfv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "target, pname, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 3926 "lib/OpenGL/V1.xs"
	{
		GLfloat p[MAX_GL_TEXPARAMETER_COUNT];
		int n = items-2;
		int i;
		if (n != gl_texparameter_count(pname))
			croak("Incorrect number of arguments");
		for(i=0;i<n;i++)
			p[i] = (GLfloat)SvNV(ST(i+2));
		glTexParameterfv(target, pname, &p[0]);
	}
#line 7826 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexParameteriv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexParameteriv_p)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "target, pname, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
#line 3944 "lib/OpenGL/V1.xs"
	{
		GLint p[MAX_GL_TEXPARAMETER_COUNT];
		int n = items-2;
		int i;
		if (n != gl_texparameter_count(pname))
			croak("Incorrect number of arguments");
		for(i=0;i<n;i++)
			p[i] = SvIV(ST(i+2));
		glTexParameteriv(target, pname, &p[0]);
	}
#line 7854 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAR 1


XS_EUPXS(XS_OpenGL_glTexSubImage1D_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage1D_c)
{
    dVAR; dXSARGS;
    if (items != 8)
       croak_xs_usage(cv,  "target, level, xoffset, width, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLenum	format = (int)SvIV(ST(5))
;
	GLenum	type = (int)SvIV(ST(6))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(7)))
;
#line 3969 "lib/OpenGL/V1.xs"
	glTexSubImage1D(target, level, xoffset, width, format, type, pixels);
#line 7886 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage1D_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage1D_s)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "target, level, xoffset, width, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLenum	format = (int)SvIV(ST(4))
;
	GLenum	type = (int)SvIV(ST(5))
;
	SV *	pixels = ST(6)
;
#line 3983 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr = ELI(pixels, width, 1, format, type, gl_pixelbuffer_unpack);
	glTexSubImage1D(target, level, xoffset, width, format, type, ptr);
	}
#line 7918 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage1D_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage1D_p)
{
    dVAR; dXSARGS;
    if (items < 6)
       croak_xs_usage(cv,  "target, level, xoffset, width, format, type, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLenum	format = (int)SvIV(ST(4))
;
	GLenum	type = (int)SvIV(ST(5))
;
#line 3999 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr;
	glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
	glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	ptr = pack_image_ST(&(ST(7)), items-7, width, 1, 1, format, type, 0);
	glTexSubImage1D(target, level, xoffset, width, format, type, ptr);
	glPopClientAttrib();
	free(ptr);
	}
#line 7954 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage2D_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage2D_c)
{
    dVAR; dXSARGS;
    if (items != 9)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, width, height, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLsizei	width = (int)SvIV(ST(4))
;
	GLsizei	height = (int)SvIV(ST(5))
;
	GLenum	format = (int)SvIV(ST(6))
;
	GLenum	type = (int)SvIV(ST(7))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(8)))
;
#line 4024 "lib/OpenGL/V1.xs"
	glTexSubImage2D(target, level, xoffset, yoffset,
		width, height, format, type, pixels);
#line 7988 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage2D_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage2D_s)
{
    dVAR; dXSARGS;
    if (items != 9)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, width, height, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLsizei	width = (int)SvIV(ST(4))
;
	GLsizei	height = (int)SvIV(ST(5))
;
	GLenum	format = (int)SvIV(ST(6))
;
	GLenum	type = (int)SvIV(ST(7))
;
	SV *	pixels = ST(8)
;
#line 4041 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr = ELI(pixels, width, height,
		format, type, gl_pixelbuffer_unpack);
	glTexSubImage2D(target, level, xoffset, yoffset,
		width, height, format, type, ptr);
	}
#line 8026 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage2D_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage2D_p)
{
    dVAR; dXSARGS;
    if (items < 8)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, width, height, format, type, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLsizei	width = (int)SvIV(ST(4))
;
	GLsizei	height = (int)SvIV(ST(5))
;
	GLenum	format = (int)SvIV(ST(6))
;
	GLenum	type = (int)SvIV(ST(7))
;
#line 4061 "lib/OpenGL/V1.xs"
	{
	GLvoid * ptr;
	glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
	glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	ptr = pack_image_ST(&(ST(8)), items-8, width, height, 1,
		format, type, 0);
	glTexSubImage2D(target, level, xoffset, yoffset,
		width, height, format, type, ptr);
	glPopClientAttrib();
	free(ptr);
	}
#line 8068 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_2
#define XSubPPtmpAAAS 1


XS_EUPXS(XS_OpenGL_glTexSubImage3D_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage3D_c)
{
    dVAR; dXSARGS;
    if (items != 11)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLint	zoffset = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;
	GLsizei	height = (int)SvIV(ST(6))
;
	GLsizei	depth = (int)SvIV(ST(7))
;
	GLenum	format = (int)SvIV(ST(8))
;
	GLenum	type = (int)SvIV(ST(9))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(10)))
;
#line 4092 "lib/OpenGL/V1.xs"
		loadProc(glTexSubImage3D,"glTexSubImage3D");
#line 8108 "lib/OpenGL/V1.c"
#line 4094 "lib/OpenGL/V1.xs"
		glTexSubImage3D(target, level, xoffset, yoffset, zoffset,
			width, height, depth, format, type, pixels);
#line 8112 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage3D_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage3D_s)
{
    dVAR; dXSARGS;
    if (items != 11)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLint	zoffset = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;
	GLsizei	height = (int)SvIV(ST(6))
;
	GLsizei	depth = (int)SvIV(ST(7))
;
	GLenum	format = (int)SvIV(ST(8))
;
	GLenum	type = (int)SvIV(ST(9))
;
	SV *	pixels = ST(10)
;
#line 4113 "lib/OpenGL/V1.xs"
		loadProc(glTexSubImage3D,"glTexSubImage3D");
#line 8149 "lib/OpenGL/V1.c"
#line 4115 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr = ELI(pixels, width, height,
			format, type, gl_pixelbuffer_unpack);
		glTexSubImage3D(target, level, xoffset, yoffset, zoffset,
			width, height, depth, format, type, ptr);
	}
#line 8157 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage3D_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage3D_p)
{
    dVAR; dXSARGS;
    if (items < 10)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLint	zoffset = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;
	GLsizei	height = (int)SvIV(ST(6))
;
	GLsizei	depth = (int)SvIV(ST(7))
;
	GLenum	format = (int)SvIV(ST(8))
;
	GLenum	type = (int)SvIV(ST(9))
;
#line 4137 "lib/OpenGL/V1.xs"
		loadProc(glTexSubImage3D,"glTexSubImage3D");
#line 8192 "lib/OpenGL/V1.c"
#line 4139 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr;
		glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
		glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
		ptr = pack_image_ST(&(ST(10)), items-10, width, height,
			depth, format, type, 0);
		glTexSubImage3D(target, level, xoffset, yoffset, zoffset,
			width, height, depth, format, type, ptr);
		glPopClientAttrib();
		free(ptr);
	}
#line 8206 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif
#endif

XS_EUPXS(XS_OpenGL_glTranslated); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTranslated)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;

	glTranslated(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTranslatef); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTranslatef)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;

	glTranslatef(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glViewport); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glViewport)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, width, height");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLsizei	width = (int)SvIV(ST(2))
;
	GLsizei	height = (int)SvIV(ST(3))
;

	glViewport(x, y, width, height);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2d)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;

	glVertex2d(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4195 "lib/OpenGL/V1.xs"
	glVertex2dv(v);
#line 8305 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4202 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*2);
		glVertex2dv(v_s);
	}
#line 8325 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2dv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
#line 4214 "lib/OpenGL/V1.xs"
	{
		GLdouble param[2];
		param[0] = x;
		param[1] = y;
		glVertex2dv(param);
	}
#line 8349 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2f)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;

	glVertex2f(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4232 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*2);
		glVertex2fv(v_s);
	}
#line 8387 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4242 "lib/OpenGL/V1.xs"
	glVertex2fv(v);
#line 8404 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2fv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
#line 4251 "lib/OpenGL/V1.xs"
	{
		GLfloat param[2];
		param[0] = x;
		param[1] = y;
		glVertex2fv(param);
	}
#line 8428 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2i)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;

	glVertex2i(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4269 "lib/OpenGL/V1.xs"
	glVertex2iv(v);
#line 8463 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4276 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*2);
		glVertex2iv(v_s);
	}
#line 8483 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2iv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
#line 4288 "lib/OpenGL/V1.xs"
	{
		GLint param[2];
		param[0] = x;
		param[1] = y;
		glVertex2iv(param);
	}
#line 8507 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;

	glVertex2s(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4306 "lib/OpenGL/V1.xs"
	glVertex2sv(v);
#line 8542 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4313 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*2);
		glVertex2sv(v_s);
	}
#line 8562 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex2sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex2sv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
#line 4325 "lib/OpenGL/V1.xs"
	{
		GLshort param[2];
		param[0] = x;
		param[1] = y;
		glVertex2sv(param);
	}
#line 8586 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2d)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "s, t");
    {
	GLdouble	s = (double)SvNV(ST(0))
;
	GLdouble	t = (double)SvNV(ST(1))
;

	glTexCoord2d(s, t);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4343 "lib/OpenGL/V1.xs"
	glTexCoord2dv(v);
#line 8621 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4350 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*2);
		glTexCoord2dv(v_s);
	}
#line 8641 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2dv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "s, t");
    {
	GLdouble	s = (double)SvNV(ST(0))
;
	GLdouble	t = (double)SvNV(ST(1))
;
#line 4362 "lib/OpenGL/V1.xs"
	{
		GLdouble param[2];
		param[0] = s;
		param[1] = t;
		glTexCoord2dv(param);
	}
#line 8665 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2f)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "s, t");
    {
	GLfloat	s = (float)SvNV(ST(0))
;
	GLfloat	t = (float)SvNV(ST(1))
;

	glTexCoord2f(s, t);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4380 "lib/OpenGL/V1.xs"
	glTexCoord2fv(v);
#line 8700 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4387 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*2);
		glTexCoord2fv(v_s);
	}
#line 8720 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2fv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "s, t");
    {
	GLfloat	s = (float)SvNV(ST(0))
;
	GLfloat	t = (float)SvNV(ST(1))
;
#line 4399 "lib/OpenGL/V1.xs"
	{
		GLfloat param[2];
		param[0] = s;
		param[1] = t;
		glTexCoord2fv(param);
	}
#line 8744 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2i)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "s, t");
    {
	GLint	s = (int)SvIV(ST(0))
;
	GLint	t = (int)SvIV(ST(1))
;

	glTexCoord2i(s, t);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4417 "lib/OpenGL/V1.xs"
	glTexCoord2iv(v);
#line 8779 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4424 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*2);
		glTexCoord2iv(v_s);
	}
#line 8799 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2iv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "s, t");
    {
	GLint	s = (int)SvIV(ST(0))
;
	GLint	t = (int)SvIV(ST(1))
;
#line 4436 "lib/OpenGL/V1.xs"
	{
		GLint param[2];
		param[0] = s;
		param[1] = t;
		glTexCoord2iv(param);
	}
#line 8823 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "s, t");
    {
	GLshort	s = (short)SvIV(ST(0))
;
	GLshort	t = (short)SvIV(ST(1))
;

	glTexCoord2s(s, t);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4454 "lib/OpenGL/V1.xs"
	glTexCoord2sv(v);
#line 8858 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4461 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*2);
		glTexCoord2sv(v_s);
	}
#line 8878 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord2sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord2sv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "s, t");
    {
	GLshort	s = (short)SvIV(ST(0))
;
	GLshort	t = (short)SvIV(ST(1))
;
#line 4473 "lib/OpenGL/V1.xs"
	{
		GLshort param[2];
		param[0] = s;
		param[1] = t;
		glTexCoord2sv(param);
	}
#line 8902 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3d)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "s, t, r");
    {
	GLdouble	s = (double)SvNV(ST(0))
;
	GLdouble	t = (double)SvNV(ST(1))
;
	GLdouble	r = (double)SvNV(ST(2))
;

	glTexCoord3d(s, t, r);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4492 "lib/OpenGL/V1.xs"
	glTexCoord3dv(v);
#line 8939 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4499 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*3);
		glTexCoord3dv(v_s);
	}
#line 8959 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3dv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "s, t, r");
    {
	GLdouble	s = (double)SvNV(ST(0))
;
	GLdouble	t = (double)SvNV(ST(1))
;
	GLdouble	r = (double)SvNV(ST(2))
;
#line 4512 "lib/OpenGL/V1.xs"
	{
		GLdouble param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glTexCoord3dv(param);
	}
#line 8986 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3f)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "s, t, r");
    {
	GLfloat	s = (float)SvNV(ST(0))
;
	GLfloat	t = (float)SvNV(ST(1))
;
	GLfloat	r = (float)SvNV(ST(2))
;

	glTexCoord3f(s, t, r);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4532 "lib/OpenGL/V1.xs"
	glTexCoord3fv(v);
#line 9023 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4539 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*3);
		glTexCoord3fv(v_s);
	}
#line 9043 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3fv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "s, t, r");
    {
	GLfloat	s = (float)SvNV(ST(0))
;
	GLfloat	t = (float)SvNV(ST(1))
;
	GLfloat	r = (float)SvNV(ST(2))
;
#line 4552 "lib/OpenGL/V1.xs"
	{
		GLfloat param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glTexCoord3fv(param);
	}
#line 9070 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3i)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "s, t, r");
    {
	GLint	s = (int)SvIV(ST(0))
;
	GLint	t = (int)SvIV(ST(1))
;
	GLint	r = (int)SvIV(ST(2))
;

	glTexCoord3i(s, t, r);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4572 "lib/OpenGL/V1.xs"
	glTexCoord3iv(v);
#line 9107 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4579 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*3);
		glTexCoord3iv(v_s);
	}
#line 9127 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3iv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "s, t, r");
    {
	GLint	s = (int)SvIV(ST(0))
;
	GLint	t = (int)SvIV(ST(1))
;
	GLint	r = (int)SvIV(ST(2))
;
#line 4592 "lib/OpenGL/V1.xs"
	{
		GLint param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glTexCoord3iv(param);
	}
#line 9154 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "s, t, r");
    {
	GLshort	s = (short)SvIV(ST(0))
;
	GLshort	t = (short)SvIV(ST(1))
;
	GLshort	r = (short)SvIV(ST(2))
;

	glTexCoord3s(s, t, r);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4612 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*3);
		glTexCoord3sv(v_s);
	}
#line 9194 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4622 "lib/OpenGL/V1.xs"
	glTexCoord3sv(v);
#line 9211 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord3sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord3sv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "s, t, r");
    {
	GLshort	s = (short)SvIV(ST(0))
;
	GLshort	t = (short)SvIV(ST(1))
;
	GLshort	r = (short)SvIV(ST(2))
;
#line 4632 "lib/OpenGL/V1.xs"
	{
		GLshort param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glTexCoord3sv(param);
	}
#line 9238 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4d)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "s, t, r, q");
    {
	GLdouble	s = (double)SvNV(ST(0))
;
	GLdouble	t = (double)SvNV(ST(1))
;
	GLdouble	r = (double)SvNV(ST(2))
;
	GLdouble	q = (double)SvNV(ST(3))
;

	glTexCoord4d(s, t, r, q);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4653 "lib/OpenGL/V1.xs"
	glTexCoord4dv(v);
#line 9277 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4660 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*4);
		glTexCoord4dv(v_s);
	}
#line 9297 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4dv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "s, t, r, q");
    {
	GLdouble	s = (double)SvNV(ST(0))
;
	GLdouble	t = (double)SvNV(ST(1))
;
	GLdouble	r = (double)SvNV(ST(2))
;
	GLdouble	q = (double)SvNV(ST(3))
;
#line 4674 "lib/OpenGL/V1.xs"
	{
		GLdouble param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glTexCoord4dv(param);
	}
#line 9327 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4f)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "s, t, r, q");
    {
	GLfloat	s = (float)SvNV(ST(0))
;
	GLfloat	t = (float)SvNV(ST(1))
;
	GLfloat	r = (float)SvNV(ST(2))
;
	GLfloat	q = (float)SvNV(ST(3))
;

	glTexCoord4f(s, t, r, q);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4696 "lib/OpenGL/V1.xs"
	glTexCoord4fv(v);
#line 9366 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4703 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*4);
		glTexCoord4fv(v_s);
	}
#line 9386 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4fv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "s, t, r, q");
    {
	GLfloat	s = (float)SvNV(ST(0))
;
	GLfloat	t = (float)SvNV(ST(1))
;
	GLfloat	r = (float)SvNV(ST(2))
;
	GLfloat	q = (float)SvNV(ST(3))
;
#line 4717 "lib/OpenGL/V1.xs"
	{
		GLfloat param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glTexCoord4fv(param);
	}
#line 9416 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4i)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "s, t, r, q");
    {
	GLint	s = (int)SvIV(ST(0))
;
	GLint	t = (int)SvIV(ST(1))
;
	GLint	r = (int)SvIV(ST(2))
;
	GLint	q = (int)SvIV(ST(3))
;

	glTexCoord4i(s, t, r, q);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4739 "lib/OpenGL/V1.xs"
	glTexCoord4iv(v);
#line 9455 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4746 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*4);
		glTexCoord4iv(v_s);
	}
#line 9475 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4iv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "s, t, r, q");
    {
	GLint	s = (int)SvIV(ST(0))
;
	GLint	t = (int)SvIV(ST(1))
;
	GLint	r = (int)SvIV(ST(2))
;
	GLint	q = (int)SvIV(ST(3))
;
#line 4760 "lib/OpenGL/V1.xs"
	{
		GLint param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glTexCoord4iv(param);
	}
#line 9505 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "s, t, r, q");
    {
	GLshort	s = (short)SvIV(ST(0))
;
	GLshort	t = (short)SvIV(ST(1))
;
	GLshort	r = (short)SvIV(ST(2))
;
	GLshort	q = (short)SvIV(ST(3))
;

	glTexCoord4s(s, t, r, q);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4782 "lib/OpenGL/V1.xs"
	glTexCoord4sv(v);
#line 9544 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4789 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*4);
		glTexCoord4sv(v_s);
	}
#line 9564 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord4sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord4sv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "s, t, r, q");
    {
	GLshort	s = (short)SvIV(ST(0))
;
	GLshort	t = (short)SvIV(ST(1))
;
	GLshort	r = (short)SvIV(ST(2))
;
	GLshort	q = (short)SvIV(ST(3))
;
#line 4803 "lib/OpenGL/V1.xs"
	{
		GLshort param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glTexCoord4sv(param);
	}
#line 9594 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2d)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;

	glRasterPos2d(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4823 "lib/OpenGL/V1.xs"
	glRasterPos2dv(v);
#line 9629 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4830 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*2);
		glRasterPos2dv(v_s);
	}
#line 9649 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2dv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
#line 4842 "lib/OpenGL/V1.xs"
	{
		GLdouble param[2];
		param[0] = x;
		param[1] = y;
		glRasterPos2dv(param);
	}
#line 9673 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2f)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;

	glRasterPos2f(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4860 "lib/OpenGL/V1.xs"
	glRasterPos2fv(v);
#line 9708 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4867 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*2);
		glRasterPos2fv(v_s);
	}
#line 9728 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2fv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
#line 4879 "lib/OpenGL/V1.xs"
	{
		GLfloat param[2];
		param[0] = x;
		param[1] = y;
		glRasterPos2fv(param);
	}
#line 9752 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2i)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;

	glRasterPos2i(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4897 "lib/OpenGL/V1.xs"
	glRasterPos2iv(v);
#line 9787 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4904 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*2);
		glRasterPos2iv(v_s);
	}
#line 9807 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2iv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
#line 4916 "lib/OpenGL/V1.xs"
	{
		GLint param[2];
		param[0] = x;
		param[1] = y;
		glRasterPos2iv(param);
	}
#line 9831 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;

	glRasterPos2s(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4934 "lib/OpenGL/V1.xs"
	glRasterPos2sv(v);
#line 9866 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4941 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*2);
		glRasterPos2sv(v_s);
	}
#line 9886 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos2sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos2sv_p)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "x, y");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
#line 4953 "lib/OpenGL/V1.xs"
	{
		GLshort param[2];
		param[0] = x;
		param[1] = y;
		glRasterPos2sv(param);
	}
#line 9910 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3d)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;

	glRasterPos3d(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 4972 "lib/OpenGL/V1.xs"
	glRasterPos3dv(v);
#line 9947 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 4979 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*3);
		glRasterPos3dv(v_s);
	}
#line 9967 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3dv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;
#line 4992 "lib/OpenGL/V1.xs"
	{
		GLdouble param[3];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		glRasterPos3dv(param);
	}
#line 9994 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3f)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;

	glRasterPos3f(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5012 "lib/OpenGL/V1.xs"
	glRasterPos3fv(v);
#line 10031 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5019 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*3);
		glRasterPos3fv(v_s);
	}
#line 10051 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3fv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;
#line 5032 "lib/OpenGL/V1.xs"
	{
		GLfloat param[3];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		glRasterPos3fv(param);
	}
#line 10078 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3i)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLint	z = (int)SvIV(ST(2))
;

	glRasterPos3i(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5052 "lib/OpenGL/V1.xs"
	glRasterPos3iv(v);
#line 10115 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5059 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*3);
		glRasterPos3iv(v_s);
	}
#line 10135 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3iv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLint	z = (int)SvIV(ST(2))
;
#line 5072 "lib/OpenGL/V1.xs"
	{
		GLint param[3];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		glRasterPos3iv(param);
	}
#line 10162 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
	GLshort	z = (short)SvIV(ST(2))
;

	glRasterPos3s(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5092 "lib/OpenGL/V1.xs"
	glRasterPos3sv(v);
#line 10199 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5099 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*3);
		glRasterPos3sv(v_s);
	}
#line 10219 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos3sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos3sv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
	GLshort	z = (short)SvIV(ST(2))
;
#line 5112 "lib/OpenGL/V1.xs"
	{
		GLshort param[3];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		glRasterPos3sv(param);
	}
#line 10246 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4d)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;
	GLdouble	w = (double)SvNV(ST(3))
;

	glRasterPos4d(x, y, z, w);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5133 "lib/OpenGL/V1.xs"
	glRasterPos4dv(v);
#line 10285 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5140 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*4);
		glRasterPos4dv(v_s);
	}
#line 10305 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4dv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;
	GLdouble	w = (double)SvNV(ST(3))
;
#line 5154 "lib/OpenGL/V1.xs"
	{
		GLdouble param[4];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		param[3] = w;
		glRasterPos4dv(param);
	}
#line 10335 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4f)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;
	GLfloat	w = (float)SvNV(ST(3))
;

	glRasterPos4f(x, y, z, w);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5176 "lib/OpenGL/V1.xs"
	glRasterPos4fv(v);
#line 10374 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5183 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*4);
		glRasterPos4fv(v_s);
	}
#line 10394 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4fv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;
	GLfloat	w = (float)SvNV(ST(3))
;
#line 5197 "lib/OpenGL/V1.xs"
	{
		GLfloat param[4];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		param[3] = w;
		glRasterPos4fv(param);
	}
#line 10424 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4i)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLint	z = (int)SvIV(ST(2))
;
	GLint	w = (int)SvIV(ST(3))
;

	glRasterPos4i(x, y, z, w);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5219 "lib/OpenGL/V1.xs"
	glRasterPos4iv(v);
#line 10463 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5226 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*4);
		glRasterPos4iv(v_s);
	}
#line 10483 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4iv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLint	z = (int)SvIV(ST(2))
;
	GLint	w = (int)SvIV(ST(3))
;
#line 5240 "lib/OpenGL/V1.xs"
	{
		GLint param[4];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		param[3] = w;
		glRasterPos4iv(param);
	}
#line 10513 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
	GLshort	z = (short)SvIV(ST(2))
;
	GLshort	w = (short)SvIV(ST(3))
;

	glRasterPos4s(x, y, z, w);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5262 "lib/OpenGL/V1.xs"
	glRasterPos4sv(v);
#line 10552 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5269 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*4);
		glRasterPos4sv(v_s);
	}
#line 10572 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glRasterPos4sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glRasterPos4sv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
	GLshort	z = (short)SvIV(ST(2))
;
	GLshort	w = (short)SvIV(ST(3))
;
#line 5283 "lib/OpenGL/V1.xs"
	{
		GLshort param[4];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		param[3] = w;
		glRasterPos4sv(param);
	}
#line 10602 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#ifdef GL_VERSION_1_4
#define XSubPPtmpAAAT 1


XS_EUPXS(XS_OpenGL_glBlendColor); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBlendColor)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLclampf	red = (float)SvNV(ST(0))
;
	GLclampf	green = (float)SvNV(ST(1))
;
	GLclampf	blue = (float)SvNV(ST(2))
;
	GLclampf	alpha = (float)SvNV(ST(3))
;
#line 5302 "lib/OpenGL/V1.xs"
		loadProc(glBlendColor,"glBlendColor");
#line 10628 "lib/OpenGL/V1.c"
#line 5304 "lib/OpenGL/V1.xs"
		glBlendColor(red, green, blue, alpha);
#line 10631 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glBlendEquation); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBlendEquation)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
#line 5311 "lib/OpenGL/V1.xs"
		loadProc(glBlendEquation,"glBlendEquation");
#line 10648 "lib/OpenGL/V1.c"
#line 5313 "lib/OpenGL/V1.xs"
		glBlendEquation(mode);
#line 10651 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_OpenGL_glVertex3d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3d)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;

	glVertex3d(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5329 "lib/OpenGL/V1.xs"
	glVertex3dv(v);
#line 10689 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5336 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*3);
		glVertex3dv(v_s);
	}
#line 10709 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3dv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;
#line 5349 "lib/OpenGL/V1.xs"
	{
		GLdouble param[3];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		glVertex3dv(param);
	}
#line 10736 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3f)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;

	glVertex3f(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5369 "lib/OpenGL/V1.xs"
	glVertex3fv(v);
#line 10773 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5376 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*3);
		glVertex3fv(v_s);
	}
#line 10793 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3fv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;
#line 5389 "lib/OpenGL/V1.xs"
	{
		GLfloat param[3];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		glVertex3fv(param);
	}
#line 10820 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3i)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLint	z = (int)SvIV(ST(2))
;

	glVertex3i(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5409 "lib/OpenGL/V1.xs"
	glVertex3iv(v);
#line 10857 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5416 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*3);
		glVertex3iv(v_s);
	}
#line 10877 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3iv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLint	z = (int)SvIV(ST(2))
;
#line 5429 "lib/OpenGL/V1.xs"
	{
		GLint param[3];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		glVertex3iv(param);
	}
#line 10904 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
	GLshort	z = (short)SvIV(ST(2))
;

	glVertex3s(x, y, z);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5449 "lib/OpenGL/V1.xs"
	glVertex3sv(v);
#line 10941 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5456 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*3);
		glVertex3sv(v_s);
	}
#line 10961 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex3sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex3sv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "x, y, z");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
	GLshort	z = (short)SvIV(ST(2))
;
#line 5469 "lib/OpenGL/V1.xs"
	{
		GLshort param[3];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		glVertex3sv(param);
	}
#line 10988 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4d)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;
	GLdouble	w = (double)SvNV(ST(3))
;

	glVertex4d(x, y, z, w);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5490 "lib/OpenGL/V1.xs"
	glVertex4dv(v);
#line 11027 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5497 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*4);
		glVertex4dv(v_s);
	}
#line 11047 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4dv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLdouble	x = (double)SvNV(ST(0))
;
	GLdouble	y = (double)SvNV(ST(1))
;
	GLdouble	z = (double)SvNV(ST(2))
;
	GLdouble	w = (double)SvNV(ST(3))
;
#line 5511 "lib/OpenGL/V1.xs"
	{
		GLdouble param[4];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		param[3] = w;
		glVertex4dv(param);
	}
#line 11077 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4f)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;
	GLfloat	w = (float)SvNV(ST(3))
;

	glVertex4f(x, y, z, w);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5533 "lib/OpenGL/V1.xs"
	glVertex4fv(v);
#line 11116 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5540 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*4);
		glVertex4fv(v_s);
	}
#line 11136 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4fv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLfloat	x = (float)SvNV(ST(0))
;
	GLfloat	y = (float)SvNV(ST(1))
;
	GLfloat	z = (float)SvNV(ST(2))
;
	GLfloat	w = (float)SvNV(ST(3))
;
#line 5554 "lib/OpenGL/V1.xs"
	{
		GLfloat param[4];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		param[3] = w;
		glVertex4fv(param);
	}
#line 11166 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4i)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLint	z = (int)SvIV(ST(2))
;
	GLint	w = (int)SvIV(ST(3))
;

	glVertex4i(x, y, z, w);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5576 "lib/OpenGL/V1.xs"
	glVertex4iv(v);
#line 11205 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5583 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*4);
		glVertex4iv(v_s);
	}
#line 11225 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4iv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLint	x = (int)SvIV(ST(0))
;
	GLint	y = (int)SvIV(ST(1))
;
	GLint	z = (int)SvIV(ST(2))
;
	GLint	w = (int)SvIV(ST(3))
;
#line 5597 "lib/OpenGL/V1.xs"
	{
		GLint param[4];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		param[3] = w;
		glVertex4iv(param);
	}
#line 11255 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
	GLshort	z = (short)SvIV(ST(2))
;
	GLshort	w = (short)SvIV(ST(3))
;

	glVertex4s(x, y, z, w);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5619 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*4);
		glVertex4sv(v_s);
	}
#line 11297 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5629 "lib/OpenGL/V1.xs"
	glVertex4sv(v);
#line 11314 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glVertex4sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glVertex4sv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "x, y, z, w");
    {
	GLshort	x = (short)SvIV(ST(0))
;
	GLshort	y = (short)SvIV(ST(1))
;
	GLshort	z = (short)SvIV(ST(2))
;
	GLshort	w = (short)SvIV(ST(3))
;
#line 5640 "lib/OpenGL/V1.xs"
	{
		GLshort param[4];
		param[0] = x;
		param[1] = y;
		param[2] = z;
		param[3] = w;
		glVertex4sv(param);
	}
#line 11344 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3b); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3b)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLbyte	nx = (int)SvIV(ST(0))
;
	GLbyte	ny = (int)SvIV(ST(1))
;
	GLbyte	nz = (int)SvIV(ST(2))
;

	glNormal3b(nx, ny, nz);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3bv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3bv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5661 "lib/OpenGL/V1.xs"
	glNormal3bv(v);
#line 11381 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3bv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3bv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5668 "lib/OpenGL/V1.xs"
	{
		GLbyte * v_s = EL(v, sizeof(GLbyte)*3);
		glNormal3bv(v_s);
	}
#line 11401 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3bv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3bv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLbyte	nx = (int)SvIV(ST(0))
;
	GLbyte	ny = (int)SvIV(ST(1))
;
	GLbyte	nz = (int)SvIV(ST(2))
;
#line 5681 "lib/OpenGL/V1.xs"
	{
		GLbyte param[3];
		param[0] = nx;
		param[1] = ny;
		param[2] = nz;
		glNormal3bv(param);
	}
#line 11428 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3d)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLdouble	nx = (double)SvNV(ST(0))
;
	GLdouble	ny = (double)SvNV(ST(1))
;
	GLdouble	nz = (double)SvNV(ST(2))
;

	glNormal3d(nx, ny, nz);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5701 "lib/OpenGL/V1.xs"
	glNormal3dv(v);
#line 11465 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5708 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*3);
		glNormal3dv(v_s);
	}
#line 11485 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3dv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLdouble	nx = (double)SvNV(ST(0))
;
	GLdouble	ny = (double)SvNV(ST(1))
;
	GLdouble	nz = (double)SvNV(ST(2))
;
#line 5721 "lib/OpenGL/V1.xs"
	{
		GLdouble param[3];
		param[0] = nx;
		param[1] = ny;
		param[2] = nz;
		glNormal3dv(param);
	}
#line 11512 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3f)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLfloat	nx = (float)SvNV(ST(0))
;
	GLfloat	ny = (float)SvNV(ST(1))
;
	GLfloat	nz = (float)SvNV(ST(2))
;

	glNormal3f(nx, ny, nz);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5741 "lib/OpenGL/V1.xs"
	glNormal3fv(v);
#line 11549 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5748 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*3);
		glNormal3fv(v_s);
	}
#line 11569 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3fv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLfloat	nx = (float)SvNV(ST(0))
;
	GLfloat	ny = (float)SvNV(ST(1))
;
	GLfloat	nz = (float)SvNV(ST(2))
;
#line 5761 "lib/OpenGL/V1.xs"
	{
		GLfloat param[3];
		param[0] = nx;
		param[1] = ny;
		param[2] = nz;
		glNormal3fv(param);
	}
#line 11596 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3i)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLint	nx = (int)SvIV(ST(0))
;
	GLint	ny = (int)SvIV(ST(1))
;
	GLint	nz = (int)SvIV(ST(2))
;

	glNormal3i(nx, ny, nz);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5781 "lib/OpenGL/V1.xs"
	glNormal3iv(v);
#line 11633 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5788 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*3);
		glNormal3iv(v_s);
	}
#line 11653 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3iv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLint	nx = (int)SvIV(ST(0))
;
	GLint	ny = (int)SvIV(ST(1))
;
	GLint	nz = (int)SvIV(ST(2))
;
#line 5801 "lib/OpenGL/V1.xs"
	{
		GLint param[3];
		param[0] = nx;
		param[1] = ny;
		param[2] = nz;
		glNormal3iv(param);
	}
#line 11680 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLshort	nx = (short)SvIV(ST(0))
;
	GLshort	ny = (short)SvIV(ST(1))
;
	GLshort	nz = (short)SvIV(ST(2))
;

	glNormal3s(nx, ny, nz);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5821 "lib/OpenGL/V1.xs"
	glNormal3sv(v);
#line 11717 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5828 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*3);
		glNormal3sv(v_s);
	}
#line 11737 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glNormal3sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glNormal3sv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "nx, ny, nz");
    {
	GLshort	nx = (short)SvIV(ST(0))
;
	GLshort	ny = (short)SvIV(ST(1))
;
	GLshort	nz = (short)SvIV(ST(2))
;
#line 5841 "lib/OpenGL/V1.xs"
	{
		GLshort param[3];
		param[0] = nx;
		param[1] = ny;
		param[2] = nz;
		glNormal3sv(param);
	}
#line 11764 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3b); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3b)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLbyte	red = (int)SvIV(ST(0))
;
	GLbyte	green = (int)SvIV(ST(1))
;
	GLbyte	blue = (int)SvIV(ST(2))
;

	glColor3b(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3bv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3bv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5861 "lib/OpenGL/V1.xs"
	glColor3bv(v);
#line 11801 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3bv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3bv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5868 "lib/OpenGL/V1.xs"
	{
		GLbyte * v_s = EL(v, sizeof(GLbyte)*3);
		glColor3bv(v_s);
	}
#line 11821 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3bv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3bv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLbyte	red = (int)SvIV(ST(0))
;
	GLbyte	green = (int)SvIV(ST(1))
;
	GLbyte	blue = (int)SvIV(ST(2))
;
#line 5881 "lib/OpenGL/V1.xs"
	{
		GLbyte param[3];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		glColor3bv(param);
	}
#line 11848 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3d)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLdouble	red = (double)SvNV(ST(0))
;
	GLdouble	green = (double)SvNV(ST(1))
;
	GLdouble	blue = (double)SvNV(ST(2))
;

	glColor3d(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5901 "lib/OpenGL/V1.xs"
	glColor3dv(v);
#line 11885 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5908 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*3);
		glColor3dv(v_s);
	}
#line 11905 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3dv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLdouble	red = (double)SvNV(ST(0))
;
	GLdouble	green = (double)SvNV(ST(1))
;
	GLdouble	blue = (double)SvNV(ST(2))
;
#line 5921 "lib/OpenGL/V1.xs"
	{
		GLdouble param[3];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		glColor3dv(param);
	}
#line 11932 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3f)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLfloat	red = (float)SvNV(ST(0))
;
	GLfloat	green = (float)SvNV(ST(1))
;
	GLfloat	blue = (float)SvNV(ST(2))
;

	glColor3f(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5941 "lib/OpenGL/V1.xs"
	glColor3fv(v);
#line 11969 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5948 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*3);
		glColor3fv(v_s);
	}
#line 11989 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3fv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLfloat	red = (float)SvNV(ST(0))
;
	GLfloat	green = (float)SvNV(ST(1))
;
	GLfloat	blue = (float)SvNV(ST(2))
;
#line 5961 "lib/OpenGL/V1.xs"
	{
		GLfloat param[3];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		glColor3fv(param);
	}
#line 12016 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3i)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLint	red = (int)SvIV(ST(0))
;
	GLint	green = (int)SvIV(ST(1))
;
	GLint	blue = (int)SvIV(ST(2))
;

	glColor3i(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 5981 "lib/OpenGL/V1.xs"
	glColor3iv(v);
#line 12053 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 5988 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*3);
		glColor3iv(v_s);
	}
#line 12073 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3iv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLint	red = (int)SvIV(ST(0))
;
	GLint	green = (int)SvIV(ST(1))
;
	GLint	blue = (int)SvIV(ST(2))
;
#line 6001 "lib/OpenGL/V1.xs"
	{
		GLint param[3];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		glColor3iv(param);
	}
#line 12100 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3s)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLshort	red = (short)SvIV(ST(0))
;
	GLshort	green = (short)SvIV(ST(1))
;
	GLshort	blue = (short)SvIV(ST(2))
;

	glColor3s(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6021 "lib/OpenGL/V1.xs"
	glColor3sv(v);
#line 12137 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6028 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*3);
		glColor3sv(v_s);
	}
#line 12157 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3sv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLshort	red = (short)SvIV(ST(0))
;
	GLshort	green = (short)SvIV(ST(1))
;
	GLshort	blue = (short)SvIV(ST(2))
;
#line 6041 "lib/OpenGL/V1.xs"
	{
		GLshort param[3];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		glColor3sv(param);
	}
#line 12184 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3ub); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3ub)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLubyte	red = (unsigned int)SvUV(ST(0))
;
	GLubyte	green = (unsigned int)SvUV(ST(1))
;
	GLubyte	blue = (unsigned int)SvUV(ST(2))
;

	glColor3ub(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3ubv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3ubv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6061 "lib/OpenGL/V1.xs"
	glColor3ubv(v);
#line 12221 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3ubv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3ubv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6068 "lib/OpenGL/V1.xs"
	{
		GLubyte * v_s = EL(v, sizeof(GLubyte)*3);
		glColor3ubv(v_s);
	}
#line 12241 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3ubv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3ubv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLubyte	red = (unsigned int)SvUV(ST(0))
;
	GLubyte	green = (unsigned int)SvUV(ST(1))
;
	GLubyte	blue = (unsigned int)SvUV(ST(2))
;
#line 6081 "lib/OpenGL/V1.xs"
	{
		GLubyte param[3];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		glColor3ubv(param);
	}
#line 12268 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3ui); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3ui)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLuint	red = (unsigned int)SvUV(ST(0))
;
	GLuint	green = (unsigned int)SvUV(ST(1))
;
	GLuint	blue = (unsigned int)SvUV(ST(2))
;

	glColor3ui(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3uiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3uiv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6101 "lib/OpenGL/V1.xs"
	glColor3uiv(v);
#line 12305 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3uiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3uiv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6108 "lib/OpenGL/V1.xs"
	{
		GLuint * v_s = EL(v, sizeof(GLuint)*3);
		glColor3uiv(v_s);
	}
#line 12325 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3uiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3uiv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLuint	red = (unsigned int)SvUV(ST(0))
;
	GLuint	green = (unsigned int)SvUV(ST(1))
;
	GLuint	blue = (unsigned int)SvUV(ST(2))
;
#line 6121 "lib/OpenGL/V1.xs"
	{
		GLuint param[3];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		glColor3uiv(param);
	}
#line 12352 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3us); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3us)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLushort	red = (unsigned short)SvUV(ST(0))
;
	GLushort	green = (unsigned short)SvUV(ST(1))
;
	GLushort	blue = (unsigned short)SvUV(ST(2))
;

	glColor3us(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3usv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3usv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6141 "lib/OpenGL/V1.xs"
	glColor3usv(v);
#line 12389 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3usv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3usv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6148 "lib/OpenGL/V1.xs"
	{
		GLushort * v_s = EL(v, sizeof(GLushort)*3);
		glColor3usv(v_s);
	}
#line 12409 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor3usv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor3usv_p)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "red, green, blue");
    {
	GLushort	red = (unsigned short)SvUV(ST(0))
;
	GLushort	green = (unsigned short)SvUV(ST(1))
;
	GLushort	blue = (unsigned short)SvUV(ST(2))
;
#line 6161 "lib/OpenGL/V1.xs"
	{
		GLushort param[3];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		glColor3usv(param);
	}
#line 12436 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4b); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4b)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLbyte	red = (int)SvIV(ST(0))
;
	GLbyte	green = (int)SvIV(ST(1))
;
	GLbyte	blue = (int)SvIV(ST(2))
;
	GLbyte	alpha = (int)SvIV(ST(3))
;

	glColor4b(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4bv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4bv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6182 "lib/OpenGL/V1.xs"
	glColor4bv(v);
#line 12475 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4bv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4bv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6189 "lib/OpenGL/V1.xs"
	{
		GLbyte * v_s = EL(v, sizeof(GLbyte)*4);
		glColor4bv(v_s);
	}
#line 12495 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4bv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4bv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLbyte	red = (int)SvIV(ST(0))
;
	GLbyte	green = (int)SvIV(ST(1))
;
	GLbyte	blue = (int)SvIV(ST(2))
;
	GLbyte	alpha = (int)SvIV(ST(3))
;
#line 6203 "lib/OpenGL/V1.xs"
	{
		GLbyte param[4];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		param[3] = alpha;
		glColor4bv(param);
	}
#line 12525 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4d)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLdouble	red = (double)SvNV(ST(0))
;
	GLdouble	green = (double)SvNV(ST(1))
;
	GLdouble	blue = (double)SvNV(ST(2))
;
	GLdouble	alpha = (double)SvNV(ST(3))
;

	glColor4d(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6225 "lib/OpenGL/V1.xs"
	glColor4dv(v);
#line 12564 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6232 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*4);
		glColor4dv(v_s);
	}
#line 12584 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4dv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLdouble	red = (double)SvNV(ST(0))
;
	GLdouble	green = (double)SvNV(ST(1))
;
	GLdouble	blue = (double)SvNV(ST(2))
;
	GLdouble	alpha = (double)SvNV(ST(3))
;
#line 6246 "lib/OpenGL/V1.xs"
	{
		GLdouble param[4];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		param[3] = alpha;
		glColor4dv(param);
	}
#line 12614 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4f)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLfloat	red = (float)SvNV(ST(0))
;
	GLfloat	green = (float)SvNV(ST(1))
;
	GLfloat	blue = (float)SvNV(ST(2))
;
	GLfloat	alpha = (float)SvNV(ST(3))
;

	glColor4f(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6268 "lib/OpenGL/V1.xs"
	glColor4fv(v);
#line 12653 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6275 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*4);
		glColor4fv(v_s);
	}
#line 12673 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4fv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLfloat	red = (float)SvNV(ST(0))
;
	GLfloat	green = (float)SvNV(ST(1))
;
	GLfloat	blue = (float)SvNV(ST(2))
;
	GLfloat	alpha = (float)SvNV(ST(3))
;
#line 6289 "lib/OpenGL/V1.xs"
	{
		GLfloat param[4];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		param[3] = alpha;
		glColor4fv(param);
	}
#line 12703 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4i)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLint	red = (int)SvIV(ST(0))
;
	GLint	green = (int)SvIV(ST(1))
;
	GLint	blue = (int)SvIV(ST(2))
;
	GLint	alpha = (int)SvIV(ST(3))
;

	glColor4i(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6311 "lib/OpenGL/V1.xs"
	glColor4iv(v);
#line 12742 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6318 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*4);
		glColor4iv(v_s);
	}
#line 12762 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4iv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLint	red = (int)SvIV(ST(0))
;
	GLint	green = (int)SvIV(ST(1))
;
	GLint	blue = (int)SvIV(ST(2))
;
	GLint	alpha = (int)SvIV(ST(3))
;
#line 6332 "lib/OpenGL/V1.xs"
	{
		GLint param[4];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		param[3] = alpha;
		glColor4iv(param);
	}
#line 12792 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4s)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLshort	red = (short)SvIV(ST(0))
;
	GLshort	green = (short)SvIV(ST(1))
;
	GLshort	blue = (short)SvIV(ST(2))
;
	GLshort	alpha = (short)SvIV(ST(3))
;

	glColor4s(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6354 "lib/OpenGL/V1.xs"
	glColor4sv(v);
#line 12831 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6361 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*4);
		glColor4sv(v_s);
	}
#line 12851 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4sv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLshort	red = (short)SvIV(ST(0))
;
	GLshort	green = (short)SvIV(ST(1))
;
	GLshort	blue = (short)SvIV(ST(2))
;
	GLshort	alpha = (short)SvIV(ST(3))
;
#line 6375 "lib/OpenGL/V1.xs"
	{
		GLshort param[4];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		param[3] = alpha;
		glColor4sv(param);
	}
#line 12881 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4ub); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4ub)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLubyte	red = (unsigned int)SvUV(ST(0))
;
	GLubyte	green = (unsigned int)SvUV(ST(1))
;
	GLubyte	blue = (unsigned int)SvUV(ST(2))
;
	GLubyte	alpha = (unsigned int)SvUV(ST(3))
;

	glColor4ub(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4ubv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4ubv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6397 "lib/OpenGL/V1.xs"
	glColor4ubv(v);
#line 12920 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4ubv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4ubv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6404 "lib/OpenGL/V1.xs"
	{
		GLubyte * v_s = EL(v, sizeof(GLubyte)*4);
		glColor4ubv(v_s);
	}
#line 12940 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4ubv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4ubv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLubyte	red = (unsigned int)SvUV(ST(0))
;
	GLubyte	green = (unsigned int)SvUV(ST(1))
;
	GLubyte	blue = (unsigned int)SvUV(ST(2))
;
	GLubyte	alpha = (unsigned int)SvUV(ST(3))
;
#line 6418 "lib/OpenGL/V1.xs"
	{
		GLubyte param[4];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		param[3] = alpha;
		glColor4ubv(param);
	}
#line 12970 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4ui); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4ui)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLuint	red = (unsigned int)SvUV(ST(0))
;
	GLuint	green = (unsigned int)SvUV(ST(1))
;
	GLuint	blue = (unsigned int)SvUV(ST(2))
;
	GLuint	alpha = (unsigned int)SvUV(ST(3))
;

	glColor4ui(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4uiv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4uiv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6440 "lib/OpenGL/V1.xs"
	{
		GLuint * v_s = EL(v, sizeof(GLuint)*4);
		glColor4uiv(v_s);
	}
#line 13012 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4uiv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4uiv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6450 "lib/OpenGL/V1.xs"
	glColor4uiv(v);
#line 13029 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4uiv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4uiv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLuint	red = (unsigned int)SvUV(ST(0))
;
	GLuint	green = (unsigned int)SvUV(ST(1))
;
	GLuint	blue = (unsigned int)SvUV(ST(2))
;
	GLuint	alpha = (unsigned int)SvUV(ST(3))
;
#line 6461 "lib/OpenGL/V1.xs"
	{
		GLuint param[4];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		param[3] = alpha;
		glColor4uiv(param);
	}
#line 13059 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4us); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4us)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLushort	red = (unsigned short)SvUV(ST(0))
;
	GLushort	green = (unsigned short)SvUV(ST(1))
;
	GLushort	blue = (unsigned short)SvUV(ST(2))
;
	GLushort	alpha = (unsigned short)SvUV(ST(3))
;

	glColor4us(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4usv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4usv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6483 "lib/OpenGL/V1.xs"
	glColor4usv(v);
#line 13098 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4usv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4usv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6490 "lib/OpenGL/V1.xs"
	{
		GLushort * v_s = EL(v, sizeof(GLushort)*4);
		glColor4usv(v_s);
	}
#line 13118 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glColor4usv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glColor4usv_p)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLushort	red = (unsigned short)SvUV(ST(0))
;
	GLushort	green = (unsigned short)SvUV(ST(1))
;
	GLushort	blue = (unsigned short)SvUV(ST(2))
;
	GLushort	alpha = (unsigned short)SvUV(ST(3))
;
#line 6504 "lib/OpenGL/V1.xs"
	{
		GLushort param[4];
		param[0] = red;
		param[1] = green;
		param[2] = blue;
		param[3] = alpha;
		glColor4usv(param);
	}
#line 13148 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1d); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1d)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLdouble	s = (double)SvNV(ST(0))
;

	glTexCoord1d(s);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1dv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1dv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6523 "lib/OpenGL/V1.xs"
	glTexCoord1dv(v);
#line 13181 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1dv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1dv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6530 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble)*1);
		glTexCoord1dv(v_s);
	}
#line 13201 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1dv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1dv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLdouble	s = (double)SvNV(ST(0))
;
#line 6541 "lib/OpenGL/V1.xs"
	{
		GLdouble param[1];
		param[0] = s;
		glTexCoord1dv(param);
	}
#line 13222 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1f); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1f)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLfloat	s = (float)SvNV(ST(0))
;

	glTexCoord1f(s);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1fv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1fv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6557 "lib/OpenGL/V1.xs"
	glTexCoord1fv(v);
#line 13255 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1fv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1fv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6564 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat)*1);
		glTexCoord1fv(v_s);
	}
#line 13275 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1fv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1fv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLfloat	s = (float)SvNV(ST(0))
;
#line 6575 "lib/OpenGL/V1.xs"
	{
		GLfloat param[1];
		param[0] = s;
		glTexCoord1fv(param);
	}
#line 13296 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1i); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1i)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLint	s = (int)SvIV(ST(0))
;

	glTexCoord1i(s);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1iv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1iv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6591 "lib/OpenGL/V1.xs"
	glTexCoord1iv(v);
#line 13329 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1iv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1iv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6598 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint)*1);
		glTexCoord1iv(v_s);
	}
#line 13349 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1iv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1iv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLint	s = (int)SvIV(ST(0))
;
#line 6609 "lib/OpenGL/V1.xs"
	{
		GLint param[1];
		param[0] = s;
		glTexCoord1iv(param);
	}
#line 13370 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLshort	s = (short)SvIV(ST(0))
;

	glTexCoord1s(s);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1sv_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1sv_c)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	void *	v = INT2PTR(void *,SvIV(ST(0)))
;
#line 6625 "lib/OpenGL/V1.xs"
	glTexCoord1sv(v);
#line 13403 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1sv_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1sv_s)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "v");
    {
	SV *	v = ST(0)
;
#line 6632 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort)*1);
		glTexCoord1sv(v_s);
	}
#line 13423 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexCoord1sv_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexCoord1sv_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "s");
    {
	GLshort	s = (short)SvIV(ST(0))
;
#line 6643 "lib/OpenGL/V1.xs"
	{
		GLshort param[1];
		param[0] = s;
		glTexCoord1sv(param);
	}
#line 13444 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#if defined(GL_VERSION_1_1) || defined(GL_EXT_vertex_array)
#define XSubPPtmpAAAU 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 6660 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glVertexPointerEXT,"glVertexPointerEXT");
#endif
#line 13474 "lib/OpenGL/V1.c"
#line 6664 "lib/OpenGL/V1.xs"
#ifdef GL_VERSION_1_1
		glVertexPointer(size, type, stride, pointer);
#else // GL_EXT_vertex_array
		glVertexPointerEXT(size, type, stride, count, pointer);
#endif
#line 13481 "lib/OpenGL/V1.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 6679 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glVertexPointerEXT,"glVertexPointerEXT");
#endif
#line 13508 "lib/OpenGL/V1.c"
#line 6683 "lib/OpenGL/V1.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 13519 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(1)) ? "" : SvOK(ST(1)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glVertexPointerEXT_p",
			"oga", "OpenGL::Array",
			refstr, ST(1)
		);
	}
;
#line 6699 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glVertexPointerEXT,"glVertexPointerEXT");
#endif
#line 13553 "lib/OpenGL/V1.c"
#line 6703 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 13573 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(1)) ? "" : SvOK(ST(1)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glVertexPointer_p",
			"oga", "OpenGL::Array",
			refstr, ST(1)
		);
	}
;
#line 6728 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glVertexPointerEXT,"glVertexPointerEXT");
#endif
#line 13607 "lib/OpenGL/V1.c"
#line 6732 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 13627 "lib/OpenGL/V1.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 6760 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glNormalPointerEXT,"glNormalPointerEXT");
#endif
#line 13654 "lib/OpenGL/V1.c"
#line 6764 "lib/OpenGL/V1.xs"
#ifdef GL_VERSION_1_1
		glNormalPointer(type, stride, pointer);
#else // GL_EXT_vertex_array
		glNormalPointerEXT(type, stride, count, pointer);
#endif
#line 13661 "lib/OpenGL/V1.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 6779 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glNormalPointerEXT,"glNormalPointerEXT");
#endif
#line 13688 "lib/OpenGL/V1.c"
#line 6783 "lib/OpenGL/V1.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 13699 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(0)) ? "" : SvOK(ST(0)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glNormalPointerEXT_p",
			"oga", "OpenGL::Array",
			refstr, ST(0)
		);
	}
;
#line 6798 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glNormalPointerEXT,"glNormalPointerEXT");
#endif
#line 13731 "lib/OpenGL/V1.c"
#line 6802 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 13751 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(0)) ? "" : SvOK(ST(0)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glNormalPointer_p",
			"oga", "OpenGL::Array",
			refstr, ST(0)
		);
	}
;
#line 6826 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glNormalPointerEXT,"glNormalPointerEXT");
#endif
#line 13783 "lib/OpenGL/V1.c"
#line 6830 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 13803 "lib/OpenGL/V1.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 6858 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glColorPointerEXT,"glColorPointerEXT");
#endif
#line 13830 "lib/OpenGL/V1.c"
#line 6862 "lib/OpenGL/V1.xs"
#ifdef GL_VERSION_1_1
		glColorPointer(size, type, stride, pointer);
#else // GL_EXT_vertex_array
		glColorPointerEXT(size, type, stride, count, pointer);
#endif
#line 13837 "lib/OpenGL/V1.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 6877 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glColorPointerEXT,"glColorPointerEXT");
#endif
#line 13864 "lib/OpenGL/V1.c"
#line 6881 "lib/OpenGL/V1.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 13875 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(1)) ? "" : SvOK(ST(1)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glColorPointerEXT_p",
			"oga", "OpenGL::Array",
			refstr, ST(1)
		);
	}
;
#line 6897 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glColorPointerEXT,"glColorPointerEXT");
#endif
#line 13909 "lib/OpenGL/V1.c"
#line 6901 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 13929 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(1)) ? "" : SvOK(ST(1)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glColorPointer_p",
			"oga", "OpenGL::Array",
			refstr, ST(1)
		);
	}
;
#line 6926 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glColorPointerEXT,"glColorPointerEXT");
#endif
#line 13963 "lib/OpenGL/V1.c"
#line 6930 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 13983 "lib/OpenGL/V1.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 6958 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glIndexPointerEXT,"glIndexPointerEXT");
#endif
#line 14010 "lib/OpenGL/V1.c"
#line 6962 "lib/OpenGL/V1.xs"
#ifdef GL_VERSION_1_1
		glIndexPointer(type, stride, pointer);
#else // GL_EXT_vertex_array
		glIndexPointerEXT(type, stride, count, pointer);
#endif
#line 14017 "lib/OpenGL/V1.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 6977 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glIndexPointerEXT,"glIndexPointerEXT");
#endif
#line 14044 "lib/OpenGL/V1.c"
#line 6981 "lib/OpenGL/V1.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 14055 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(0)) ? "" : SvOK(ST(0)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glIndexPointerEXT_p",
			"oga", "OpenGL::Array",
			refstr, ST(0)
		);
	}
;
#line 6996 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glIndexPointerEXT,"glIndexPointerEXT");
#endif
#line 14087 "lib/OpenGL/V1.c"
#line 7000 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 14107 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(0)) ? "" : SvOK(ST(0)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glIndexPointer_p",
			"oga", "OpenGL::Array",
			refstr, ST(0)
		);
	}
;
#line 7024 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glIndexPointerEXT,"glIndexPointerEXT");
#endif
#line 14139 "lib/OpenGL/V1.c"
#line 7028 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 14159 "lib/OpenGL/V1.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 7056 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glTexCoordPointerEXT");
#endif
#line 14186 "lib/OpenGL/V1.c"
#line 7060 "lib/OpenGL/V1.xs"
#ifdef GL_VERSION_1_1
		glTexCoordPointer(size, type, stride, pointer);
#else // GL_EXT_vertex_array
		glTexCoordPointerEXT(size, type, stride, count, pointer);
#endif
#line 14193 "lib/OpenGL/V1.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 7075 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glTexCoordPointerEXT");
#endif
#line 14220 "lib/OpenGL/V1.c"
#line 7079 "lib/OpenGL/V1.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 14231 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(1)) ? "" : SvOK(ST(1)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glTexCoordPointerEXT_p",
			"oga", "OpenGL::Array",
			refstr, ST(1)
		);
	}
;
#line 7095 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glTexCoordPointerEXT");
#endif
#line 14265 "lib/OpenGL/V1.c"
#line 7099 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 14285 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(1)) ? "" : SvOK(ST(1)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glTexCoordPointer_p",
			"oga", "OpenGL::Array",
			refstr, ST(1)
		);
	}
;
#line 7124 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glTexCoordPointerEXT");
#endif
#line 14319 "lib/OpenGL/V1.c"
#line 7128 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 14339 "lib/OpenGL/V1.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 7156 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glEdgeFlagPointerEXT");
#endif
#line 14366 "lib/OpenGL/V1.c"
#line 7160 "lib/OpenGL/V1.xs"
#ifdef GL_VERSION_1_1
		glEdgeFlagPointer(stride, pointer);
#else // GL_EXT_vertex_array
		glEdgeFlagPointerEXT(stride, count, pointer);
#endif
#line 14373 "lib/OpenGL/V1.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 7175 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glEdgeFlagPointerEXT");
#endif
#line 14400 "lib/OpenGL/V1.c"
#line 7179 "lib/OpenGL/V1.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 14411 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(0)) ? "" : SvOK(ST(0)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glEdgeFlagPointerEXT_p",
			"oga", "OpenGL::Array",
			refstr, ST(0)
		);
	}
;
#line 7194 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glEdgeFlagPointerEXT");
#endif
#line 14443 "lib/OpenGL/V1.c"
#line 7198 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 14463 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(0)) ? "" : SvOK(ST(0)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glEdgeFlagPointer_p",
			"oga", "OpenGL::Array",
			refstr, ST(0)
		);
	}
;
#line 7222 "lib/OpenGL/V1.xs"
#ifndef GL_VERSION_1_1 // GL_EXT_vertex_array
		loadProc(glTexCoordPointerEXT,"glEdgeFlagPointerEXT");
#endif
#line 14495 "lib/OpenGL/V1.c"
#line 7226 "lib/OpenGL/V1.xs"
	{
		GLvoid * data = oga->data;
#ifdef GL_VERSION_2_0
		glBindBufferARB(GL_ARRAY_BUFFER, oga->bind);
		if (oga->bind) data = NULL;
#elif defined(GL_ARB_vertex_buffer_object)
		if (testProc(glBindBufferARB,"glBindBufferARB"))
		{
			glBindBufferARB(GL_ARRAY_BUFFER_ARB, oga->bind);
			if (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 14515 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_EXT_vertex_array || GL_VERSION_1_1
#ifdef GL_VERSION_1_1
#define XSubPPtmpAAAV 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 7259 "lib/OpenGL/V1.xs"
		glVertexPointer(size, type, stride, pointer);
#line 14542 "lib/OpenGL/V1.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 7269 "lib/OpenGL/V1.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 14572 "lib/OpenGL/V1.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 7285 "lib/OpenGL/V1.xs"
		glNormalPointer(type, stride, pointer);
#line 14593 "lib/OpenGL/V1.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 7294 "lib/OpenGL/V1.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 14621 "lib/OpenGL/V1.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 7311 "lib/OpenGL/V1.xs"
		glColorPointer(size, type, stride, pointer);
#line 14644 "lib/OpenGL/V1.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 7321 "lib/OpenGL/V1.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 14674 "lib/OpenGL/V1.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 7337 "lib/OpenGL/V1.xs"
		glIndexPointer(type, stride, pointer);
#line 14695 "lib/OpenGL/V1.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 7346 "lib/OpenGL/V1.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 14723 "lib/OpenGL/V1.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 7363 "lib/OpenGL/V1.xs"
		glTexCoordPointer(size, type, stride, pointer);
#line 14746 "lib/OpenGL/V1.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 7373 "lib/OpenGL/V1.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 14776 "lib/OpenGL/V1.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 7388 "lib/OpenGL/V1.xs"
		glEdgeFlagPointer(stride, pointer);
#line 14795 "lib/OpenGL/V1.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 7396 "lib/OpenGL/V1.xs"
	{
		int width = stride ? stride : sizeof(GLboolean);
		void * pointer_s = NULL;
		if ( pointer ) {
			pointer_s = EL(pointer, width);
		}
		glEdgeFlagPointer(stride, pointer_s);
	}
#line 14821 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_VERSION_1_1
#ifdef GL_VERSION_1_4
#define XSubPPtmpAAAW 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 7415 "lib/OpenGL/V1.xs"
	{
		glBindBuffer(target,buffer);
	}
#line 14846 "lib/OpenGL/V1.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 7425 "lib/OpenGL/V1.xs"
	{
		glDeleteBuffers(n,buffers);
	}
#line 14867 "lib/OpenGL/V1.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 7435 "lib/OpenGL/V1.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glDeleteBuffers(n,buffers_s);
	}
#line 14889 "lib/OpenGL/V1.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 */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 7444 "lib/OpenGL/V1.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 14915 "lib/OpenGL/V1.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 7463 "lib/OpenGL/V1.xs"
	{
		glGenBuffers(n, buffers);
	}
#line 14936 "lib/OpenGL/V1.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 7473 "lib/OpenGL/V1.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glGenBuffers(n, buffers_s);
	}
#line 14958 "lib/OpenGL/V1.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 7483 "lib/OpenGL/V1.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 14989 "lib/OpenGL/V1.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 7502 "lib/OpenGL/V1.xs"
	{
		RETVAL = glIsBuffer(buffer);
	}
#line 15010 "lib/OpenGL/V1.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 7516 "lib/OpenGL/V1.xs"
	{
		glBufferData(target,size,data,usage);
	}
#line 15036 "lib/OpenGL/V1.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 7528 "lib/OpenGL/V1.xs"
	{
		void * data_s = EL(data, size);
		glBufferData(target,size,data_s,usage);
	}
#line 15062 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(1)) ? "" : SvOK(ST(1)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glBufferData_p",
			"oga", "OpenGL::Array",
			refstr, ST(1)
		);
	}
;
#line 7540 "lib/OpenGL/V1.xs"
	{
		glBufferData(target,oga->data_length,oga->data,usage);
	}
#line 15098 "lib/OpenGL/V1.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 7552 "lib/OpenGL/V1.xs"
	{
		glBufferSubData(target,offset,size,data);
	}
#line 15123 "lib/OpenGL/V1.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 7564 "lib/OpenGL/V1.xs"
	{
		void * data_s = EL(data, size);
		glBufferSubData(target,offset,size,data);
	}
#line 15149 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(2)) ? "" : SvOK(ST(2)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glBufferSubData_p",
			"oga", "OpenGL::Array",
			refstr, ST(2)
		);
	}
;
#line 7576 "lib/OpenGL/V1.xs"
	{
		glBufferSubData(target,offset*oga->total_types_width,oga->data_length,oga->data);
	}
#line 15185 "lib/OpenGL/V1.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 7588 "lib/OpenGL/V1.xs"
		glGetBufferSubData(target,offset,size,data);
#line 15208 "lib/OpenGL/V1.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 7598 "lib/OpenGL/V1.xs"
	{
		GLubyte * data_s = EL(data,size);
		glGetBufferSubData(target,offset,size,data_s);
	}
#line 15234 "lib/OpenGL/V1.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 7611 "lib/OpenGL/V1.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 15303 "lib/OpenGL/V1.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 7668 "lib/OpenGL/V1.xs"
		RETVAL = glMapBuffer(target,access);
#line 15330 "lib/OpenGL/V1.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 7681 "lib/OpenGL/V1.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 15400 "lib/OpenGL/V1.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 7737 "lib/OpenGL/V1.xs"
		RETVAL = glUnmapBuffer(target);
#line 15424 "lib/OpenGL/V1.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 7748 "lib/OpenGL/V1.xs"
		glGetBufferParameteriv(target,pname,params);
#line 15446 "lib/OpenGL/V1.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 7757 "lib/OpenGL/V1.xs"
	{
		GLint * params_s = EL(params, sizeof(GLint)*1);
		glGetBufferParameteriv(target,pname,params_s);
	}
#line 15470 "lib/OpenGL/V1.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 7768 "lib/OpenGL/V1.xs"
	{
		GLint	ret;
		glGetBufferParameteriv(target,pname,&ret);
		PUSHs(sv_2mortal(newSViv(ret)));
	}
#line 15495 "lib/OpenGL/V1.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 7781 "lib/OpenGL/V1.xs"
		glGetBufferPointerv(target,pname,&params);
#line 15517 "lib/OpenGL/V1.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 7790 "lib/OpenGL/V1.xs"
	{
		void ** params_s = EL(params, sizeof(void*));
		glGetBufferPointerv(target,pname,params_s);
	}
#line 15541 "lib/OpenGL/V1.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 7802 "lib/OpenGL/V1.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 15609 "lib/OpenGL/V1.c"
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
	    sv_setref_pv(RETVALSV, "OpenGL::Array", (void*)RETVAL);
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif // GL_VERSION_1_4
#if defined(GL_VERSION_1_2_1) || defined(GL_VERSION_1_3)
#define XSubPPtmpAAAX 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 7863 "lib/OpenGL/V1.xs"
		glActiveTexture(texture);
#line 15636 "lib/OpenGL/V1.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 7870 "lib/OpenGL/V1.xs"
		glClientActiveTexture(texture);
#line 15653 "lib/OpenGL/V1.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 7878 "lib/OpenGL/V1.xs"
		glMultiTexCoord1d(target,s);
#line 15672 "lib/OpenGL/V1.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 7886 "lib/OpenGL/V1.xs"
		glMultiTexCoord1dv(target,v);
#line 15691 "lib/OpenGL/V1.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 7894 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord1dv(target,v_s);
	}
#line 15713 "lib/OpenGL/V1.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 7906 "lib/OpenGL/V1.xs"
	{
		glMultiTexCoord1dv(target,&s);
	}
#line 15734 "lib/OpenGL/V1.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 7916 "lib/OpenGL/V1.xs"
		glMultiTexCoord1f(target,s);
#line 15753 "lib/OpenGL/V1.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 7924 "lib/OpenGL/V1.xs"
		glMultiTexCoord1fv(target,v);
#line 15772 "lib/OpenGL/V1.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 7932 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord1fv(target,v_s);
	}
#line 15794 "lib/OpenGL/V1.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 7944 "lib/OpenGL/V1.xs"
	{
		glMultiTexCoord1fv(target,&s);
	}
#line 15815 "lib/OpenGL/V1.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 7954 "lib/OpenGL/V1.xs"
		glMultiTexCoord1i(target,s);
#line 15834 "lib/OpenGL/V1.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 7962 "lib/OpenGL/V1.xs"
		glMultiTexCoord1iv(target,v);
#line 15853 "lib/OpenGL/V1.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 7970 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord1iv(target,v_s);
	}
#line 15875 "lib/OpenGL/V1.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 7982 "lib/OpenGL/V1.xs"
	{
		glMultiTexCoord1iv(target,&s);
	}
#line 15896 "lib/OpenGL/V1.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 7992 "lib/OpenGL/V1.xs"
		glMultiTexCoord1s(target,s);
#line 15915 "lib/OpenGL/V1.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 8000 "lib/OpenGL/V1.xs"
		glMultiTexCoord1sv(target,v);
#line 15934 "lib/OpenGL/V1.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 8008 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord1sv(target,v_s);
	}
#line 15956 "lib/OpenGL/V1.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 8020 "lib/OpenGL/V1.xs"
	{
		glMultiTexCoord1sv(target,&s);
	}
#line 15977 "lib/OpenGL/V1.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 8031 "lib/OpenGL/V1.xs"
		glMultiTexCoord2d(target,s,t);
#line 15998 "lib/OpenGL/V1.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 8039 "lib/OpenGL/V1.xs"
		glMultiTexCoord2dv(target,v);
#line 16017 "lib/OpenGL/V1.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 8047 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord2dv(target,v_s);
	}
#line 16039 "lib/OpenGL/V1.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 8060 "lib/OpenGL/V1.xs"
	{
		GLdouble param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2dv(target,param);
	}
#line 16065 "lib/OpenGL/V1.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 8074 "lib/OpenGL/V1.xs"
		glMultiTexCoord2f(target,s,t);
#line 16086 "lib/OpenGL/V1.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 8082 "lib/OpenGL/V1.xs"
		glMultiTexCoord2fv(target,v);
#line 16105 "lib/OpenGL/V1.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 8090 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord2fv(target,v_s);
	}
#line 16127 "lib/OpenGL/V1.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 8103 "lib/OpenGL/V1.xs"
	{
		GLfloat param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2fv(target,param);
	}
#line 16153 "lib/OpenGL/V1.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 8117 "lib/OpenGL/V1.xs"
		glMultiTexCoord2i(target,s,t);
#line 16174 "lib/OpenGL/V1.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 8125 "lib/OpenGL/V1.xs"
		glMultiTexCoord2iv(target,v);
#line 16193 "lib/OpenGL/V1.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 8133 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord2iv(target,v_s);
	}
#line 16215 "lib/OpenGL/V1.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 8146 "lib/OpenGL/V1.xs"
	{
		GLint param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2iv(target,param);
	}
#line 16241 "lib/OpenGL/V1.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 8160 "lib/OpenGL/V1.xs"
		glMultiTexCoord2s(target,s,t);
#line 16262 "lib/OpenGL/V1.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 8168 "lib/OpenGL/V1.xs"
		glMultiTexCoord2sv(target,v);
#line 16281 "lib/OpenGL/V1.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 8176 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord2sv(target,v_s);
	}
#line 16303 "lib/OpenGL/V1.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 8189 "lib/OpenGL/V1.xs"
	{
		GLshort param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2sv(target,param);
	}
#line 16329 "lib/OpenGL/V1.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 8204 "lib/OpenGL/V1.xs"
		glMultiTexCoord3d(target,s,t,r);
#line 16352 "lib/OpenGL/V1.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 8212 "lib/OpenGL/V1.xs"
		glMultiTexCoord3dv(target,v);
#line 16371 "lib/OpenGL/V1.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 8220 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord3dv(target,v_s);
	}
#line 16393 "lib/OpenGL/V1.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 8234 "lib/OpenGL/V1.xs"
	{
		GLdouble param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3dv(target,param);
	}
#line 16422 "lib/OpenGL/V1.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 8250 "lib/OpenGL/V1.xs"
		glMultiTexCoord3f(target,s,t,r);
#line 16445 "lib/OpenGL/V1.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 8258 "lib/OpenGL/V1.xs"
		glMultiTexCoord3fv(target,v);
#line 16464 "lib/OpenGL/V1.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 8266 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord3fv(target,v_s);
	}
#line 16486 "lib/OpenGL/V1.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 8280 "lib/OpenGL/V1.xs"
	{
		GLfloat param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3fv(target,param);
	}
#line 16515 "lib/OpenGL/V1.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 8296 "lib/OpenGL/V1.xs"
		glMultiTexCoord3i(target,s,t,r);
#line 16538 "lib/OpenGL/V1.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 8304 "lib/OpenGL/V1.xs"
		glMultiTexCoord3iv(target,v);
#line 16557 "lib/OpenGL/V1.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 8312 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord3iv(target,v_s);
	}
#line 16579 "lib/OpenGL/V1.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 8326 "lib/OpenGL/V1.xs"
	{
		GLint param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3iv(target,param);
	}
#line 16608 "lib/OpenGL/V1.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 8342 "lib/OpenGL/V1.xs"
		glMultiTexCoord3s(target,s,t,r);
#line 16631 "lib/OpenGL/V1.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 8350 "lib/OpenGL/V1.xs"
		glMultiTexCoord3sv(target,v);
#line 16650 "lib/OpenGL/V1.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 8358 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord3sv(target,v_s);
	}
#line 16672 "lib/OpenGL/V1.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 8372 "lib/OpenGL/V1.xs"
	{
		GLshort param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3sv(target,param);
	}
#line 16701 "lib/OpenGL/V1.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 8389 "lib/OpenGL/V1.xs"
		glMultiTexCoord4d(target,s,t,r,q);
#line 16726 "lib/OpenGL/V1.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 8397 "lib/OpenGL/V1.xs"
		glMultiTexCoord4dv(target,v);
#line 16745 "lib/OpenGL/V1.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 8405 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord4dv(target,v_s);
	}
#line 16767 "lib/OpenGL/V1.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 8420 "lib/OpenGL/V1.xs"
	{
		GLdouble param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4dv(target,param);
	}
#line 16799 "lib/OpenGL/V1.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 8438 "lib/OpenGL/V1.xs"
		glMultiTexCoord4f(target,s,t,r,q);
#line 16824 "lib/OpenGL/V1.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 8446 "lib/OpenGL/V1.xs"
		glMultiTexCoord4fv(target,v);
#line 16843 "lib/OpenGL/V1.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 8454 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord4fv(target,v_s);
	}
#line 16865 "lib/OpenGL/V1.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 8469 "lib/OpenGL/V1.xs"
	{
		GLfloat param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4fv(target,param);
	}
#line 16897 "lib/OpenGL/V1.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 8487 "lib/OpenGL/V1.xs"
		glMultiTexCoord4i(target,s,t,r,q);
#line 16922 "lib/OpenGL/V1.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 8495 "lib/OpenGL/V1.xs"
		glMultiTexCoord4iv(target,v);
#line 16941 "lib/OpenGL/V1.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 8503 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord4iv(target,v_s);
	}
#line 16963 "lib/OpenGL/V1.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 8518 "lib/OpenGL/V1.xs"
	{
		GLint param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4iv(target,param);
	}
#line 16995 "lib/OpenGL/V1.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 8536 "lib/OpenGL/V1.xs"
		glMultiTexCoord4s(target,s,t,r,q);
#line 17020 "lib/OpenGL/V1.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 8544 "lib/OpenGL/V1.xs"
		glMultiTexCoord4sv(target,v);
#line 17039 "lib/OpenGL/V1.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 8552 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord4sv(target,v_s);
	}
#line 17061 "lib/OpenGL/V1.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 8567 "lib/OpenGL/V1.xs"
	{
		GLshort param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4sv(target,param);
	}
#line 17093 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif // defined(GL_VERSION_1_2_1) || defined(GL_VERSION_1_3)
#ifdef GL_VERSION_1_5
#define XSubPPtmpAAAY 1


XS_EUPXS(XS_OpenGL_glGenQueries_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGenQueries_p)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "n");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	GLint	n = (int)SvIV(ST(0))
;
#line 8585 "lib/OpenGL/V1.xs"
		loadProc(glGenQueries,"glGenQueries");
#line 17116 "lib/OpenGL/V1.c"
#line 8587 "lib/OpenGL/V1.xs"
	if (n) {
		GLuint * ids = malloc(sizeof(GLuint) * n);
		int i;

		glGenQueries(n, ids);

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

		free(ids);
	}
#line 17130 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glDeleteQueries); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glDeleteQueries)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
#line 8604 "lib/OpenGL/V1.xs"
		loadProc(glDeleteQueries,"glDeleteQueries");
#line 17148 "lib/OpenGL/V1.c"
#line 8606 "lib/OpenGL/V1.xs"
	{
		GLsizei n = items;
		GLuint * ids = malloc(sizeof(GLuint) * (n+1));
		int i;

		for (i=0;i<n;i++)
			ids[i] = SvIV(ST(i));

		glDeleteQueries(n, ids);

		free(ids);
	}
#line 17162 "lib/OpenGL/V1.c"
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_OpenGL_glGetQueryObjectiv); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetQueryObjectiv)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "id, pname");
    {
	GLuint	id = (unsigned int)SvUV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLint	RETVAL;
	dXSTARG;
#line 8625 "lib/OpenGL/V1.xs"
		loadProc(glGetQueryObjectiv,"glGetQueryObjectiv");
#line 17184 "lib/OpenGL/V1.c"
#line 8627 "lib/OpenGL/V1.xs"
		{
		GLuint result;
		glGetQueryObjectiv(id, pname, &result);
		RETVAL = result;
		}
#line 17191 "lib/OpenGL/V1.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glGetQueryObjectuiv); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetQueryObjectuiv)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "id, pname");
    {
	GLuint	id = (unsigned int)SvUV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLuint	RETVAL;
	dXSTARG;
#line 8641 "lib/OpenGL/V1.xs"
		loadProc(glGetQueryObjectuiv,"glGetQueryObjectuiv");
#line 17214 "lib/OpenGL/V1.c"
#line 8643 "lib/OpenGL/V1.xs"
		{
		GLuint result;
		glGetQueryObjectuiv(id, pname, &result);
		RETVAL = result;
		}
#line 17221 "lib/OpenGL/V1.c"
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glGetQueryiv); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glGetQueryiv)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, pname");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLenum	pname = (int)SvIV(ST(1))
;
	GLint	RETVAL;
	dXSTARG;
#line 8657 "lib/OpenGL/V1.xs"
		loadProc(glGetQueryiv,"glGetQueryiv");
#line 17244 "lib/OpenGL/V1.c"
#line 8659 "lib/OpenGL/V1.xs"
		{
		GLint result;
		glGetQueryiv(target, pname, &result);
		RETVAL = result;
		}
#line 17251 "lib/OpenGL/V1.c"
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_OpenGL_glBeginQuery); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBeginQuery)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "target, id");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLuint	id = (unsigned int)SvUV(ST(1))
;
#line 8673 "lib/OpenGL/V1.xs"
		loadProc(glBeginQuery,"glBeginQuery");
#line 17272 "lib/OpenGL/V1.c"

	glBeginQuery(target, id);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glEndQuery); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glEndQuery)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "target");
    {
	GLenum	target = (int)SvIV(ST(0))
;
#line 8680 "lib/OpenGL/V1.xs"
		loadProc(glEndQuery,"glEndQuery");
#line 17291 "lib/OpenGL/V1.c"

	glEndQuery(target);
    }
    XSRETURN_EMPTY;
}

#endif // GL_VERSION_1_5
#ifdef GL_MESA_resize_buffers
#define XSubPPtmpAAAZ 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
#ifndef NO_GL_EXT_vertex_array
#ifdef GL_EXT_vertex_array
#define XSubPPtmpAABA 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 8700 "lib/OpenGL/V1.xs"
		loadProc(glArrayElementEXT,"glArrayElementEXT");
#line 17333 "lib/OpenGL/V1.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 8709 "lib/OpenGL/V1.xs"
		loadProc(glDrawArraysEXT,"glDrawArraysEXT");
#line 17356 "lib/OpenGL/V1.c"

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

#endif // GL_EXT_vertex_array
#endif // !NO_GL_EXT_vertex_array
#ifdef GL_ARB_vertex_buffer_object
#define XSubPPtmpAABB 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 8722 "lib/OpenGL/V1.xs"
		loadProc(glBindBufferARB,"glBindBufferARB");
#line 17382 "lib/OpenGL/V1.c"
#line 8724 "lib/OpenGL/V1.xs"
	{
		glBindBufferARB(target,buffer);
	}
#line 17387 "lib/OpenGL/V1.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 8734 "lib/OpenGL/V1.xs"
		loadProc(glDeleteBuffersARB,"glDeleteBuffersARB");
#line 17406 "lib/OpenGL/V1.c"
#line 8736 "lib/OpenGL/V1.xs"
	{
		glDeleteBuffersARB(n,buffers);
	}
#line 17411 "lib/OpenGL/V1.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 8746 "lib/OpenGL/V1.xs"
		loadProc(glDeleteBuffersARB,"glDeleteBuffersARB");
#line 17430 "lib/OpenGL/V1.c"
#line 8748 "lib/OpenGL/V1.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glDeleteBuffersARB(n,buffers_s);
	}
#line 17436 "lib/OpenGL/V1.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 */
    PERL_UNUSED_VAR(items); /* -W */
    {
#line 8757 "lib/OpenGL/V1.xs"
		loadProc(glDeleteBuffersARB,"glDeleteBuffersARB");
#line 17451 "lib/OpenGL/V1.c"
#line 8759 "lib/OpenGL/V1.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 17465 "lib/OpenGL/V1.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 8778 "lib/OpenGL/V1.xs"
		loadProc(glGenBuffersARB,"glGenBuffersARB");
#line 17484 "lib/OpenGL/V1.c"
#line 8780 "lib/OpenGL/V1.xs"
	{
		glGenBuffersARB(n, buffers);
	}
#line 17489 "lib/OpenGL/V1.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 8790 "lib/OpenGL/V1.xs"
		loadProc(glGenBuffersARB,"glGenBuffersARB");
#line 17508 "lib/OpenGL/V1.c"
#line 8792 "lib/OpenGL/V1.xs"
	{
		void * buffers_s = EL(buffers, sizeof(GLuint)*n);
		glGenBuffersARB(n, buffers_s);
	}
#line 17514 "lib/OpenGL/V1.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 8802 "lib/OpenGL/V1.xs"
		loadProc(glGenBuffersARB,"glGenBuffersARB");
#line 17533 "lib/OpenGL/V1.c"
#line 8804 "lib/OpenGL/V1.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 17548 "lib/OpenGL/V1.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 8823 "lib/OpenGL/V1.xs"
		loadProc(glIsBufferARB,"glIsBufferARB");
#line 17567 "lib/OpenGL/V1.c"
#line 8825 "lib/OpenGL/V1.xs"
	{
		RETVAL = glIsBufferARB(buffer);
        }
#line 17572 "lib/OpenGL/V1.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 8839 "lib/OpenGL/V1.xs"
		loadProc(glBufferDataARB,"glBufferDataARB");
#line 17596 "lib/OpenGL/V1.c"
#line 8841 "lib/OpenGL/V1.xs"
	{
		glBufferDataARB(target,size,data,usage);
	}
#line 17601 "lib/OpenGL/V1.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 8853 "lib/OpenGL/V1.xs"
		loadProc(glBufferDataARB,"glBufferDataARB");
#line 17624 "lib/OpenGL/V1.c"
#line 8855 "lib/OpenGL/V1.xs"
	{
		void * data_s = EL(data, size);
		glBufferDataARB(target,size,data_s,usage);
	}
#line 17630 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(1)) ? "" : SvOK(ST(1)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glBufferDataARB_p",
			"oga", "OpenGL::Array",
			refstr, ST(1)
		);
	}
;
#line 8867 "lib/OpenGL/V1.xs"
		loadProc(glBufferDataARB,"glBufferDataARB");
#line 17664 "lib/OpenGL/V1.c"
#line 8869 "lib/OpenGL/V1.xs"
	{
		glBufferDataARB(target,oga->data_length,oga->data,usage);
	}
#line 17669 "lib/OpenGL/V1.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 8881 "lib/OpenGL/V1.xs"
		loadProc(glBufferSubDataARB,"glBufferSubDataARB");
#line 17692 "lib/OpenGL/V1.c"
#line 8883 "lib/OpenGL/V1.xs"
	{
		glBufferSubDataARB(target,offset,size,data);
	}
#line 17697 "lib/OpenGL/V1.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 8895 "lib/OpenGL/V1.xs"
		loadProc(glBufferSubDataARB,"glBufferSubDataARB");
#line 17720 "lib/OpenGL/V1.c"
#line 8897 "lib/OpenGL/V1.xs"
	{
		void * data_s = EL(data, size);
		glBufferSubDataARB(target,offset,size,data);
	}
#line 17726 "lib/OpenGL/V1.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 {
		const char* refstr = SvROK(ST(2)) ? "" : SvOK(ST(2)) ? "scalar " : "undef";
	    Perl_croak_nocontext("%s: Expected %s to be of type %s; got %s%" SVf " instead",
			"OpenGL::glBufferSubDataARB_p",
			"oga", "OpenGL::Array",
			refstr, ST(2)
		);
	}
;
#line 8909 "lib/OpenGL/V1.xs"
		loadProc(glBufferSubDataARB,"glBufferSubDataARB");
#line 17760 "lib/OpenGL/V1.c"
#line 8911 "lib/OpenGL/V1.xs"
	{
		glBufferSubDataARB(target,offset*oga->total_types_width,oga->data_length,oga->data);
	}
#line 17765 "lib/OpenGL/V1.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 8923 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferSubDataARB,"glBufferSubDataARB");
#line 17788 "lib/OpenGL/V1.c"
#line 8925 "lib/OpenGL/V1.xs"
		glGetBufferSubDataARB(target,offset,size,data);
#line 17791 "lib/OpenGL/V1.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 8935 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferSubDataARB,"glBufferSubDataARB");
#line 17814 "lib/OpenGL/V1.c"
#line 8937 "lib/OpenGL/V1.xs"
	{
		GLubyte * data_s = EL(data,size);
		glGetBufferSubDataARB(target,offset,size,data_s);
	}
#line 17820 "lib/OpenGL/V1.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 8950 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferSubDataARB,"glGetBufferSubDataARB");
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 17843 "lib/OpenGL/V1.c"
#line 8953 "lib/OpenGL/V1.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 17893 "lib/OpenGL/V1.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 9010 "lib/OpenGL/V1.xs"
		loadProc(glMapBufferARB,"glMapBufferARB");
#line 17920 "lib/OpenGL/V1.c"
#line 9012 "lib/OpenGL/V1.xs"
		RETVAL = glMapBufferARB(target,access);
#line 17923 "lib/OpenGL/V1.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 9025 "lib/OpenGL/V1.xs"
		loadProc(glMapBufferARB,"glMapBufferARB");
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 17947 "lib/OpenGL/V1.c"
#line 9028 "lib/OpenGL/V1.xs"
	{
		GLsizeiptrARB size = 0;
		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 17997 "lib/OpenGL/V1.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 9084 "lib/OpenGL/V1.xs"
		loadProc(glUnmapBufferARB,"glUnmapBufferARB");
#line 18021 "lib/OpenGL/V1.c"
#line 9086 "lib/OpenGL/V1.xs"
		RETVAL = glUnmapBufferARB(target);
#line 18024 "lib/OpenGL/V1.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 9097 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 18046 "lib/OpenGL/V1.c"
#line 9099 "lib/OpenGL/V1.xs"
		glGetBufferParameterivARB(target,pname,params);
#line 18049 "lib/OpenGL/V1.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 9108 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 18070 "lib/OpenGL/V1.c"
#line 9110 "lib/OpenGL/V1.xs"
	{
		GLint * params_s = EL(params, sizeof(GLint)*1);
		glGetBufferParameterivARB(target,pname,params_s);
	}
#line 18076 "lib/OpenGL/V1.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 9121 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 18097 "lib/OpenGL/V1.c"
#line 9123 "lib/OpenGL/V1.xs"
	{
		GLint	ret;
		glGetBufferParameterivARB(target,pname,&ret);
		PUSHs(sv_2mortal(newSViv(ret)));
	}
#line 18104 "lib/OpenGL/V1.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 9136 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferPointervARB,"glGetBufferPointervARB");
#line 18126 "lib/OpenGL/V1.c"
#line 9138 "lib/OpenGL/V1.xs"
		glGetBufferPointervARB(target,pname,&params);
#line 18129 "lib/OpenGL/V1.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 9147 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferPointervARB,"glGetBufferPointervARB");
#line 18150 "lib/OpenGL/V1.c"
#line 9149 "lib/OpenGL/V1.xs"
	{
		void ** params_s = EL(params, sizeof(void*));
		glGetBufferPointervARB(target,pname,params_s);
	}
#line 18156 "lib/OpenGL/V1.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 9161 "lib/OpenGL/V1.xs"
		loadProc(glGetBufferPointervARB,"glGetBufferPointervARB");
		loadProc(glGetBufferParameterivARB,"glGetBufferParameterivARB");
#line 18177 "lib/OpenGL/V1.c"
#line 9164 "lib/OpenGL/V1.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 18228 "lib/OpenGL/V1.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
#ifdef GL_ARB_multitexture
#define XSubPPtmpAABC 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 9225 "lib/OpenGL/V1.xs"
		loadProc(glActiveTextureARB,"glActiveTextureARB");
#line 18255 "lib/OpenGL/V1.c"
#line 9227 "lib/OpenGL/V1.xs"
		glActiveTextureARB(texture);
#line 18258 "lib/OpenGL/V1.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 9234 "lib/OpenGL/V1.xs"
		loadProc(glClientActiveTextureARB,"glClientActiveTextureARB");
#line 18275 "lib/OpenGL/V1.c"
#line 9236 "lib/OpenGL/V1.xs"
		glClientActiveTextureARB(texture);
#line 18278 "lib/OpenGL/V1.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 9244 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1dARB,"glMultiTexCoord1dARB");
#line 18297 "lib/OpenGL/V1.c"
#line 9246 "lib/OpenGL/V1.xs"
		glMultiTexCoord1dARB(target,s);
#line 18300 "lib/OpenGL/V1.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 9254 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1dvARB,"glMultiTexCoord1dvARB");
#line 18319 "lib/OpenGL/V1.c"
#line 9256 "lib/OpenGL/V1.xs"
		glMultiTexCoord1dvARB(target,v);
#line 18322 "lib/OpenGL/V1.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 9264 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1dvARB,"glMultiTexCoord1dvARB");
#line 18341 "lib/OpenGL/V1.c"
#line 9266 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord1dvARB(target,v_s);
	}
#line 18347 "lib/OpenGL/V1.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 9278 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1dvARB,"glMultiTexCoord1dvARB");
#line 18366 "lib/OpenGL/V1.c"
#line 9280 "lib/OpenGL/V1.xs"
	{
		glMultiTexCoord1dvARB(target,&s);
	}
#line 18371 "lib/OpenGL/V1.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 9290 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1fARB,"glMultiTexCoord1fARB");
#line 18390 "lib/OpenGL/V1.c"
#line 9292 "lib/OpenGL/V1.xs"
		glMultiTexCoord1fARB(target,s);
#line 18393 "lib/OpenGL/V1.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 9300 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1fvARB,"glMultiTexCoord1fvARB");
#line 18412 "lib/OpenGL/V1.c"
#line 9302 "lib/OpenGL/V1.xs"
		glMultiTexCoord1fvARB(target,v);
#line 18415 "lib/OpenGL/V1.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 9310 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1fvARB,"glMultiTexCoord1fvARB");
#line 18434 "lib/OpenGL/V1.c"
#line 9312 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord1fvARB(target,v_s);
	}
#line 18440 "lib/OpenGL/V1.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 9324 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1fvARB,"glMultiTexCoord1fvARB");
#line 18459 "lib/OpenGL/V1.c"
#line 9326 "lib/OpenGL/V1.xs"
	{
		glMultiTexCoord1fvARB(target,&s);
	}
#line 18464 "lib/OpenGL/V1.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 9336 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1iARB,"glMultiTexCoord1iARB");
#line 18483 "lib/OpenGL/V1.c"
#line 9338 "lib/OpenGL/V1.xs"
		glMultiTexCoord1iARB(target,s);
#line 18486 "lib/OpenGL/V1.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 9346 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1ivARB,"glMultiTexCoord1ivARB");
#line 18505 "lib/OpenGL/V1.c"
#line 9348 "lib/OpenGL/V1.xs"
		glMultiTexCoord1ivARB(target,v);
#line 18508 "lib/OpenGL/V1.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 9356 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1ivARB,"glMultiTexCoord1ivARB");
#line 18527 "lib/OpenGL/V1.c"
#line 9358 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord1ivARB(target,v_s);
	}
#line 18533 "lib/OpenGL/V1.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 9370 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1ivARB,"glMultiTexCoord1ivARB");
#line 18552 "lib/OpenGL/V1.c"
#line 9372 "lib/OpenGL/V1.xs"
	{
		glMultiTexCoord1ivARB(target,&s);
	}
#line 18557 "lib/OpenGL/V1.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 9382 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1sARB,"glMultiTexCoord1sARB");
#line 18576 "lib/OpenGL/V1.c"
#line 9384 "lib/OpenGL/V1.xs"
		glMultiTexCoord1sARB(target,s);
#line 18579 "lib/OpenGL/V1.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 9392 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1svARB,"glMultiTexCoord1svARB");
#line 18598 "lib/OpenGL/V1.c"
#line 9394 "lib/OpenGL/V1.xs"
		glMultiTexCoord1svARB(target,v);
#line 18601 "lib/OpenGL/V1.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 9402 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1svARB,"glMultiTexCoord1svARB");
#line 18620 "lib/OpenGL/V1.c"
#line 9404 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord1svARB(target,v_s);
	}
#line 18626 "lib/OpenGL/V1.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 9416 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord1svARB,"glMultiTexCoord1svARB");
#line 18645 "lib/OpenGL/V1.c"
#line 9418 "lib/OpenGL/V1.xs"
	{
		glMultiTexCoord1svARB(target,&s);
	}
#line 18650 "lib/OpenGL/V1.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 9429 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2dARB,"glMultiTexCoord2dARB");
#line 18671 "lib/OpenGL/V1.c"
#line 9431 "lib/OpenGL/V1.xs"
		glMultiTexCoord2dARB(target,s,t);
#line 18674 "lib/OpenGL/V1.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 9439 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2dvARB,"glMultiTexCoord2dvARB");
#line 18693 "lib/OpenGL/V1.c"
#line 9441 "lib/OpenGL/V1.xs"
		glMultiTexCoord2dvARB(target,v);
#line 18696 "lib/OpenGL/V1.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 9449 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2dvARB,"glMultiTexCoord2dvARB");
#line 18715 "lib/OpenGL/V1.c"
#line 9451 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord2dvARB(target,v_s);
	}
#line 18721 "lib/OpenGL/V1.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 9464 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2dvARB,"glMultiTexCoord2dvARB");
#line 18742 "lib/OpenGL/V1.c"
#line 9466 "lib/OpenGL/V1.xs"
	{
		GLdouble param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2dvARB(target,param);
	}
#line 18750 "lib/OpenGL/V1.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 9480 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2fARB,"glMultiTexCoord2fARB");
#line 18771 "lib/OpenGL/V1.c"
#line 9482 "lib/OpenGL/V1.xs"
		glMultiTexCoord2fARB(target,s,t);
#line 18774 "lib/OpenGL/V1.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 9490 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2fvARB,"glMultiTexCoord2fvARB");
#line 18793 "lib/OpenGL/V1.c"
#line 9492 "lib/OpenGL/V1.xs"
		glMultiTexCoord2fvARB(target,v);
#line 18796 "lib/OpenGL/V1.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 9500 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2fvARB,"glMultiTexCoord2fvARB");
#line 18815 "lib/OpenGL/V1.c"
#line 9502 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord2fvARB(target,v_s);
	}
#line 18821 "lib/OpenGL/V1.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 9515 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2fvARB,"glMultiTexCoord2fvARB");
#line 18842 "lib/OpenGL/V1.c"
#line 9517 "lib/OpenGL/V1.xs"
	{
		GLfloat param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2fvARB(target,param);
	}
#line 18850 "lib/OpenGL/V1.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 9531 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2iARB,"glMultiTexCoord2iARB");
#line 18871 "lib/OpenGL/V1.c"
#line 9533 "lib/OpenGL/V1.xs"
		glMultiTexCoord2iARB(target,s,t);
#line 18874 "lib/OpenGL/V1.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 9541 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2ivARB,"glMultiTexCoord2ivARB");
#line 18893 "lib/OpenGL/V1.c"
#line 9543 "lib/OpenGL/V1.xs"
		glMultiTexCoord2ivARB(target,v);
#line 18896 "lib/OpenGL/V1.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 9551 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2ivARB,"glMultiTexCoord2ivARB");
#line 18915 "lib/OpenGL/V1.c"
#line 9553 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord2ivARB(target,v_s);
	}
#line 18921 "lib/OpenGL/V1.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 9566 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2ivARB,"glMultiTexCoord2ivARB");
#line 18942 "lib/OpenGL/V1.c"
#line 9568 "lib/OpenGL/V1.xs"
	{
		GLint param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2ivARB(target,param);
	}
#line 18950 "lib/OpenGL/V1.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 9582 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2sARB,"glMultiTexCoord2sARB");
#line 18971 "lib/OpenGL/V1.c"
#line 9584 "lib/OpenGL/V1.xs"
		glMultiTexCoord2sARB(target,s,t);
#line 18974 "lib/OpenGL/V1.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 9592 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2svARB,"glMultiTexCoord2svARB");
#line 18993 "lib/OpenGL/V1.c"
#line 9594 "lib/OpenGL/V1.xs"
		glMultiTexCoord2svARB(target,v);
#line 18996 "lib/OpenGL/V1.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 9602 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2svARB,"glMultiTexCoord2svARB");
#line 19015 "lib/OpenGL/V1.c"
#line 9604 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord2svARB(target,v_s);
	}
#line 19021 "lib/OpenGL/V1.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 9617 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord2svARB,"glMultiTexCoord2svARB");
#line 19042 "lib/OpenGL/V1.c"
#line 9619 "lib/OpenGL/V1.xs"
	{
		GLshort param[2];
		param[0] = s;
		param[1] = t;
		glMultiTexCoord2svARB(target,param);
	}
#line 19050 "lib/OpenGL/V1.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 9634 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3dARB,"glMultiTexCoord3dARB");
#line 19073 "lib/OpenGL/V1.c"
#line 9636 "lib/OpenGL/V1.xs"
		glMultiTexCoord3dARB(target,s,t,r);
#line 19076 "lib/OpenGL/V1.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 9644 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3dvARB,"glMultiTexCoord3dvARB");
#line 19095 "lib/OpenGL/V1.c"
#line 9646 "lib/OpenGL/V1.xs"
		glMultiTexCoord3dvARB(target,v);
#line 19098 "lib/OpenGL/V1.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 9654 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3dvARB,"glMultiTexCoord3dvARB");
#line 19117 "lib/OpenGL/V1.c"
#line 9656 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord3dvARB(target,v_s);
	}
#line 19123 "lib/OpenGL/V1.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 9670 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3dvARB,"glMultiTexCoord3dvARB");
#line 19146 "lib/OpenGL/V1.c"
#line 9672 "lib/OpenGL/V1.xs"
	{
		GLdouble param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3dvARB(target,param);
	}
#line 19155 "lib/OpenGL/V1.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 9688 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3fARB,"glMultiTexCoord3fARB");
#line 19178 "lib/OpenGL/V1.c"
#line 9690 "lib/OpenGL/V1.xs"
		glMultiTexCoord3fARB(target,s,t,r);
#line 19181 "lib/OpenGL/V1.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 9698 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3fvARB,"glMultiTexCoord3fvARB");
#line 19200 "lib/OpenGL/V1.c"
#line 9700 "lib/OpenGL/V1.xs"
		glMultiTexCoord3fvARB(target,v);
#line 19203 "lib/OpenGL/V1.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 9708 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3fvARB,"glMultiTexCoord3fvARB");
#line 19222 "lib/OpenGL/V1.c"
#line 9710 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord3fvARB(target,v_s);
	}
#line 19228 "lib/OpenGL/V1.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 9724 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3fvARB,"glMultiTexCoord3fvARB");
#line 19251 "lib/OpenGL/V1.c"
#line 9726 "lib/OpenGL/V1.xs"
	{
		GLfloat param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3fvARB(target,param);
	}
#line 19260 "lib/OpenGL/V1.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 9742 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3iARB,"glMultiTexCoord3iARB");
#line 19283 "lib/OpenGL/V1.c"
#line 9744 "lib/OpenGL/V1.xs"
		glMultiTexCoord3iARB(target,s,t,r);
#line 19286 "lib/OpenGL/V1.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 9752 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3ivARB,"glMultiTexCoord3ivARB");
#line 19305 "lib/OpenGL/V1.c"
#line 9754 "lib/OpenGL/V1.xs"
		glMultiTexCoord3ivARB(target,v);
#line 19308 "lib/OpenGL/V1.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 9762 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3ivARB,"glMultiTexCoord3ivARB");
#line 19327 "lib/OpenGL/V1.c"
#line 9764 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord3ivARB(target,v_s);
	}
#line 19333 "lib/OpenGL/V1.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 9778 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3ivARB,"glMultiTexCoord3ivARB");
#line 19356 "lib/OpenGL/V1.c"
#line 9780 "lib/OpenGL/V1.xs"
	{
		GLint param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3ivARB(target,param);
	}
#line 19365 "lib/OpenGL/V1.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 9796 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3sARB,"glMultiTexCoord3sARB");
#line 19388 "lib/OpenGL/V1.c"
#line 9798 "lib/OpenGL/V1.xs"
		glMultiTexCoord3sARB(target,s,t,r);
#line 19391 "lib/OpenGL/V1.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 9806 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3svARB,"glMultiTexCoord3svARB");
#line 19410 "lib/OpenGL/V1.c"
#line 9808 "lib/OpenGL/V1.xs"
		glMultiTexCoord3svARB(target,v);
#line 19413 "lib/OpenGL/V1.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 9816 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3svARB,"glMultiTexCoord3svARB");
#line 19432 "lib/OpenGL/V1.c"
#line 9818 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord3svARB(target,v_s);
	}
#line 19438 "lib/OpenGL/V1.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 9832 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord3svARB,"glMultiTexCoord3svARB");
#line 19461 "lib/OpenGL/V1.c"
#line 9834 "lib/OpenGL/V1.xs"
	{
		GLshort param[3];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		glMultiTexCoord3svARB(target,param);
	}
#line 19470 "lib/OpenGL/V1.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 9851 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4dARB,"glMultiTexCoord4dARB");
#line 19495 "lib/OpenGL/V1.c"
#line 9853 "lib/OpenGL/V1.xs"
		glMultiTexCoord4dARB(target,s,t,r,q);
#line 19498 "lib/OpenGL/V1.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 9861 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4dvARB,"glMultiTexCoord4dvARB");
#line 19517 "lib/OpenGL/V1.c"
#line 9863 "lib/OpenGL/V1.xs"
		glMultiTexCoord4dvARB(target,v);
#line 19520 "lib/OpenGL/V1.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 9871 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4dvARB,"glMultiTexCoord4dvARB");
#line 19539 "lib/OpenGL/V1.c"
#line 9873 "lib/OpenGL/V1.xs"
	{
		GLdouble * v_s = EL(v, sizeof(GLdouble));
		glMultiTexCoord4dvARB(target,v_s);
	}
#line 19545 "lib/OpenGL/V1.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 9888 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4dvARB,"glMultiTexCoord4dvARB");
#line 19570 "lib/OpenGL/V1.c"
#line 9890 "lib/OpenGL/V1.xs"
	{
		GLdouble param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4dvARB(target,param);
	}
#line 19580 "lib/OpenGL/V1.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 9908 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4fARB,"glMultiTexCoord4fARB");
#line 19605 "lib/OpenGL/V1.c"
#line 9910 "lib/OpenGL/V1.xs"
		glMultiTexCoord4fARB(target,s,t,r,q);
#line 19608 "lib/OpenGL/V1.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 9918 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4fvARB,"glMultiTexCoord4fvARB");
#line 19627 "lib/OpenGL/V1.c"
#line 9920 "lib/OpenGL/V1.xs"
		glMultiTexCoord4fvARB(target,v);
#line 19630 "lib/OpenGL/V1.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 9928 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4fvARB,"glMultiTexCoord4fvARB");
#line 19649 "lib/OpenGL/V1.c"
#line 9930 "lib/OpenGL/V1.xs"
	{
		GLfloat * v_s = EL(v, sizeof(GLfloat));
		glMultiTexCoord4fvARB(target,v_s);
	}
#line 19655 "lib/OpenGL/V1.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 9945 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4fvARB,"glMultiTexCoord4fvARB");
#line 19680 "lib/OpenGL/V1.c"
#line 9947 "lib/OpenGL/V1.xs"
	{
		GLfloat param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4fvARB(target,param);
	}
#line 19690 "lib/OpenGL/V1.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 9965 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4iARB,"glMultiTexCoord4iARB");
#line 19715 "lib/OpenGL/V1.c"
#line 9967 "lib/OpenGL/V1.xs"
		glMultiTexCoord4iARB(target,s,t,r,q);
#line 19718 "lib/OpenGL/V1.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 9975 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4ivARB,"glMultiTexCoord4ivARB");
#line 19737 "lib/OpenGL/V1.c"
#line 9977 "lib/OpenGL/V1.xs"
		glMultiTexCoord4ivARB(target,v);
#line 19740 "lib/OpenGL/V1.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 9985 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4ivARB,"glMultiTexCoord4ivARB");
#line 19759 "lib/OpenGL/V1.c"
#line 9987 "lib/OpenGL/V1.xs"
	{
		GLint * v_s = EL(v, sizeof(GLint));
		glMultiTexCoord4ivARB(target,v_s);
	}
#line 19765 "lib/OpenGL/V1.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 10002 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4ivARB,"glMultiTexCoord4ivARB");
#line 19790 "lib/OpenGL/V1.c"
#line 10004 "lib/OpenGL/V1.xs"
	{
		GLint param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4ivARB(target,param);
	}
#line 19800 "lib/OpenGL/V1.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 10022 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4sARB,"glMultiTexCoord4sARB");
#line 19825 "lib/OpenGL/V1.c"
#line 10024 "lib/OpenGL/V1.xs"
		glMultiTexCoord4sARB(target,s,t,r,q);
#line 19828 "lib/OpenGL/V1.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 10032 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4svARB,"glMultiTexCoord4svARB");
#line 19847 "lib/OpenGL/V1.c"
#line 10034 "lib/OpenGL/V1.xs"
		glMultiTexCoord4svARB(target,v);
#line 19850 "lib/OpenGL/V1.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 10042 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4svARB,"glMultiTexCoord4svARB");
#line 19869 "lib/OpenGL/V1.c"
#line 10044 "lib/OpenGL/V1.xs"
	{
		GLshort * v_s = EL(v, sizeof(GLshort));
		glMultiTexCoord4svARB(target,v_s);
	}
#line 19875 "lib/OpenGL/V1.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 10059 "lib/OpenGL/V1.xs"
		loadProc(glMultiTexCoord4svARB,"glMultiTexCoord4svARB");
#line 19900 "lib/OpenGL/V1.c"
#line 10061 "lib/OpenGL/V1.xs"
	{
		GLshort param[4];
		param[0] = s;
		param[1] = t;
		param[2] = r;
		param[3] = q;
		glMultiTexCoord4svARB(target,param);
	}
#line 19910 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif // GL_ARB_multitexture
#ifdef GL_ARB_point_parameters
#define XSubPPtmpAABD 1


XS_EUPXS(XS_OpenGL_glPointParameterfARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPointParameterfARB)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, param");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	GLfloat	param = (float)SvNV(ST(1))
;
#line 10080 "lib/OpenGL/V1.xs"
		loadProc(glPointParameterfARB,"glPointParameterfARB");
#line 19933 "lib/OpenGL/V1.c"
#line 10082 "lib/OpenGL/V1.xs"
	{
		glPointParameterfARB(pname,param);
	}
#line 19938 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPointParameterfvARB_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPointParameterfvARB_c)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	void *	params = INT2PTR(void *,SvIV(ST(1)))
;
#line 10092 "lib/OpenGL/V1.xs"
		loadProc(glPointParameterfvARB,"glPointParameterfvARB");
#line 19957 "lib/OpenGL/V1.c"
#line 10094 "lib/OpenGL/V1.xs"
		glPointParameterfvARB(pname,(GLfloat*)params);
#line 19960 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPointParameterfvARB_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPointParameterfvARB_s)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "pname, params");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
	SV *	params = ST(1)
;
#line 10102 "lib/OpenGL/V1.xs"
		loadProc(glPointParameterfvARB,"glPointParameterfvARB");
#line 19979 "lib/OpenGL/V1.c"
#line 10104 "lib/OpenGL/V1.xs"
	{
		int count = gl_get_count(pname);
		GLfloat * params_s = EL(params, sizeof(GLfloat)*count);
		glPointParameterfvARB(pname,params_s);
	}
#line 19986 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glPointParameterfvARB_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glPointParameterfvARB_p)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "pname, ...");
    {
	GLenum	pname = (int)SvIV(ST(0))
;
#line 10116 "lib/OpenGL/V1.xs"
		loadProc(glPointParameterfvARB,"glPointParameterfvARB");
#line 20003 "lib/OpenGL/V1.c"
#line 10118 "lib/OpenGL/V1.xs"
	{
		GLfloat params[4];
		int i;
		if ((items-1) != gl_get_count(pname))
			croak("Incorrect number of arguments");
		for(i=1;i<items;i++)
			params[i-1] = (GLfloat)SvNV(ST(i));
		glPointParameterfvARB(pname,params);
	}
#line 20014 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif
#ifdef GL_ARB_multisample
#define XSubPPtmpAABE 1


XS_EUPXS(XS_OpenGL_glSampleCoverageARB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glSampleCoverageARB)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "value, invert");
    {
	GLclampf	value = (float)SvNV(ST(0))
;
	GLboolean	invert = (bool)SvTRUE(ST(1))
;
#line 10139 "lib/OpenGL/V1.xs"
		loadProc(glSampleCoverageARB,"glSampleCoverageARB");
#line 20037 "lib/OpenGL/V1.c"
#line 10141 "lib/OpenGL/V1.xs"
	{
		glSampleCoverageARB(value,invert);
	}
#line 20042 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif
#ifdef GL_EXT_texture3D
#define XSubPPtmpAABF 1


XS_EUPXS(XS_OpenGL_glTexImage3DEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage3DEXT_c)
{
    dVAR; dXSARGS;
    if (items != 10)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, depth, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLsizei	depth = (int)SvIV(ST(5))
;
	GLint	border = (int)SvIV(ST(6))
;
	GLenum	format = (int)SvIV(ST(7))
;
	GLenum	type = (int)SvIV(ST(8))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(9)))
;
#line 10163 "lib/OpenGL/V1.xs"
		loadProc(glTexImage3DEXT,"glTexImage3DEXT");
#line 20081 "lib/OpenGL/V1.c"
#line 10165 "lib/OpenGL/V1.xs"
	{
		glTexImage3DEXT(target, level, internalformat, width, height,
			depth, border, format, type, pixels);
	}
#line 20087 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage3DEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage3DEXT_s)
{
    dVAR; dXSARGS;
    if (items != 10)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, depth, border, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLsizei	depth = (int)SvIV(ST(5))
;
	GLint	border = (int)SvIV(ST(6))
;
	GLenum	format = (int)SvIV(ST(7))
;
	GLenum	type = (int)SvIV(ST(8))
;
	SV *	pixels = ST(9)
;
#line 10184 "lib/OpenGL/V1.xs"
		loadProc(glTexImage3DEXT,"glTexImage3DEXT");
#line 20122 "lib/OpenGL/V1.c"
#line 10186 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr = ELI(pixels, width, height,
			format, type, gl_pixelbuffer_unpack);
		glTexImage3DEXT(target, level, internalformat, width, height,
			depth, border, format, type, ptr);
	}
#line 20130 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexImage3DEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexImage3DEXT_p)
{
    dVAR; dXSARGS;
    if (items < 9)
       croak_xs_usage(cv,  "target, level, internalformat, width, height, depth, border, format, type, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLenum	internalformat = (int)SvIV(ST(2))
;
	GLsizei	width = (int)SvIV(ST(3))
;
	GLsizei	height = (int)SvIV(ST(4))
;
	GLsizei	depth = (int)SvIV(ST(5))
;
	GLint	border = (int)SvIV(ST(6))
;
	GLenum	format = (int)SvIV(ST(7))
;
	GLenum	type = (int)SvIV(ST(8))
;
#line 10206 "lib/OpenGL/V1.xs"
		loadProc(glTexImage3DEXT,"glTexImage3DEXT");
#line 20163 "lib/OpenGL/V1.c"
#line 10208 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr;
		glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
		glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
		ptr = pack_image_ST(&(ST(4)), items-4, width, height, 1, format, type, 0);
		glTexImage3DEXT(target, level, internalformat, width, height,
			depth, border, format, type, ptr);
		glPopClientAttrib();
		free(ptr);
	}
#line 20176 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage3DEXT_c); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage3DEXT_c)
{
    dVAR; dXSARGS;
    if (items != 11)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLint	zoffset = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;
	GLsizei	height = (int)SvIV(ST(6))
;
	GLsizei	depth = (int)SvIV(ST(7))
;
	GLenum	format = (int)SvIV(ST(8))
;
	GLenum	type = (int)SvIV(ST(9))
;
	void *	pixels = INT2PTR(void *,SvIV(ST(10)))
;
#line 10235 "lib/OpenGL/V1.xs"
		loadProc(glTexSubImage3DEXT,"glTexSubImage3DEXT");
#line 20213 "lib/OpenGL/V1.c"
#line 10237 "lib/OpenGL/V1.xs"
	{
		glTexSubImage3DEXT(target, level, xoffset, yoffset, zoffset,
			width, height, depth, format, type, pixels);
	}
#line 20219 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage3DEXT_s); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage3DEXT_s)
{
    dVAR; dXSARGS;
    if (items != 11)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLint	zoffset = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;
	GLsizei	height = (int)SvIV(ST(6))
;
	GLsizei	depth = (int)SvIV(ST(7))
;
	GLenum	format = (int)SvIV(ST(8))
;
	GLenum	type = (int)SvIV(ST(9))
;
	SV *	pixels = ST(10)
;
#line 10257 "lib/OpenGL/V1.xs"
		loadProc(glTexSubImage3DEXT,"glTexSubImage3DEXT");
#line 20256 "lib/OpenGL/V1.c"
#line 10259 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr = ELI(pixels, width, height,
			format, type, gl_pixelbuffer_unpack);
		glTexSubImage3DEXT(target, level, xoffset, yoffset, zoffset,
			width, height, depth, format, type, ptr);
	}
#line 20264 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_OpenGL_glTexSubImage3DEXT_p); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glTexSubImage3DEXT_p)
{
    dVAR; dXSARGS;
    if (items < 10)
       croak_xs_usage(cv,  "target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, ...");
    {
	GLenum	target = (int)SvIV(ST(0))
;
	GLint	level = (int)SvIV(ST(1))
;
	GLint	xoffset = (int)SvIV(ST(2))
;
	GLint	yoffset = (int)SvIV(ST(3))
;
	GLint	zoffset = (int)SvIV(ST(4))
;
	GLsizei	width = (int)SvIV(ST(5))
;
	GLsizei	height = (int)SvIV(ST(6))
;
	GLsizei	depth = (int)SvIV(ST(7))
;
	GLenum	format = (int)SvIV(ST(8))
;
	GLenum	type = (int)SvIV(ST(9))
;
#line 10280 "lib/OpenGL/V1.xs"
		loadProc(glTexSubImage3DEXT,"glTexSubImage3DEXT");
#line 20299 "lib/OpenGL/V1.c"
#line 10282 "lib/OpenGL/V1.xs"
	{
		GLvoid * ptr;
		glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT);
		glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
		ptr = pack_image_ST(&(ST(4)), items-4, width, height, 1, format, type, 0);
		glTexSubImage3DEXT(target, level, xoffset, yoffset, zoffset,
			width, height, depth, format, type, ptr);
		glPopClientAttrib();
		free(ptr);
	}
#line 20312 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif
#if defined(GL_EXT_blend_minmax) && (!defined(GL_SRC_ALPHA_SATURATE) || defined(GL_CONSTANT_COLOR))
#define XSubPPtmpAABG 1


XS_EUPXS(XS_OpenGL_glBlendEquationEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBlendEquationEXT)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mode");
    {
	GLenum	mode = (int)SvIV(ST(0))
;
#line 10303 "lib/OpenGL/V1.xs"
		loadProc(glBlendEquationEXT,"glBlendEquationEXT");
#line 20333 "lib/OpenGL/V1.c"
#line 10305 "lib/OpenGL/V1.xs"
		glBlendEquationEXT(mode);
#line 20336 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif
#ifdef GL_EXT_blend_color
#define XSubPPtmpAABH 1


XS_EUPXS(XS_OpenGL_glBlendColorEXT); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_OpenGL_glBlendColorEXT)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "red, green, blue, alpha");
    {
	GLclampf	red = (float)SvNV(ST(0))
;
	GLclampf	green = (float)SvNV(ST(1))
;
	GLclampf	blue = (float)SvNV(ST(2))
;
	GLclampf	alpha = (float)SvNV(ST(3))
;
#line 10319 "lib/OpenGL/V1.xs"
		loadProc(glBlendColorEXT,"glBlendColorEXT");
#line 20363 "lib/OpenGL/V1.c"
#line 10321 "lib/OpenGL/V1.xs"
		glBlendColorEXT(red, green, blue, alpha);
#line 20366 "lib/OpenGL/V1.c"
    }
    XSRETURN_EMPTY;
}

#endif
#endif /* HAVE_GL */
#ifdef __cplusplus
extern "C" {
#endif
XS_EXTERNAL(boot_OpenGL__V1); /* prototype to pass -Wmissing-prototypes */
XS_EXTERNAL(boot_OpenGL__V1)
{
#if PERL_VERSION_LE(5, 21, 5)
    dVAR; dXSARGS;
#else
    dVAR; dXSBOOTARGSXSAPIVERCHK;
#endif
#if PERL_VERSION_LE(5, 8, 999) /* PERL_VERSION_LT is 5.33+ */
    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::glAccum", XS_OpenGL_glAccum);
        newXS_deffile("OpenGL::glAlphaFunc", XS_OpenGL_glAlphaFunc);
#if XSubPPtmpAAAB
        newXS_deffile("OpenGL::glAreTexturesResident_c", XS_OpenGL_glAreTexturesResident_c);
        newXS_deffile("OpenGL::glAreTexturesResident_s", XS_OpenGL_glAreTexturesResident_s);
        newXS_deffile("OpenGL::glAreTexturesResident_p", XS_OpenGL_glAreTexturesResident_p);
        newXS_deffile("OpenGL::glArrayElement", XS_OpenGL_glArrayElement);
#endif
        newXS_deffile("OpenGL::glBegin", XS_OpenGL_glBegin);
        newXS_deffile("OpenGL::glEnd", XS_OpenGL_glEnd);
#if XSubPPtmpAAAC
        newXS_deffile("OpenGL::glBindTexture", XS_OpenGL_glBindTexture);
#endif
        newXS_deffile("OpenGL::glBitmap_c", XS_OpenGL_glBitmap_c);
        newXS_deffile("OpenGL::glBitmap_s", XS_OpenGL_glBitmap_s);
        newXS_deffile("OpenGL::glBitmap_p", XS_OpenGL_glBitmap_p);
        newXS_deffile("OpenGL::glBlendFunc", XS_OpenGL_glBlendFunc);
        newXS_deffile("OpenGL::glCallList", XS_OpenGL_glCallList);
        newXS_deffile("OpenGL::glCallLists_c", XS_OpenGL_glCallLists_c);
        newXS_deffile("OpenGL::glCallLists_s", XS_OpenGL_glCallLists_s);
        newXS_deffile("OpenGL::glCallLists_p", XS_OpenGL_glCallLists_p);
        newXS_deffile("OpenGL::glClear", XS_OpenGL_glClear);
        newXS_deffile("OpenGL::glClearAccum", XS_OpenGL_glClearAccum);
        newXS_deffile("OpenGL::glClearColor", XS_OpenGL_glClearColor);
        newXS_deffile("OpenGL::glClearDepth", XS_OpenGL_glClearDepth);
        newXS_deffile("OpenGL::glClearIndex", XS_OpenGL_glClearIndex);
        newXS_deffile("OpenGL::glClearStencil", XS_OpenGL_glClearStencil);
        newXS_deffile("OpenGL::glClipPlane_c", XS_OpenGL_glClipPlane_c);
        newXS_deffile("OpenGL::glClipPlane_s", XS_OpenGL_glClipPlane_s);
        newXS_deffile("OpenGL::glClipPlane_p", XS_OpenGL_glClipPlane_p);
        newXS_deffile("OpenGL::glColorMask", XS_OpenGL_glColorMask);
        newXS_deffile("OpenGL::glColorMaterial", XS_OpenGL_glColorMaterial);
        newXS_deffile("OpenGL::glCopyPixels", XS_OpenGL_glCopyPixels);
#if XSubPPtmpAAAD
        newXS_deffile("OpenGL::glCopyTexImage1D", XS_OpenGL_glCopyTexImage1D);
        newXS_deffile("OpenGL::glCopyTexImage2D", XS_OpenGL_glCopyTexImage2D);
        newXS_deffile("OpenGL::glCopyTexSubImage1D", XS_OpenGL_glCopyTexSubImage1D);
        newXS_deffile("OpenGL::glCopyTexSubImage2D", XS_OpenGL_glCopyTexSubImage2D);
#if XSubPPtmpAAAE
        newXS_deffile("OpenGL::glCopyTexSubImage3D", XS_OpenGL_glCopyTexSubImage3D);
#endif
#endif
        newXS_deffile("OpenGL::glCullFace", XS_OpenGL_glCullFace);
        newXS_deffile("OpenGL::glDeleteLists", XS_OpenGL_glDeleteLists);
#if XSubPPtmpAAAF
        newXS_deffile("OpenGL::glDeleteTextures_c", XS_OpenGL_glDeleteTextures_c);
        newXS_deffile("OpenGL::glDeleteTextures_s", XS_OpenGL_glDeleteTextures_s);
        newXS_deffile("OpenGL::glDeleteTextures_p", XS_OpenGL_glDeleteTextures_p);
#endif
        newXS_deffile("OpenGL::glDepthFunc", XS_OpenGL_glDepthFunc);
        newXS_deffile("OpenGL::glDepthMask", XS_OpenGL_glDepthMask);
        newXS_deffile("OpenGL::glDepthRange", XS_OpenGL_glDepthRange);
#if XSubPPtmpAAAG
        newXS_deffile("OpenGL::glDrawArrays", XS_OpenGL_glDrawArrays);
#endif
        newXS_deffile("OpenGL::glDrawBuffer", XS_OpenGL_glDrawBuffer);
#if XSubPPtmpAAAH
        newXS_deffile("OpenGL::glDrawElements_c", XS_OpenGL_glDrawElements_c);
        newXS_deffile("OpenGL::glDrawElements_s", XS_OpenGL_glDrawElements_s);
        newXS_deffile("OpenGL::glDrawElements_p", XS_OpenGL_glDrawElements_p);
#endif
        newXS_deffile("OpenGL::glDrawPixels_c", XS_OpenGL_glDrawPixels_c);
        newXS_deffile("OpenGL::glDrawPixels_s", XS_OpenGL_glDrawPixels_s);
        newXS_deffile("OpenGL::glDrawPixels_p", XS_OpenGL_glDrawPixels_p);
#if XSubPPtmpAAAI
        newXS_deffile("OpenGL::glDrawRangeElements_c", XS_OpenGL_glDrawRangeElements_c);
        newXS_deffile("OpenGL::glDrawRangeElements_s", XS_OpenGL_glDrawRangeElements_s);
        newXS_deffile("OpenGL::glDrawRangeElements_p", XS_OpenGL_glDrawRangeElements_p);
#endif
        newXS_deffile("OpenGL::glEdgeFlag", XS_OpenGL_glEdgeFlag);
        newXS_deffile("OpenGL::glEnable", XS_OpenGL_glEnable);
        newXS_deffile("OpenGL::glDisable", XS_OpenGL_glDisable);
#if XSubPPtmpAAAJ
        newXS_deffile("OpenGL::glEnableClientState", XS_OpenGL_glEnableClientState);
        newXS_deffile("OpenGL::glDisableClientState", XS_OpenGL_glDisableClientState);
#endif
        newXS_deffile("OpenGL::glEvalCoord1d", XS_OpenGL_glEvalCoord1d);
        newXS_deffile("OpenGL::glEvalCoord1f", XS_OpenGL_glEvalCoord1f);
        newXS_deffile("OpenGL::glEvalCoord2d", XS_OpenGL_glEvalCoord2d);
        newXS_deffile("OpenGL::glEvalCoord2f", XS_OpenGL_glEvalCoord2f);
        newXS_deffile("OpenGL::glEvalMesh1", XS_OpenGL_glEvalMesh1);
        newXS_deffile("OpenGL::glEvalMesh2", XS_OpenGL_glEvalMesh2);
        newXS_deffile("OpenGL::glEvalPoint1", XS_OpenGL_glEvalPoint1);
        newXS_deffile("OpenGL::glEvalPoint2", XS_OpenGL_glEvalPoint2);
        newXS_deffile("OpenGL::glFeedbackBuffer_c", XS_OpenGL_glFeedbackBuffer_c);
        newXS_deffile("OpenGL::glFinish", XS_OpenGL_glFinish);
        newXS_deffile("OpenGL::glFlush", XS_OpenGL_glFlush);
        newXS_deffile("OpenGL::glFogf", XS_OpenGL_glFogf);
        newXS_deffile("OpenGL::glFogi", XS_OpenGL_glFogi);
        newXS_deffile("OpenGL::glFogfv_c", XS_OpenGL_glFogfv_c);
        newXS_deffile("OpenGL::glFogiv_c", XS_OpenGL_glFogiv_c);
        newXS_deffile("OpenGL::glFogfv_s", XS_OpenGL_glFogfv_s);
        newXS_deffile("OpenGL::glFogiv_s", XS_OpenGL_glFogiv_s);
        newXS_deffile("OpenGL::glFogfv_p", XS_OpenGL_glFogfv_p);
        newXS_deffile("OpenGL::glFogiv_p", XS_OpenGL_glFogiv_p);
        newXS_deffile("OpenGL::glFrontFace", XS_OpenGL_glFrontFace);
        newXS_deffile("OpenGL::glFrustum", XS_OpenGL_glFrustum);
        newXS_deffile("OpenGL::glGenLists", XS_OpenGL_glGenLists);
#if XSubPPtmpAAAK
        newXS_deffile("OpenGL::glGenTextures_c", XS_OpenGL_glGenTextures_c);
        newXS_deffile("OpenGL::glGenTextures_s", XS_OpenGL_glGenTextures_s);
        newXS_deffile("OpenGL::glGenTextures_p", XS_OpenGL_glGenTextures_p);
#endif
        newXS_deffile("OpenGL::glGetDoublev_c", XS_OpenGL_glGetDoublev_c);
        newXS_deffile("OpenGL::glGetDoublev_s", XS_OpenGL_glGetDoublev_s);
        newXS_deffile("OpenGL::glGetBooleanv_c", XS_OpenGL_glGetBooleanv_c);
        newXS_deffile("OpenGL::glGetBooleanv_s", XS_OpenGL_glGetBooleanv_s);
        newXS_deffile("OpenGL::glGetIntegerv_c", XS_OpenGL_glGetIntegerv_c);
        newXS_deffile("OpenGL::glGetIntegerv_s", XS_OpenGL_glGetIntegerv_s);
        newXS_deffile("OpenGL::glGetFloatv_c", XS_OpenGL_glGetFloatv_c);
        newXS_deffile("OpenGL::glGetFloatv_s", XS_OpenGL_glGetFloatv_s);
        newXS_deffile("OpenGL::glGetDoublev_p", XS_OpenGL_glGetDoublev_p);
        newXS_deffile("OpenGL::glGetBooleanv_p", XS_OpenGL_glGetBooleanv_p);
        newXS_deffile("OpenGL::glGetIntegerv_p", XS_OpenGL_glGetIntegerv_p);
        newXS_deffile("OpenGL::glGetFloatv_p", XS_OpenGL_glGetFloatv_p);
        newXS_deffile("OpenGL::glGetClipPlane_c", XS_OpenGL_glGetClipPlane_c);
        newXS_deffile("OpenGL::glGetClipPlane_s", XS_OpenGL_glGetClipPlane_s);
        newXS_deffile("OpenGL::glGetClipPlane_p", XS_OpenGL_glGetClipPlane_p);
        newXS_deffile("OpenGL::glGetError", XS_OpenGL_glGetError);
        newXS_deffile("OpenGL::glGetLightfv_c", XS_OpenGL_glGetLightfv_c);
        newXS_deffile("OpenGL::glGetLightiv_c", XS_OpenGL_glGetLightiv_c);
        newXS_deffile("OpenGL::glGetLightfv_s", XS_OpenGL_glGetLightfv_s);
        newXS_deffile("OpenGL::glGetLightiv_s", XS_OpenGL_glGetLightiv_s);
        newXS_deffile("OpenGL::glGetLightfv_p", XS_OpenGL_glGetLightfv_p);
        newXS_deffile("OpenGL::glGetLightiv_p", XS_OpenGL_glGetLightiv_p);
        newXS_deffile("OpenGL::glGetMapiv_c", XS_OpenGL_glGetMapiv_c);
        newXS_deffile("OpenGL::glGetMapfv_c", XS_OpenGL_glGetMapfv_c);
        newXS_deffile("OpenGL::glGetMapdv_c", XS_OpenGL_glGetMapdv_c);
        newXS_deffile("OpenGL::glGetMapdv_s", XS_OpenGL_glGetMapdv_s);
        newXS_deffile("OpenGL::glGetMapfv_s", XS_OpenGL_glGetMapfv_s);
        newXS_deffile("OpenGL::glGetMapiv_s", XS_OpenGL_glGetMapiv_s);
        newXS_deffile("OpenGL::glGetMapfv_p", XS_OpenGL_glGetMapfv_p);
        newXS_deffile("OpenGL::glGetMapdv_p", XS_OpenGL_glGetMapdv_p);
        newXS_deffile("OpenGL::glGetMapiv_p", XS_OpenGL_glGetMapiv_p);
        newXS_deffile("OpenGL::glGetMaterialfv_c", XS_OpenGL_glGetMaterialfv_c);
        newXS_deffile("OpenGL::glGetMaterialiv_c", XS_OpenGL_glGetMaterialiv_c);
        newXS_deffile("OpenGL::glGetMaterialfv_s", XS_OpenGL_glGetMaterialfv_s);
        newXS_deffile("OpenGL::glGetMaterialiv_s", XS_OpenGL_glGetMaterialiv_s);
        newXS_deffile("OpenGL::glGetMaterialfv_p", XS_OpenGL_glGetMaterialfv_p);
        newXS_deffile("OpenGL::glGetMaterialiv_p", XS_OpenGL_glGetMaterialiv_p);
        newXS_deffile("OpenGL::glGetPixelMapfv_c", XS_OpenGL_glGetPixelMapfv_c);
        newXS_deffile("OpenGL::glGetPixelMapuiv_c", XS_OpenGL_glGetPixelMapuiv_c);
        newXS_deffile("OpenGL::glGetPixelMapusv_c", XS_OpenGL_glGetPixelMapusv_c);
        newXS_deffile("OpenGL::glGetPixelMapfv_s", XS_OpenGL_glGetPixelMapfv_s);
        newXS_deffile("OpenGL::glGetPixelMapuiv_s", XS_OpenGL_glGetPixelMapuiv_s);
        newXS_deffile("OpenGL::glGetPixelMapusv_s", XS_OpenGL_glGetPixelMapusv_s);
        newXS_deffile("OpenGL::glGetPixelMapfv_p", XS_OpenGL_glGetPixelMapfv_p);
        newXS_deffile("OpenGL::glGetPixelMapuiv_p", XS_OpenGL_glGetPixelMapuiv_p);
        newXS_deffile("OpenGL::glGetPixelMapusv_p", XS_OpenGL_glGetPixelMapusv_p);
        newXS_deffile("OpenGL::glGetPolygonStipple_c", XS_OpenGL_glGetPolygonStipple_c);
        newXS_deffile("OpenGL::glGetPolygonStipple_s", XS_OpenGL_glGetPolygonStipple_s);
        newXS_deffile("OpenGL::glGetPolygonStipple_p", XS_OpenGL_glGetPolygonStipple_p);
#if XSubPPtmpAAAL
        newXS_deffile("OpenGL::glGetPointerv_c", XS_OpenGL_glGetPointerv_c);
        newXS_deffile("OpenGL::glGetPointerv_s", XS_OpenGL_glGetPointerv_s);
        newXS_deffile("OpenGL::glGetPointerv_p", XS_OpenGL_glGetPointerv_p);
#endif
        newXS_deffile("OpenGL::glGetString", XS_OpenGL_glGetString);
        newXS_deffile("OpenGL::glGetTexEnvfv_c", XS_OpenGL_glGetTexEnvfv_c);
        newXS_deffile("OpenGL::glGetTexEnviv_c", XS_OpenGL_glGetTexEnviv_c);
        newXS_deffile("OpenGL::glGetTexEnvfv_s", XS_OpenGL_glGetTexEnvfv_s);
        newXS_deffile("OpenGL::glGetTexEnviv_s", XS_OpenGL_glGetTexEnviv_s);
        newXS_deffile("OpenGL::glGetTexEnvfv_p", XS_OpenGL_glGetTexEnvfv_p);
        newXS_deffile("OpenGL::glGetTexEnviv_p", XS_OpenGL_glGetTexEnviv_p);
        newXS_deffile("OpenGL::glGetTexGenfv_c", XS_OpenGL_glGetTexGenfv_c);
        newXS_deffile("OpenGL::glGetTexGendv_c", XS_OpenGL_glGetTexGendv_c);
        newXS_deffile("OpenGL::glGetTexGeniv_c", XS_OpenGL_glGetTexGeniv_c);
        newXS_deffile("OpenGL::glGetTexGendv_s", XS_OpenGL_glGetTexGendv_s);
        newXS_deffile("OpenGL::glGetTexGenfv_s", XS_OpenGL_glGetTexGenfv_s);
        newXS_deffile("OpenGL::glGetTexGeniv_s", XS_OpenGL_glGetTexGeniv_s);
        newXS_deffile("OpenGL::glGetTexGenfv_p", XS_OpenGL_glGetTexGenfv_p);
        newXS_deffile("OpenGL::glGetTexGendv_p", XS_OpenGL_glGetTexGendv_p);
        newXS_deffile("OpenGL::glGetTexGeniv_p", XS_OpenGL_glGetTexGeniv_p);
        newXS_deffile("OpenGL::glGetTexImage_c", XS_OpenGL_glGetTexImage_c);
        newXS_deffile("OpenGL::glGetTexImage_s", XS_OpenGL_glGetTexImage_s);
        newXS_deffile("OpenGL::glGetTexImage_p", XS_OpenGL_glGetTexImage_p);
        newXS_deffile("OpenGL::glGetTexLevelParameterfv_c", XS_OpenGL_glGetTexLevelParameterfv_c);
        newXS_deffile("OpenGL::glGetTexLevelParameteriv_c", XS_OpenGL_glGetTexLevelParameteriv_c);
        newXS_deffile("OpenGL::glGetTexLevelParameterfv_s", XS_OpenGL_glGetTexLevelParameterfv_s);
        newXS_deffile("OpenGL::glGetTexLevelParameteriv_s", XS_OpenGL_glGetTexLevelParameteriv_s);
        newXS_deffile("OpenGL::glGetTexLevelParameterfv_p", XS_OpenGL_glGetTexLevelParameterfv_p);
        newXS_deffile("OpenGL::glGetTexLevelParameteriv_p", XS_OpenGL_glGetTexLevelParameteriv_p);
        newXS_deffile("OpenGL::glGetTexParameterfv_c", XS_OpenGL_glGetTexParameterfv_c);
        newXS_deffile("OpenGL::glGetTexParameteriv_c", XS_OpenGL_glGetTexParameteriv_c);
        newXS_deffile("OpenGL::glGetTexParameterfv_s", XS_OpenGL_glGetTexParameterfv_s);
        newXS_deffile("OpenGL::glGetTexParameteriv_s", XS_OpenGL_glGetTexParameteriv_s);
        newXS_deffile("OpenGL::glGetTexParameterfv_p", XS_OpenGL_glGetTexParameterfv_p);
        newXS_deffile("OpenGL::glGetTexParameteriv_p", XS_OpenGL_glGetTexParameteriv_p);
        newXS_deffile("OpenGL::glHint", XS_OpenGL_glHint);
        newXS_deffile("OpenGL::glIndexd", XS_OpenGL_glIndexd);
        newXS_deffile("OpenGL::glIndexi", XS_OpenGL_glIndexi);
        newXS_deffile("OpenGL::glIndexMask", XS_OpenGL_glIndexMask);
        newXS_deffile("OpenGL::glInitNames", XS_OpenGL_glInitNames);
#if XSubPPtmpAAAM
        newXS_deffile("OpenGL::glInterleavedArrays_c", XS_OpenGL_glInterleavedArrays_c);
#endif
        newXS_deffile("OpenGL::glIsEnabled", XS_OpenGL_glIsEnabled);
        newXS_deffile("OpenGL::glIsList", XS_OpenGL_glIsList);
#if XSubPPtmpAAAN
        newXS_deffile("OpenGL::glIsTexture", XS_OpenGL_glIsTexture);
#endif
        newXS_deffile("OpenGL::glLightf", XS_OpenGL_glLightf);
        newXS_deffile("OpenGL::glLighti", XS_OpenGL_glLighti);
        newXS_deffile("OpenGL::glLightfv_c", XS_OpenGL_glLightfv_c);
        newXS_deffile("OpenGL::glLightiv_c", XS_OpenGL_glLightiv_c);
        newXS_deffile("OpenGL::glLightfv_s", XS_OpenGL_glLightfv_s);
        newXS_deffile("OpenGL::glLightiv_s", XS_OpenGL_glLightiv_s);
        newXS_deffile("OpenGL::glLightfv_p", XS_OpenGL_glLightfv_p);
        newXS_deffile("OpenGL::glLightiv_p", XS_OpenGL_glLightiv_p);
        newXS_deffile("OpenGL::glLightModelf", XS_OpenGL_glLightModelf);
        newXS_deffile("OpenGL::glLightModeli", XS_OpenGL_glLightModeli);
        newXS_deffile("OpenGL::glLightModeliv_c", XS_OpenGL_glLightModeliv_c);
        newXS_deffile("OpenGL::glLightModelfv_c", XS_OpenGL_glLightModelfv_c);
        newXS_deffile("OpenGL::glLightModeliv_s", XS_OpenGL_glLightModeliv_s);
        newXS_deffile("OpenGL::glLightModelfv_s", XS_OpenGL_glLightModelfv_s);
        newXS_deffile("OpenGL::glLightModelfv_p", XS_OpenGL_glLightModelfv_p);
        newXS_deffile("OpenGL::glLightModeliv_p", XS_OpenGL_glLightModeliv_p);
        newXS_deffile("OpenGL::glLineStipple", XS_OpenGL_glLineStipple);
        newXS_deffile("OpenGL::glLineWidth", XS_OpenGL_glLineWidth);
        newXS_deffile("OpenGL::glListBase", XS_OpenGL_glListBase);
        newXS_deffile("OpenGL::glLoadIdentity", XS_OpenGL_glLoadIdentity);
        newXS_deffile("OpenGL::glLoadMatrixf_c", XS_OpenGL_glLoadMatrixf_c);
        newXS_deffile("OpenGL::glLoadMatrixd_c", XS_OpenGL_glLoadMatrixd_c);
        newXS_deffile("OpenGL::glLoadMatrixf_s", XS_OpenGL_glLoadMatrixf_s);
        newXS_deffile("OpenGL::glLoadMatrixd_s", XS_OpenGL_glLoadMatrixd_s);
        newXS_deffile("OpenGL::glLoadMatrixd_p", XS_OpenGL_glLoadMatrixd_p);
        newXS_deffile("OpenGL::glLoadMatrixf_p", XS_OpenGL_glLoadMatrixf_p);
        newXS_deffile("OpenGL::glLoadName", XS_OpenGL_glLoadName);
        newXS_deffile("OpenGL::glLogicOp", XS_OpenGL_glLogicOp);
        newXS_deffile("OpenGL::glMap1d_c", XS_OpenGL_glMap1d_c);
        newXS_deffile("OpenGL::glMap1f_c", XS_OpenGL_glMap1f_c);
        newXS_deffile("OpenGL::glMap1d_s", XS_OpenGL_glMap1d_s);
        newXS_deffile("OpenGL::glMap1f_s", XS_OpenGL_glMap1f_s);
        newXS_deffile("OpenGL::glMap1d_p", XS_OpenGL_glMap1d_p);
        newXS_deffile("OpenGL::glMap1f_p", XS_OpenGL_glMap1f_p);
        newXS_deffile("OpenGL::glMap2d_c", XS_OpenGL_glMap2d_c);
        newXS_deffile("OpenGL::glMap2f_c", XS_OpenGL_glMap2f_c);
        newXS_deffile("OpenGL::glMap2d_s", XS_OpenGL_glMap2d_s);
        newXS_deffile("OpenGL::glMap2f_s", XS_OpenGL_glMap2f_s);
        newXS_deffile("OpenGL::glMap2d_p", XS_OpenGL_glMap2d_p);
        newXS_deffile("OpenGL::glMap2f_p", XS_OpenGL_glMap2f_p);
        newXS_deffile("OpenGL::glMapGrid1d", XS_OpenGL_glMapGrid1d);
        newXS_deffile("OpenGL::glMapGrid1f", XS_OpenGL_glMapGrid1f);
        newXS_deffile("OpenGL::glMapGrid2d", XS_OpenGL_glMapGrid2d);
        newXS_deffile("OpenGL::glMapGrid2f", XS_OpenGL_glMapGrid2f);
        newXS_deffile("OpenGL::glMaterialf", XS_OpenGL_glMaterialf);
        newXS_deffile("OpenGL::glMateriali", XS_OpenGL_glMateriali);
        newXS_deffile("OpenGL::glMaterialfv_c", XS_OpenGL_glMaterialfv_c);
        newXS_deffile("OpenGL::glMaterialiv_c", XS_OpenGL_glMaterialiv_c);
        newXS_deffile("OpenGL::glMaterialfv_s", XS_OpenGL_glMaterialfv_s);
        newXS_deffile("OpenGL::glMaterialiv_s", XS_OpenGL_glMaterialiv_s);
        newXS_deffile("OpenGL::glMaterialfv_p", XS_OpenGL_glMaterialfv_p);
        newXS_deffile("OpenGL::glMaterialiv_p", XS_OpenGL_glMaterialiv_p);
        newXS_deffile("OpenGL::glMatrixMode", XS_OpenGL_glMatrixMode);
        newXS_deffile("OpenGL::glMultMatrixd_p", XS_OpenGL_glMultMatrixd_p);
        newXS_deffile("OpenGL::glMultMatrixf_p", XS_OpenGL_glMultMatrixf_p);
        newXS_deffile("OpenGL::glNewList", XS_OpenGL_glNewList);
        newXS_deffile("OpenGL::glEndList", XS_OpenGL_glEndList);
        newXS_deffile("OpenGL::glOrtho", XS_OpenGL_glOrtho);
        newXS_deffile("OpenGL::glPassThrough", XS_OpenGL_glPassThrough);
        newXS_deffile("OpenGL::glPixelMapfv_c", XS_OpenGL_glPixelMapfv_c);
        newXS_deffile("OpenGL::glPixelMapuiv_c", XS_OpenGL_glPixelMapuiv_c);
        newXS_deffile("OpenGL::glPixelMapusv_c", XS_OpenGL_glPixelMapusv_c);
        newXS_deffile("OpenGL::glPixelMapfv_s", XS_OpenGL_glPixelMapfv_s);
        newXS_deffile("OpenGL::glPixelMapuiv_s", XS_OpenGL_glPixelMapuiv_s);
        newXS_deffile("OpenGL::glPixelMapusv_s", XS_OpenGL_glPixelMapusv_s);
        newXS_deffile("OpenGL::glPixelMapfv_p", XS_OpenGL_glPixelMapfv_p);
        newXS_deffile("OpenGL::glPixelMapuiv_p", XS_OpenGL_glPixelMapuiv_p);
        newXS_deffile("OpenGL::glPixelMapusv_p", XS_OpenGL_glPixelMapusv_p);
        newXS_deffile("OpenGL::glPixelStoref", XS_OpenGL_glPixelStoref);
        newXS_deffile("OpenGL::glPixelStorei", XS_OpenGL_glPixelStorei);
        newXS_deffile("OpenGL::glPixelTransferf", XS_OpenGL_glPixelTransferf);
        newXS_deffile("OpenGL::glPixelTransferi", XS_OpenGL_glPixelTransferi);
        newXS_deffile("OpenGL::glPixelZoom", XS_OpenGL_glPixelZoom);
        newXS_deffile("OpenGL::glPointSize", XS_OpenGL_glPointSize);
        newXS_deffile("OpenGL::glPolygonMode", XS_OpenGL_glPolygonMode);
#if XSubPPtmpAAAO
        newXS_deffile("OpenGL::glPolygonOffset", XS_OpenGL_glPolygonOffset);
#endif
        newXS_deffile("OpenGL::glPolygonStipple_c", XS_OpenGL_glPolygonStipple_c);
        newXS_deffile("OpenGL::glPolygonStipple_s", XS_OpenGL_glPolygonStipple_s);
        newXS_deffile("OpenGL::glPolygonStipple_p", XS_OpenGL_glPolygonStipple_p);
#if XSubPPtmpAAAP
        newXS_deffile("OpenGL::glPrioritizeTextures_c", XS_OpenGL_glPrioritizeTextures_c);
        newXS_deffile("OpenGL::glPrioritizeTextures_s", XS_OpenGL_glPrioritizeTextures_s);
        newXS_deffile("OpenGL::glPrioritizeTextures_p", XS_OpenGL_glPrioritizeTextures_p);
#endif
        newXS_deffile("OpenGL::glPushAttrib", XS_OpenGL_glPushAttrib);
        newXS_deffile("OpenGL::glPopAttrib", XS_OpenGL_glPopAttrib);
        newXS_deffile("OpenGL::glPushClientAttrib", XS_OpenGL_glPushClientAttrib);
        newXS_deffile("OpenGL::glPopClientAttrib", XS_OpenGL_glPopClientAttrib);
        newXS_deffile("OpenGL::glPushMatrix", XS_OpenGL_glPushMatrix);
        newXS_deffile("OpenGL::glPopMatrix", XS_OpenGL_glPopMatrix);
        newXS_deffile("OpenGL::glPushName", XS_OpenGL_glPushName);
        newXS_deffile("OpenGL::glPopName", XS_OpenGL_glPopName);
        newXS_deffile("OpenGL::glReadBuffer", XS_OpenGL_glReadBuffer);
        newXS_deffile("OpenGL::glReadPixels_c", XS_OpenGL_glReadPixels_c);
        newXS_deffile("OpenGL::glReadPixels_s", XS_OpenGL_glReadPixels_s);
        newXS_deffile("OpenGL::glReadPixels_p", XS_OpenGL_glReadPixels_p);
        cv = newXS_deffile("OpenGL::glRecti", XS_OpenGL_glRecti);
        XSANY.any_i32 = 0;
        cv = newXS_deffile("OpenGL::glRectiv_p", XS_OpenGL_glRecti);
        XSANY.any_i32 = 1;
        cv = newXS_deffile("OpenGL::glRects", XS_OpenGL_glRects);
        XSANY.any_i32 = 0;
        cv = newXS_deffile("OpenGL::glRectsv_p", XS_OpenGL_glRects);
        XSANY.any_i32 = 1;
        cv = newXS_deffile("OpenGL::glRectd", XS_OpenGL_glRectd);
        XSANY.any_i32 = 0;
        cv = newXS_deffile("OpenGL::glRectdv_p", XS_OpenGL_glRectd);
        XSANY.any_i32 = 1;
        cv = newXS_deffile("OpenGL::glRectf", XS_OpenGL_glRectf);
        XSANY.any_i32 = 0;
        cv = newXS_deffile("OpenGL::glRectfv_p", XS_OpenGL_glRectf);
        XSANY.any_i32 = 1;
        newXS_deffile("OpenGL::glRectsv_c", XS_OpenGL_glRectsv_c);
        newXS_deffile("OpenGL::glRectiv_c", XS_OpenGL_glRectiv_c);
        newXS_deffile("OpenGL::glRectfv_c", XS_OpenGL_glRectfv_c);
        newXS_deffile("OpenGL::glRectdv_c", XS_OpenGL_glRectdv_c);
        newXS_deffile("OpenGL::glRectdv_s", XS_OpenGL_glRectdv_s);
        newXS_deffile("OpenGL::glRectfv_s", XS_OpenGL_glRectfv_s);
        newXS_deffile("OpenGL::glRectiv_s", XS_OpenGL_glRectiv_s);
        newXS_deffile("OpenGL::glRectsv_s", XS_OpenGL_glRectsv_s);
        newXS_deffile("OpenGL::glRenderMode", XS_OpenGL_glRenderMode);
        newXS_deffile("OpenGL::glRotated", XS_OpenGL_glRotated);
        newXS_deffile("OpenGL::glRotatef", XS_OpenGL_glRotatef);
        newXS_deffile("OpenGL::glScaled", XS_OpenGL_glScaled);
        newXS_deffile("OpenGL::glScalef", XS_OpenGL_glScalef);
        newXS_deffile("OpenGL::glScissor", XS_OpenGL_glScissor);
        newXS_deffile("OpenGL::glSelectBuffer_c", XS_OpenGL_glSelectBuffer_c);
        newXS_deffile("OpenGL::glShadeModel", XS_OpenGL_glShadeModel);
        newXS_deffile("OpenGL::glStencilFunc", XS_OpenGL_glStencilFunc);
        newXS_deffile("OpenGL::glStencilMask", XS_OpenGL_glStencilMask);
        newXS_deffile("OpenGL::glStencilOp", XS_OpenGL_glStencilOp);
        newXS_deffile("OpenGL::glTexEnvf", XS_OpenGL_glTexEnvf);
        newXS_deffile("OpenGL::glTexEnvi", XS_OpenGL_glTexEnvi);
        newXS_deffile("OpenGL::glTexEnvfv_s", XS_OpenGL_glTexEnvfv_s);
        newXS_deffile("OpenGL::glTexEnviv_s", XS_OpenGL_glTexEnviv_s);
        newXS_deffile("OpenGL::glTexEnvfv_p", XS_OpenGL_glTexEnvfv_p);
        newXS_deffile("OpenGL::glTexEnviv_p", XS_OpenGL_glTexEnviv_p);
        newXS_deffile("OpenGL::glTexGend", XS_OpenGL_glTexGend);
        newXS_deffile("OpenGL::glTexGenf", XS_OpenGL_glTexGenf);
        newXS_deffile("OpenGL::glTexGeni", XS_OpenGL_glTexGeni);
        newXS_deffile("OpenGL::glTexGendv_c", XS_OpenGL_glTexGendv_c);
        newXS_deffile("OpenGL::glTexGenfv_c", XS_OpenGL_glTexGenfv_c);
        newXS_deffile("OpenGL::glTexGeniv_c", XS_OpenGL_glTexGeniv_c);
        newXS_deffile("OpenGL::glTexGendv_s", XS_OpenGL_glTexGendv_s);
        newXS_deffile("OpenGL::glTexGenfv_s", XS_OpenGL_glTexGenfv_s);
        newXS_deffile("OpenGL::glTexGeniv_s", XS_OpenGL_glTexGeniv_s);
        newXS_deffile("OpenGL::glTexGendv_p", XS_OpenGL_glTexGendv_p);
        newXS_deffile("OpenGL::glTexGenfv_p", XS_OpenGL_glTexGenfv_p);
        newXS_deffile("OpenGL::glTexGeniv_p", XS_OpenGL_glTexGeniv_p);
        newXS_deffile("OpenGL::glTexImage1D_c", XS_OpenGL_glTexImage1D_c);
        newXS_deffile("OpenGL::glTexImage1D_s", XS_OpenGL_glTexImage1D_s);
        newXS_deffile("OpenGL::glTexImage1D_p", XS_OpenGL_glTexImage1D_p);
        newXS_deffile("OpenGL::glTexImage2D_c", XS_OpenGL_glTexImage2D_c);
        newXS_deffile("OpenGL::glTexImage2D_s", XS_OpenGL_glTexImage2D_s);
        newXS_deffile("OpenGL::glTexImage2D_p", XS_OpenGL_glTexImage2D_p);
#if XSubPPtmpAAAQ
        newXS_deffile("OpenGL::glTexImage3D_c", XS_OpenGL_glTexImage3D_c);
        newXS_deffile("OpenGL::glTexImage3D_s", XS_OpenGL_glTexImage3D_s);
        newXS_deffile("OpenGL::glTexImage3D_p", XS_OpenGL_glTexImage3D_p);
#endif
        newXS_deffile("OpenGL::glTexParameterf", XS_OpenGL_glTexParameterf);
        newXS_deffile("OpenGL::glTexParameteri", XS_OpenGL_glTexParameteri);
        newXS_deffile("OpenGL::glTexParameterfv_c", XS_OpenGL_glTexParameterfv_c);
        newXS_deffile("OpenGL::glTexParameteriv_c", XS_OpenGL_glTexParameteriv_c);
        newXS_deffile("OpenGL::glTexParameterfv_s", XS_OpenGL_glTexParameterfv_s);
        newXS_deffile("OpenGL::glTexParameteriv_s", XS_OpenGL_glTexParameteriv_s);
        newXS_deffile("OpenGL::glTexParameterfv_p", XS_OpenGL_glTexParameterfv_p);
        newXS_deffile("OpenGL::glTexParameteriv_p", XS_OpenGL_glTexParameteriv_p);
#if XSubPPtmpAAAR
        newXS_deffile("OpenGL::glTexSubImage1D_c", XS_OpenGL_glTexSubImage1D_c);
        newXS_deffile("OpenGL::glTexSubImage1D_s", XS_OpenGL_glTexSubImage1D_s);
        newXS_deffile("OpenGL::glTexSubImage1D_p", XS_OpenGL_glTexSubImage1D_p);
        newXS_deffile("OpenGL::glTexSubImage2D_c", XS_OpenGL_glTexSubImage2D_c);
        newXS_deffile("OpenGL::glTexSubImage2D_s", XS_OpenGL_glTexSubImage2D_s);
        newXS_deffile("OpenGL::glTexSubImage2D_p", XS_OpenGL_glTexSubImage2D_p);
#if XSubPPtmpAAAS
        newXS_deffile("OpenGL::glTexSubImage3D_c", XS_OpenGL_glTexSubImage3D_c);
        newXS_deffile("OpenGL::glTexSubImage3D_s", XS_OpenGL_glTexSubImage3D_s);
        newXS_deffile("OpenGL::glTexSubImage3D_p", XS_OpenGL_glTexSubImage3D_p);
#endif
#endif
        newXS_deffile("OpenGL::glTranslated", XS_OpenGL_glTranslated);
        newXS_deffile("OpenGL::glTranslatef", XS_OpenGL_glTranslatef);
        newXS_deffile("OpenGL::glViewport", XS_OpenGL_glViewport);
        newXS_deffile("OpenGL::glVertex2d", XS_OpenGL_glVertex2d);
        newXS_deffile("OpenGL::glVertex2dv_c", XS_OpenGL_glVertex2dv_c);
        newXS_deffile("OpenGL::glVertex2dv_s", XS_OpenGL_glVertex2dv_s);
        newXS_deffile("OpenGL::glVertex2dv_p", XS_OpenGL_glVertex2dv_p);
        newXS_deffile("OpenGL::glVertex2f", XS_OpenGL_glVertex2f);
        newXS_deffile("OpenGL::glVertex2fv_s", XS_OpenGL_glVertex2fv_s);
        newXS_deffile("OpenGL::glVertex2fv_c", XS_OpenGL_glVertex2fv_c);
        newXS_deffile("OpenGL::glVertex2fv_p", XS_OpenGL_glVertex2fv_p);
        newXS_deffile("OpenGL::glVertex2i", XS_OpenGL_glVertex2i);
        newXS_deffile("OpenGL::glVertex2iv_c", XS_OpenGL_glVertex2iv_c);
        newXS_deffile("OpenGL::glVertex2iv_s", XS_OpenGL_glVertex2iv_s);
        newXS_deffile("OpenGL::glVertex2iv_p", XS_OpenGL_glVertex2iv_p);
        newXS_deffile("OpenGL::glVertex2s", XS_OpenGL_glVertex2s);
        newXS_deffile("OpenGL::glVertex2sv_c", XS_OpenGL_glVertex2sv_c);
        newXS_deffile("OpenGL::glVertex2sv_s", XS_OpenGL_glVertex2sv_s);
        newXS_deffile("OpenGL::glVertex2sv_p", XS_OpenGL_glVertex2sv_p);
        newXS_deffile("OpenGL::glTexCoord2d", XS_OpenGL_glTexCoord2d);
        newXS_deffile("OpenGL::glTexCoord2dv_c", XS_OpenGL_glTexCoord2dv_c);
        newXS_deffile("OpenGL::glTexCoord2dv_s", XS_OpenGL_glTexCoord2dv_s);
        newXS_deffile("OpenGL::glTexCoord2dv_p", XS_OpenGL_glTexCoord2dv_p);
        newXS_deffile("OpenGL::glTexCoord2f", XS_OpenGL_glTexCoord2f);
        newXS_deffile("OpenGL::glTexCoord2fv_c", XS_OpenGL_glTexCoord2fv_c);
        newXS_deffile("OpenGL::glTexCoord2fv_s", XS_OpenGL_glTexCoord2fv_s);
        newXS_deffile("OpenGL::glTexCoord2fv_p", XS_OpenGL_glTexCoord2fv_p);
        newXS_deffile("OpenGL::glTexCoord2i", XS_OpenGL_glTexCoord2i);
        newXS_deffile("OpenGL::glTexCoord2iv_c", XS_OpenGL_glTexCoord2iv_c);
        newXS_deffile("OpenGL::glTexCoord2iv_s", XS_OpenGL_glTexCoord2iv_s);
        newXS_deffile("OpenGL::glTexCoord2iv_p", XS_OpenGL_glTexCoord2iv_p);
        newXS_deffile("OpenGL::glTexCoord2s", XS_OpenGL_glTexCoord2s);
        newXS_deffile("OpenGL::glTexCoord2sv_c", XS_OpenGL_glTexCoord2sv_c);
        newXS_deffile("OpenGL::glTexCoord2sv_s", XS_OpenGL_glTexCoord2sv_s);
        newXS_deffile("OpenGL::glTexCoord2sv_p", XS_OpenGL_glTexCoord2sv_p);
        newXS_deffile("OpenGL::glTexCoord3d", XS_OpenGL_glTexCoord3d);
        newXS_deffile("OpenGL::glTexCoord3dv_c", XS_OpenGL_glTexCoord3dv_c);
        newXS_deffile("OpenGL::glTexCoord3dv_s", XS_OpenGL_glTexCoord3dv_s);
        newXS_deffile("OpenGL::glTexCoord3dv_p", XS_OpenGL_glTexCoord3dv_p);
        newXS_deffile("OpenGL::glTexCoord3f", XS_OpenGL_glTexCoord3f);
        newXS_deffile("OpenGL::glTexCoord3fv_c", XS_OpenGL_glTexCoord3fv_c);
        newXS_deffile("OpenGL::glTexCoord3fv_s", XS_OpenGL_glTexCoord3fv_s);
        newXS_deffile("OpenGL::glTexCoord3fv_p", XS_OpenGL_glTexCoord3fv_p);
        newXS_deffile("OpenGL::glTexCoord3i", XS_OpenGL_glTexCoord3i);
        newXS_deffile("OpenGL::glTexCoord3iv_c", XS_OpenGL_glTexCoord3iv_c);
        newXS_deffile("OpenGL::glTexCoord3iv_s", XS_OpenGL_glTexCoord3iv_s);
        newXS_deffile("OpenGL::glTexCoord3iv_p", XS_OpenGL_glTexCoord3iv_p);
        newXS_deffile("OpenGL::glTexCoord3s", XS_OpenGL_glTexCoord3s);
        newXS_deffile("OpenGL::glTexCoord3sv_s", XS_OpenGL_glTexCoord3sv_s);
        newXS_deffile("OpenGL::glTexCoord3sv_c", XS_OpenGL_glTexCoord3sv_c);
        newXS_deffile("OpenGL::glTexCoord3sv_p", XS_OpenGL_glTexCoord3sv_p);
        newXS_deffile("OpenGL::glTexCoord4d", XS_OpenGL_glTexCoord4d);
        newXS_deffile("OpenGL::glTexCoord4dv_c", XS_OpenGL_glTexCoord4dv_c);
        newXS_deffile("OpenGL::glTexCoord4dv_s", XS_OpenGL_glTexCoord4dv_s);
        newXS_deffile("OpenGL::glTexCoord4dv_p", XS_OpenGL_glTexCoord4dv_p);
        newXS_deffile("OpenGL::glTexCoord4f", XS_OpenGL_glTexCoord4f);
        newXS_deffile("OpenGL::glTexCoord4fv_c", XS_OpenGL_glTexCoord4fv_c);
        newXS_deffile("OpenGL::glTexCoord4fv_s", XS_OpenGL_glTexCoord4fv_s);
        newXS_deffile("OpenGL::glTexCoord4fv_p", XS_OpenGL_glTexCoord4fv_p);
        newXS_deffile("OpenGL::glTexCoord4i", XS_OpenGL_glTexCoord4i);
        newXS_deffile("OpenGL::glTexCoord4iv_c", XS_OpenGL_glTexCoord4iv_c);
        newXS_deffile("OpenGL::glTexCoord4iv_s", XS_OpenGL_glTexCoord4iv_s);
        newXS_deffile("OpenGL::glTexCoord4iv_p", XS_OpenGL_glTexCoord4iv_p);
        newXS_deffile("OpenGL::glTexCoord4s", XS_OpenGL_glTexCoord4s);
        newXS_deffile("OpenGL::glTexCoord4sv_c", XS_OpenGL_glTexCoord4sv_c);
        newXS_deffile("OpenGL::glTexCoord4sv_s", XS_OpenGL_glTexCoord4sv_s);
        newXS_deffile("OpenGL::glTexCoord4sv_p", XS_OpenGL_glTexCoord4sv_p);
        newXS_deffile("OpenGL::glRasterPos2d", XS_OpenGL_glRasterPos2d);
        newXS_deffile("OpenGL::glRasterPos2dv_c", XS_OpenGL_glRasterPos2dv_c);
        newXS_deffile("OpenGL::glRasterPos2dv_s", XS_OpenGL_glRasterPos2dv_s);
        newXS_deffile("OpenGL::glRasterPos2dv_p", XS_OpenGL_glRasterPos2dv_p);
        newXS_deffile("OpenGL::glRasterPos2f", XS_OpenGL_glRasterPos2f);
        newXS_deffile("OpenGL::glRasterPos2fv_c", XS_OpenGL_glRasterPos2fv_c);
        newXS_deffile("OpenGL::glRasterPos2fv_s", XS_OpenGL_glRasterPos2fv_s);
        newXS_deffile("OpenGL::glRasterPos2fv_p", XS_OpenGL_glRasterPos2fv_p);
        newXS_deffile("OpenGL::glRasterPos2i", XS_OpenGL_glRasterPos2i);
        newXS_deffile("OpenGL::glRasterPos2iv_c", XS_OpenGL_glRasterPos2iv_c);
        newXS_deffile("OpenGL::glRasterPos2iv_s", XS_OpenGL_glRasterPos2iv_s);
        newXS_deffile("OpenGL::glRasterPos2iv_p", XS_OpenGL_glRasterPos2iv_p);
        newXS_deffile("OpenGL::glRasterPos2s", XS_OpenGL_glRasterPos2s);
        newXS_deffile("OpenGL::glRasterPos2sv_c", XS_OpenGL_glRasterPos2sv_c);
        newXS_deffile("OpenGL::glRasterPos2sv_s", XS_OpenGL_glRasterPos2sv_s);
        newXS_deffile("OpenGL::glRasterPos2sv_p", XS_OpenGL_glRasterPos2sv_p);
        newXS_deffile("OpenGL::glRasterPos3d", XS_OpenGL_glRasterPos3d);
        newXS_deffile("OpenGL::glRasterPos3dv_c", XS_OpenGL_glRasterPos3dv_c);
        newXS_deffile("OpenGL::glRasterPos3dv_s", XS_OpenGL_glRasterPos3dv_s);
        newXS_deffile("OpenGL::glRasterPos3dv_p", XS_OpenGL_glRasterPos3dv_p);
        newXS_deffile("OpenGL::glRasterPos3f", XS_OpenGL_glRasterPos3f);
        newXS_deffile("OpenGL::glRasterPos3fv_c", XS_OpenGL_glRasterPos3fv_c);
        newXS_deffile("OpenGL::glRasterPos3fv_s", XS_OpenGL_glRasterPos3fv_s);
        newXS_deffile("OpenGL::glRasterPos3fv_p", XS_OpenGL_glRasterPos3fv_p);
        newXS_deffile("OpenGL::glRasterPos3i", XS_OpenGL_glRasterPos3i);
        newXS_deffile("OpenGL::glRasterPos3iv_c", XS_OpenGL_glRasterPos3iv_c);
        newXS_deffile("OpenGL::glRasterPos3iv_s", XS_OpenGL_glRasterPos3iv_s);
        newXS_deffile("OpenGL::glRasterPos3iv_p", XS_OpenGL_glRasterPos3iv_p);
        newXS_deffile("OpenGL::glRasterPos3s", XS_OpenGL_glRasterPos3s);
        newXS_deffile("OpenGL::glRasterPos3sv_c", XS_OpenGL_glRasterPos3sv_c);
        newXS_deffile("OpenGL::glRasterPos3sv_s", XS_OpenGL_glRasterPos3sv_s);
        newXS_deffile("OpenGL::glRasterPos3sv_p", XS_OpenGL_glRasterPos3sv_p);
        newXS_deffile("OpenGL::glRasterPos4d", XS_OpenGL_glRasterPos4d);
        newXS_deffile("OpenGL::glRasterPos4dv_c", XS_OpenGL_glRasterPos4dv_c);
        newXS_deffile("OpenGL::glRasterPos4dv_s", XS_OpenGL_glRasterPos4dv_s);
        newXS_deffile("OpenGL::glRasterPos4dv_p", XS_OpenGL_glRasterPos4dv_p);
        newXS_deffile("OpenGL::glRasterPos4f", XS_OpenGL_glRasterPos4f);
        newXS_deffile("OpenGL::glRasterPos4fv_c", XS_OpenGL_glRasterPos4fv_c);
        newXS_deffile("OpenGL::glRasterPos4fv_s", XS_OpenGL_glRasterPos4fv_s);
        newXS_deffile("OpenGL::glRasterPos4fv_p", XS_OpenGL_glRasterPos4fv_p);
        newXS_deffile("OpenGL::glRasterPos4i", XS_OpenGL_glRasterPos4i);
        newXS_deffile("OpenGL::glRasterPos4iv_c", XS_OpenGL_glRasterPos4iv_c);
        newXS_deffile("OpenGL::glRasterPos4iv_s", XS_OpenGL_glRasterPos4iv_s);
        newXS_deffile("OpenGL::glRasterPos4iv_p", XS_OpenGL_glRasterPos4iv_p);
        newXS_deffile("OpenGL::glRasterPos4s", XS_OpenGL_glRasterPos4s);
        newXS_deffile("OpenGL::glRasterPos4sv_c", XS_OpenGL_glRasterPos4sv_c);
        newXS_deffile("OpenGL::glRasterPos4sv_s", XS_OpenGL_glRasterPos4sv_s);
        newXS_deffile("OpenGL::glRasterPos4sv_p", XS_OpenGL_glRasterPos4sv_p);
#if XSubPPtmpAAAT
        newXS_deffile("OpenGL::glBlendColor", XS_OpenGL_glBlendColor);
        newXS_deffile("OpenGL::glBlendEquation", XS_OpenGL_glBlendEquation);
#endif
        newXS_deffile("OpenGL::glVertex3d", XS_OpenGL_glVertex3d);
        newXS_deffile("OpenGL::glVertex3dv_c", XS_OpenGL_glVertex3dv_c);
        newXS_deffile("OpenGL::glVertex3dv_s", XS_OpenGL_glVertex3dv_s);
        newXS_deffile("OpenGL::glVertex3dv_p", XS_OpenGL_glVertex3dv_p);
        newXS_deffile("OpenGL::glVertex3f", XS_OpenGL_glVertex3f);
        newXS_deffile("OpenGL::glVertex3fv_c", XS_OpenGL_glVertex3fv_c);
        newXS_deffile("OpenGL::glVertex3fv_s", XS_OpenGL_glVertex3fv_s);
        newXS_deffile("OpenGL::glVertex3fv_p", XS_OpenGL_glVertex3fv_p);
        newXS_deffile("OpenGL::glVertex3i", XS_OpenGL_glVertex3i);
        newXS_deffile("OpenGL::glVertex3iv_c", XS_OpenGL_glVertex3iv_c);
        newXS_deffile("OpenGL::glVertex3iv_s", XS_OpenGL_glVertex3iv_s);
        newXS_deffile("OpenGL::glVertex3iv_p", XS_OpenGL_glVertex3iv_p);
        newXS_deffile("OpenGL::glVertex3s", XS_OpenGL_glVertex3s);
        newXS_deffile("OpenGL::glVertex3sv_c", XS_OpenGL_glVertex3sv_c);
        newXS_deffile("OpenGL::glVertex3sv_s", XS_OpenGL_glVertex3sv_s);
        newXS_deffile("OpenGL::glVertex3sv_p", XS_OpenGL_glVertex3sv_p);
        newXS_deffile("OpenGL::glVertex4d", XS_OpenGL_glVertex4d);
        newXS_deffile("OpenGL::glVertex4dv_c", XS_OpenGL_glVertex4dv_c);
        newXS_deffile("OpenGL::glVertex4dv_s", XS_OpenGL_glVertex4dv_s);
        newXS_deffile("OpenGL::glVertex4dv_p", XS_OpenGL_glVertex4dv_p);
        newXS_deffile("OpenGL::glVertex4f", XS_OpenGL_glVertex4f);
        newXS_deffile("OpenGL::glVertex4fv_c", XS_OpenGL_glVertex4fv_c);
        newXS_deffile("OpenGL::glVertex4fv_s", XS_OpenGL_glVertex4fv_s);
        newXS_deffile("OpenGL::glVertex4fv_p", XS_OpenGL_glVertex4fv_p);
        newXS_deffile("OpenGL::glVertex4i", XS_OpenGL_glVertex4i);
        newXS_deffile("OpenGL::glVertex4iv_c", XS_OpenGL_glVertex4iv_c);
        newXS_deffile("OpenGL::glVertex4iv_s", XS_OpenGL_glVertex4iv_s);
        newXS_deffile("OpenGL::glVertex4iv_p", XS_OpenGL_glVertex4iv_p);
        newXS_deffile("OpenGL::glVertex4s", XS_OpenGL_glVertex4s);
        newXS_deffile("OpenGL::glVertex4sv_s", XS_OpenGL_glVertex4sv_s);
        newXS_deffile("OpenGL::glVertex4sv_c", XS_OpenGL_glVertex4sv_c);
        newXS_deffile("OpenGL::glVertex4sv_p", XS_OpenGL_glVertex4sv_p);
        newXS_deffile("OpenGL::glNormal3b", XS_OpenGL_glNormal3b);
        newXS_deffile("OpenGL::glNormal3bv_c", XS_OpenGL_glNormal3bv_c);
        newXS_deffile("OpenGL::glNormal3bv_s", XS_OpenGL_glNormal3bv_s);
        newXS_deffile("OpenGL::glNormal3bv_p", XS_OpenGL_glNormal3bv_p);
        newXS_deffile("OpenGL::glNormal3d", XS_OpenGL_glNormal3d);
        newXS_deffile("OpenGL::glNormal3dv_c", XS_OpenGL_glNormal3dv_c);
        newXS_deffile("OpenGL::glNormal3dv_s", XS_OpenGL_glNormal3dv_s);
        newXS_deffile("OpenGL::glNormal3dv_p", XS_OpenGL_glNormal3dv_p);
        newXS_deffile("OpenGL::glNormal3f", XS_OpenGL_glNormal3f);
        newXS_deffile("OpenGL::glNormal3fv_c", XS_OpenGL_glNormal3fv_c);
        newXS_deffile("OpenGL::glNormal3fv_s", XS_OpenGL_glNormal3fv_s);
        newXS_deffile("OpenGL::glNormal3fv_p", XS_OpenGL_glNormal3fv_p);
        newXS_deffile("OpenGL::glNormal3i", XS_OpenGL_glNormal3i);
        newXS_deffile("OpenGL::glNormal3iv_c", XS_OpenGL_glNormal3iv_c);
        newXS_deffile("OpenGL::glNormal3iv_s", XS_OpenGL_glNormal3iv_s);
        newXS_deffile("OpenGL::glNormal3iv_p", XS_OpenGL_glNormal3iv_p);
        newXS_deffile("OpenGL::glNormal3s", XS_OpenGL_glNormal3s);
        newXS_deffile("OpenGL::glNormal3sv_c", XS_OpenGL_glNormal3sv_c);
        newXS_deffile("OpenGL::glNormal3sv_s", XS_OpenGL_glNormal3sv_s);
        newXS_deffile("OpenGL::glNormal3sv_p", XS_OpenGL_glNormal3sv_p);
        newXS_deffile("OpenGL::glColor3b", XS_OpenGL_glColor3b);
        newXS_deffile("OpenGL::glColor3bv_c", XS_OpenGL_glColor3bv_c);
        newXS_deffile("OpenGL::glColor3bv_s", XS_OpenGL_glColor3bv_s);
        newXS_deffile("OpenGL::glColor3bv_p", XS_OpenGL_glColor3bv_p);
        newXS_deffile("OpenGL::glColor3d", XS_OpenGL_glColor3d);
        newXS_deffile("OpenGL::glColor3dv_c", XS_OpenGL_glColor3dv_c);
        newXS_deffile("OpenGL::glColor3dv_s", XS_OpenGL_glColor3dv_s);
        newXS_deffile("OpenGL::glColor3dv_p", XS_OpenGL_glColor3dv_p);
        newXS_deffile("OpenGL::glColor3f", XS_OpenGL_glColor3f);
        newXS_deffile("OpenGL::glColor3fv_c", XS_OpenGL_glColor3fv_c);
        newXS_deffile("OpenGL::glColor3fv_s", XS_OpenGL_glColor3fv_s);
        newXS_deffile("OpenGL::glColor3fv_p", XS_OpenGL_glColor3fv_p);
        newXS_deffile("OpenGL::glColor3i", XS_OpenGL_glColor3i);
        newXS_deffile("OpenGL::glColor3iv_c", XS_OpenGL_glColor3iv_c);
        newXS_deffile("OpenGL::glColor3iv_s", XS_OpenGL_glColor3iv_s);
        newXS_deffile("OpenGL::glColor3iv_p", XS_OpenGL_glColor3iv_p);
        newXS_deffile("OpenGL::glColor3s", XS_OpenGL_glColor3s);
        newXS_deffile("OpenGL::glColor3sv_c", XS_OpenGL_glColor3sv_c);
        newXS_deffile("OpenGL::glColor3sv_s", XS_OpenGL_glColor3sv_s);
        newXS_deffile("OpenGL::glColor3sv_p", XS_OpenGL_glColor3sv_p);
        newXS_deffile("OpenGL::glColor3ub", XS_OpenGL_glColor3ub);
        newXS_deffile("OpenGL::glColor3ubv_c", XS_OpenGL_glColor3ubv_c);
        newXS_deffile("OpenGL::glColor3ubv_s", XS_OpenGL_glColor3ubv_s);
        newXS_deffile("OpenGL::glColor3ubv_p", XS_OpenGL_glColor3ubv_p);
        newXS_deffile("OpenGL::glColor3ui", XS_OpenGL_glColor3ui);
        newXS_deffile("OpenGL::glColor3uiv_c", XS_OpenGL_glColor3uiv_c);
        newXS_deffile("OpenGL::glColor3uiv_s", XS_OpenGL_glColor3uiv_s);
        newXS_deffile("OpenGL::glColor3uiv_p", XS_OpenGL_glColor3uiv_p);
        newXS_deffile("OpenGL::glColor3us", XS_OpenGL_glColor3us);
        newXS_deffile("OpenGL::glColor3usv_c", XS_OpenGL_glColor3usv_c);
        newXS_deffile("OpenGL::glColor3usv_s", XS_OpenGL_glColor3usv_s);
        newXS_deffile("OpenGL::glColor3usv_p", XS_OpenGL_glColor3usv_p);
        newXS_deffile("OpenGL::glColor4b", XS_OpenGL_glColor4b);
        newXS_deffile("OpenGL::glColor4bv_c", XS_OpenGL_glColor4bv_c);
        newXS_deffile("OpenGL::glColor4bv_s", XS_OpenGL_glColor4bv_s);
        newXS_deffile("OpenGL::glColor4bv_p", XS_OpenGL_glColor4bv_p);
        newXS_deffile("OpenGL::glColor4d", XS_OpenGL_glColor4d);
        newXS_deffile("OpenGL::glColor4dv_c", XS_OpenGL_glColor4dv_c);
        newXS_deffile("OpenGL::glColor4dv_s", XS_OpenGL_glColor4dv_s);
        newXS_deffile("OpenGL::glColor4dv_p", XS_OpenGL_glColor4dv_p);
        newXS_deffile("OpenGL::glColor4f", XS_OpenGL_glColor4f);
        newXS_deffile("OpenGL::glColor4fv_c", XS_OpenGL_glColor4fv_c);
        newXS_deffile("OpenGL::glColor4fv_s", XS_OpenGL_glColor4fv_s);
        newXS_deffile("OpenGL::glColor4fv_p", XS_OpenGL_glColor4fv_p);
        newXS_deffile("OpenGL::glColor4i", XS_OpenGL_glColor4i);
        newXS_deffile("OpenGL::glColor4iv_c", XS_OpenGL_glColor4iv_c);
        newXS_deffile("OpenGL::glColor4iv_s", XS_OpenGL_glColor4iv_s);
        newXS_deffile("OpenGL::glColor4iv_p", XS_OpenGL_glColor4iv_p);
        newXS_deffile("OpenGL::glColor4s", XS_OpenGL_glColor4s);
        newXS_deffile("OpenGL::glColor4sv_c", XS_OpenGL_glColor4sv_c);
        newXS_deffile("OpenGL::glColor4sv_s", XS_OpenGL_glColor4sv_s);
        newXS_deffile("OpenGL::glColor4sv_p", XS_OpenGL_glColor4sv_p);
        newXS_deffile("OpenGL::glColor4ub", XS_OpenGL_glColor4ub);
        newXS_deffile("OpenGL::glColor4ubv_c", XS_OpenGL_glColor4ubv_c);
        newXS_deffile("OpenGL::glColor4ubv_s", XS_OpenGL_glColor4ubv_s);
        newXS_deffile("OpenGL::glColor4ubv_p", XS_OpenGL_glColor4ubv_p);
        newXS_deffile("OpenGL::glColor4ui", XS_OpenGL_glColor4ui);
        newXS_deffile("OpenGL::glColor4uiv_s", XS_OpenGL_glColor4uiv_s);
        newXS_deffile("OpenGL::glColor4uiv_c", XS_OpenGL_glColor4uiv_c);
        newXS_deffile("OpenGL::glColor4uiv_p", XS_OpenGL_glColor4uiv_p);
        newXS_deffile("OpenGL::glColor4us", XS_OpenGL_glColor4us);
        newXS_deffile("OpenGL::glColor4usv_c", XS_OpenGL_glColor4usv_c);
        newXS_deffile("OpenGL::glColor4usv_s", XS_OpenGL_glColor4usv_s);
        newXS_deffile("OpenGL::glColor4usv_p", XS_OpenGL_glColor4usv_p);
        newXS_deffile("OpenGL::glTexCoord1d", XS_OpenGL_glTexCoord1d);
        newXS_deffile("OpenGL::glTexCoord1dv_c", XS_OpenGL_glTexCoord1dv_c);
        newXS_deffile("OpenGL::glTexCoord1dv_s", XS_OpenGL_glTexCoord1dv_s);
        newXS_deffile("OpenGL::glTexCoord1dv_p", XS_OpenGL_glTexCoord1dv_p);
        newXS_deffile("OpenGL::glTexCoord1f", XS_OpenGL_glTexCoord1f);
        newXS_deffile("OpenGL::glTexCoord1fv_c", XS_OpenGL_glTexCoord1fv_c);
        newXS_deffile("OpenGL::glTexCoord1fv_s", XS_OpenGL_glTexCoord1fv_s);
        newXS_deffile("OpenGL::glTexCoord1fv_p", XS_OpenGL_glTexCoord1fv_p);
        newXS_deffile("OpenGL::glTexCoord1i", XS_OpenGL_glTexCoord1i);
        newXS_deffile("OpenGL::glTexCoord1iv_c", XS_OpenGL_glTexCoord1iv_c);
        newXS_deffile("OpenGL::glTexCoord1iv_s", XS_OpenGL_glTexCoord1iv_s);
        newXS_deffile("OpenGL::glTexCoord1iv_p", XS_OpenGL_glTexCoord1iv_p);
        newXS_deffile("OpenGL::glTexCoord1s", XS_OpenGL_glTexCoord1s);
        newXS_deffile("OpenGL::glTexCoord1sv_c", XS_OpenGL_glTexCoord1sv_c);
        newXS_deffile("OpenGL::glTexCoord1sv_s", XS_OpenGL_glTexCoord1sv_s);
        newXS_deffile("OpenGL::glTexCoord1sv_p", XS_OpenGL_glTexCoord1sv_p);
#if XSubPPtmpAAAU
        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 XSubPPtmpAAAV
        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 XSubPPtmpAAAW
        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 XSubPPtmpAAAX
        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 XSubPPtmpAAAY
        newXS_deffile("OpenGL::glGenQueries_p", XS_OpenGL_glGenQueries_p);
        newXS_deffile("OpenGL::glDeleteQueries", XS_OpenGL_glDeleteQueries);
        newXS_deffile("OpenGL::glGetQueryObjectiv", XS_OpenGL_glGetQueryObjectiv);
        newXS_deffile("OpenGL::glGetQueryObjectuiv", XS_OpenGL_glGetQueryObjectuiv);
        newXS_deffile("OpenGL::glGetQueryiv", XS_OpenGL_glGetQueryiv);
        newXS_deffile("OpenGL::glBeginQuery", XS_OpenGL_glBeginQuery);
        newXS_deffile("OpenGL::glEndQuery", XS_OpenGL_glEndQuery);
#endif
#if XSubPPtmpAAAZ
        newXS_deffile("OpenGL::glResizeBuffersMESA", XS_OpenGL_glResizeBuffersMESA);
#endif
#if XSubPPtmpAABA
        newXS_deffile("OpenGL::glArrayElementEXT", XS_OpenGL_glArrayElementEXT);
        newXS_deffile("OpenGL::glDrawArraysEXT", XS_OpenGL_glDrawArraysEXT);
#endif
#if XSubPPtmpAABB
        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 XSubPPtmpAABC
        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
#if XSubPPtmpAABD
        newXS_deffile("OpenGL::glPointParameterfARB", XS_OpenGL_glPointParameterfARB);
        newXS_deffile("OpenGL::glPointParameterfvARB_c", XS_OpenGL_glPointParameterfvARB_c);
        newXS_deffile("OpenGL::glPointParameterfvARB_s", XS_OpenGL_glPointParameterfvARB_s);
        newXS_deffile("OpenGL::glPointParameterfvARB_p", XS_OpenGL_glPointParameterfvARB_p);
#endif
#if XSubPPtmpAABE
        newXS_deffile("OpenGL::glSampleCoverageARB", XS_OpenGL_glSampleCoverageARB);
#endif
#if XSubPPtmpAABF
        newXS_deffile("OpenGL::glTexImage3DEXT_c", XS_OpenGL_glTexImage3DEXT_c);
        newXS_deffile("OpenGL::glTexImage3DEXT_s", XS_OpenGL_glTexImage3DEXT_s);
        newXS_deffile("OpenGL::glTexImage3DEXT_p", XS_OpenGL_glTexImage3DEXT_p);
        newXS_deffile("OpenGL::glTexSubImage3DEXT_c", XS_OpenGL_glTexSubImage3DEXT_c);
        newXS_deffile("OpenGL::glTexSubImage3DEXT_s", XS_OpenGL_glTexSubImage3DEXT_s);
        newXS_deffile("OpenGL::glTexSubImage3DEXT_p", XS_OpenGL_glTexSubImage3DEXT_p);
#endif
#if XSubPPtmpAABG
        newXS_deffile("OpenGL::glBlendEquationEXT", XS_OpenGL_glBlendEquationEXT);
#endif
#if XSubPPtmpAABH
        newXS_deffile("OpenGL::glBlendColorEXT", XS_OpenGL_glBlendColorEXT);
#endif
#endif

    /* Initialisation Section */

#if XSubPPtmpAAAA
#if XSubPPtmpAAAB
#endif
#if XSubPPtmpAAAC
#endif
#if XSubPPtmpAAAD
#if XSubPPtmpAAAE
#endif
#endif
#if XSubPPtmpAAAF
#endif
#if XSubPPtmpAAAG
#endif
#if XSubPPtmpAAAH
#endif
#if XSubPPtmpAAAI
#endif
#if XSubPPtmpAAAJ
#endif
#if XSubPPtmpAAAK
#endif
#if XSubPPtmpAAAL
#endif
#if XSubPPtmpAAAM
#endif
#if XSubPPtmpAAAN
#endif
#if XSubPPtmpAAAO
#endif
#if XSubPPtmpAAAP
#endif
#if XSubPPtmpAAAQ
#endif
#if XSubPPtmpAAAR
#if XSubPPtmpAAAS
#endif
#endif
#if XSubPPtmpAAAT
#endif
#if XSubPPtmpAAAU
#endif
#if XSubPPtmpAAAV
#endif
#if XSubPPtmpAAAW
#endif
#if XSubPPtmpAAAX
#endif
#if XSubPPtmpAAAY
#endif
#if XSubPPtmpAAAZ
#endif
#if XSubPPtmpAABA
#endif
#if XSubPPtmpAABB
#endif
#if XSubPPtmpAABC
#endif
#if XSubPPtmpAABD
#endif
#if XSubPPtmpAABE
#endif
#if XSubPPtmpAABF
#endif
#if XSubPPtmpAABG
#endif
#if XSubPPtmpAABH
#endif
#endif
#line 21380 "lib/OpenGL/V1.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
}

#ifdef __cplusplus
}
#endif
