/* Generated from "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod" by precompile.pike running Pike v8.1 release 13
 *
 * Do NOT edit this file.
 */

#undef PRECOMPILE_API_VERSION
#define PRECOMPILE_API_VERSION 6



#undef cmod___CMOD__
#define cmod___CMOD__ 1
#line 1 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#line 1 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#line 1 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#line 3488 "/Users/hww3/devel/pike/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike"







#line 3495 "/Users/hww3/devel/pike/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike"
#line 1 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#line 1 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#include "machine.h"
#include "config.h"
#undef PACKAGE_BUGREPORT
#undef PACKAGE_NAME
#undef PACKAGE_STRING
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION

#include "global.h"
#include "interpret.h"
#include "port.h"
#include "mapping.h"
#include "array.h"
#include "builtin_functions.h"
#include "module_support.h"

#ifdef HAVE_GLSL

#ifdef HAVE_OPENGL_GL_H
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
#else
#include <GL/gl.h>
#include <GL/glext.h>
#endif

#define UI(X) ((GLuint)X)

/*! @module GLSL
 *!
 *! Low-level functions needed to do 'modern' OpenGL rendering.
 *!
 *! You probably want to start by looking at the @[GLSLUtils] module,
 *! or the examples included in the module.
 *!
 *! @decl constant GLSL_FLOAT_SIZE = sizeof(GLfloat);
 *!
 *! @decl constant GL_GENERATE_MIPMAP;
 *!
 *! @decl constant GL_GENERATE_MIPMAP_HINT;
 *!
 *! @decl constant GL_VERTEX_ARRAY;
 *!
 *! @decl constant GL_NORMAL_ARRAY;
 *!
 *! @decl constant GL_COLOR_ARRAY;
 *!
 *! @decl constant GL_SECONDARY_COLOR_ARRAY;
 *!
 *! @decl constant GL_INDEX_ARRAY;
 *!
 *! @decl constant GL_EDGE_FLAG_ARRAY;
 *!
 *! @decl constant GL_TEXTURE_COORD_ARRAY;
 *!
 *! @decl constant GL_VERTEX_PROGRAM_POINT_SIZE;
 *!
 *! @decl constant GL_POINT_SPRITE
 *!
 *! @decl constant GL_ARRAY_BUFFER
 *!
 *! @decl constant GL_ELEMENT_ARRAY_BUFFER
 *!
 *! @decl constant GL_ARRAY_BUFFER_BINDING
 *!
 *!
 *! @decl constant GL_ELEMENT_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_NORMAL_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_VERTEX_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_COLOR_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_INDEX_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_EDGE_FLAG_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_WEIGHT_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
 *!
 *! @decl constant GL_STREAM_DRAW
 *!
 *! @decl constant GL_STREAM_READ
 *!
 *! @decl constant GL_STREAM_COPY
 *!
 *! @decl constant GL_STATIC_DRAW
 *!
 *! @decl constant GL_STATIC_READ
 *!
 *!
 *! @decl constant GL_STATIC_COPY
 *!
 *! @decl constant GL_DYNAMIC_DRAW
 *!
 *! @decl constant GL_DYNAMIC_READ
 *!
 *! @decl constant GL_DYNAMIC_COPY
 *!
 *! @decl constant GL_DEPTH_COMPONENT
 *!
 *! @decl constant GL_DEPTH_COMPONENT16
 *!
 *! @decl constant GL_DEPTH_COMPONENT24
 *!
 *! @decl constant GL_DEPTH_COMPONENT32
 *!
 *!
 *! @decl constant GL_DEPTH_ATTACHMENT_EXT
 *!
 *! @decl constant GL_COLOR_ATTACHMENT0_EXT
 *!
 *! @decl constant GL_COLOR_ATTACHMENT1_EXT
 *!
 *! @decl constant GL_COLOR_ATTACHMENT2_EXT
 *!
 *! @decl constant GL_COLOR_ATTACHMENT3_EXT
 *!
 *! @decl constant GL_COLOR_ATTACHMENT4_EXT
 *!
 *! @decl constant GL_FRAMEBUFFER_COMPLETE_EXT
 *!
 *! @decl constant GL_VERTEX_SHADER
 *!
 *! @decl constant GL_FRAGMENT_SHADER
 *!
 *! @decl constant GL_DEPTH_CLAMP_NV
 *!
 *! @decl constant GL_TEXTURE_RECTANGLE_ARB
 *!
 *! @decl constant GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB
 *!
 *! @decl constant GL_RGBA32F_ARB
 *!
 *! @decl constant GL_RGB32F_ARB
 *!
 *! @decl constant GL_ALPHA32F_ARB
 *!
 *! @decl constant GL_INTENSITY32F_ARB
 *!
 *! @decl constant GL_LUMINANCE32F_ARB
 *!
 *! @decl constant GL_LUMINANCE_ALPHA32F_ARB
 *!
 *! @decl constant GL_RGBA16F_ARB
 *!
 *! @decl constant GL_RGB16F_ARB
 *!
 *! @decl constant GL_ALPHA16F_ARB
 *!
 *! @decl constant GL_INTENSITY16F_ARB
 *!
 *! @decl constant GL_LUMINANCE16F_ARB
 *!
 *! @decl constant GL_LUMINANCE_ALPHA16F_ARB
 *!
 *! @decl constant GL_LUMINANCE8_EXT
 *!
 *! @decl constant GL_FRAMEBUFFER_EXT
 *!
 *! @decl constant GL_READ_FRAMEBUFFER_EXT
 *!
 *! @decl constant GL_DRAW_FRAMEBUFFER_EXT
 */



#ifndef PIKE_UNUSED_ATTRIBUTE
#define PIKE_UNUSED_ATTRIBUTE
#endif
#define CMOD_MAP_PROGRAM_IDS_DEFINED 1
static int ___cmod_map_program_ids(int id) PIKE_UNUSED_ATTRIBUTE;
#ifndef TYPEOF
/* Compat with older Pikes. */
#define TYPEOF(SVAL)	((SVAL).type)
#define SUBTYPEOF(SVAL)	((SVAL).subtype)
#define SET_SVAL_TYPE(SVAL, TYPE)	(TYPEOF(SVAL) = TYPE)
#define SET_SVAL_SUBTYPE(SVAL, TYPE)	(SUBTYPEOF(SVAL) = TYPE)
#define SET_SVAL(SVAL, TYPE, SUBTYPE, FIELD, EXPR) do {	\
    /* Set the type afterwards to avoid a clobbered	\
     * svalue in case EXPR throws. */			\
    (SVAL).u.FIELD = (EXPR);				\
    SET_SVAL_TYPE((SVAL), (TYPE));			\
    SET_SVAL_SUBTYPE((SVAL), (SUBTYPE));		\
  } while(0)
#endif /* !TYPEOF */
#ifndef PIKE_UNUSED
/* Compat with Pike 7.8 and earlier. */
/* NB: Not strictly correct; PIKE_UNUSED was added the
 *     day after set_program_id_to_id(), but good enough.
 */
#ifndef UNUSED
#define UNUSED(X)	X
#endif
#ifndef set_program_id_to_id
/* NB: Recent Pike 7.8 has a #define that conflicts with
 *     the following declaration.
 */
static void set_program_id_to_id(void*UNUSED(id)){}
#endif
#else /* */
PMOD_EXPORT void set_program_id_to_id( int (*to)(int) );
#endif /* !PIKE_UNUSED */
#if !defined(string_has_null) && !defined(STRING_CONTENT_CHECKED)
/* This symbol was added as a macro in Pike 7.7.20, and is an
 * inline function in Pike 7.9.4 and later, at which time the
 * flag STRING_CONTENT_CHECKED was added.
 */
#define string_has_null(X) (strlen((X)->str)!=(size_t)(X)->len)
#endif


#ifndef DEFAULT_CMOD_STORAGE
#define CMOD_COND_USED
#define DEFAULT_CMOD_STORAGE static
#endif
#ifndef CMOD_COND_USED
# define f_module_glActiveTexture_fun_num_used 1
# define f_module_glAttachShader_fun_num_used 1
# define f_module_glBindBuffer_fun_num_used 1
# define f_module_glBindFramebufferEXT_fun_num_used 1
# define f_module_glBindRenderbufferEXT_fun_num_used 1
# define f_module_glBufferData_1_fun_num_used 1
# define f_module_glBufferData_2_fun_num_used 1
# define f_module_glBufferData_3_fun_num_used 1
# define f_module_glBufferSubData_1_fun_num_used 1
# define f_module_glBufferSubData_2_fun_num_used 1
# define f_module_glBufferSubData_3_fun_num_used 1
# define f_module_glCheckFramebufferStatusEXT_fun_num_used 1
# define f_module_glColorPointer_fun_num_used 1
# define f_module_glCompileShader_fun_num_used 1
# define f_module_glCompressedTexImage2D_fun_num_used 1
# define f_module_glCreateProgram_fun_num_used 1
# define f_module_glCreateShader_fun_num_used 1
# define f_module_glDisableClientState_fun_num_used 1
# define f_module_glDisableVertexAttribArray_fun_num_used 1
# define f_module_glDrawArrays_fun_num_used 1
# define f_module_glEdgeFlagPointer_fun_num_used 1
# define f_module_glEnableClientState_fun_num_used 1
# define f_module_glEnableVertexAttribArray_fun_num_used 1
# define f_module_glFogCoordPointer_fun_num_used 1
# define f_module_glFramebufferRenderbufferEXT_fun_num_used 1
# define f_module_glFramebufferTexture2DEXT_fun_num_used 1
# define f_module_glGenBuffers_fun_num_used 1
# define f_module_glGenFramebuffersEXT_fun_num_used 1
# define f_module_glGenRenderbuffersEXT_fun_num_used 1
# define f_module_glGenerateMipmapEXT_fun_num_used 1
# define f_module_glGetAttribLocation_fun_num_used 1
# define f_module_glGetUniformLocation_fun_num_used 1
# define f_module_glIsBuffer_fun_num_used 1
# define f_module_glLinkProgram_fun_num_used 1
# define f_module_glMultiTexCoord_1_fun_num_used 1
# define f_module_glMultiTexCoord_2_fun_num_used 1
# define f_module_glMultiTexCoord_3_fun_num_used 1
# define f_module_glNormalPointer_fun_num_used 1
# define f_module_glRenderbufferStorageEXT_fun_num_used 1
# define f_module_glSecondaryColorPointer_fun_num_used 1
# define f_module_glShaderSource_fun_num_used 1
# define f_module_glTexCoordPointer_fun_num_used 1
# define f_module_glTexImage2DNoImage_fun_num_used 1
# define f_module_glUniform_1_fun_num_used 1
# define f_module_glUniform_2_fun_num_used 1
# define f_module_glUniform_3_fun_num_used 1
# define f_module_glUniform_4_fun_num_used 1
# define f_module_glUniform_5_fun_num_used 1
# define f_module_glUniform_6_fun_num_used 1
# define f_module_glUniform_7_fun_num_used 1
# define f_module_glUniform_8_fun_num_used 1
# define f_module_glUseProgram_fun_num_used 1
# define f_module_glVertexAttribPointer_1_fun_num_used 1
# define f_module_glVertexAttribPointer_2_fun_num_used 1
# define f_module_glVertexAttrib_1_fun_num_used 1
# define f_module_glVertexAttrib_2_fun_num_used 1
# define f_module_glVertexAttrib_3_fun_num_used 1
# define f_module_glVertexAttrib_4_fun_num_used 1
# define f_module_glVertexPointer_fun_num_used 1
# define module_f_module_glBufferData_fun_num_used 1
# define module_f_module_glBufferSubData_fun_num_used 1
# define module_f_module_glMultiTexCoord_fun_num_used 1
# define module_f_module_glUniform_fun_num_used 1
# define module_f_module_glVertexAttribPointer_fun_num_used 1
# define module_f_module_glVertexAttrib_fun_num_used 1
#else /* !CMOD_COND_USED */
# undef f_module_glActiveTexture_fun_num_used
# undef f_module_glAttachShader_fun_num_used
# undef f_module_glBindBuffer_fun_num_used
# undef f_module_glBindFramebufferEXT_fun_num_used
# undef f_module_glBindRenderbufferEXT_fun_num_used
# undef f_module_glBufferData_1_fun_num_used
# undef f_module_glBufferData_2_fun_num_used
# undef f_module_glBufferData_3_fun_num_used
# undef f_module_glBufferSubData_1_fun_num_used
# undef f_module_glBufferSubData_2_fun_num_used
# undef f_module_glBufferSubData_3_fun_num_used
# undef f_module_glCheckFramebufferStatusEXT_fun_num_used
# undef f_module_glColorPointer_fun_num_used
# undef f_module_glCompileShader_fun_num_used
# undef f_module_glCompressedTexImage2D_fun_num_used
# undef f_module_glCreateProgram_fun_num_used
# undef f_module_glCreateShader_fun_num_used
# undef f_module_glDisableClientState_fun_num_used
# undef f_module_glDisableVertexAttribArray_fun_num_used
# undef f_module_glDrawArrays_fun_num_used
# undef f_module_glEdgeFlagPointer_fun_num_used
# undef f_module_glEnableClientState_fun_num_used
# undef f_module_glEnableVertexAttribArray_fun_num_used
# undef f_module_glFogCoordPointer_fun_num_used
# undef f_module_glFramebufferRenderbufferEXT_fun_num_used
# undef f_module_glFramebufferTexture2DEXT_fun_num_used
# undef f_module_glGenBuffers_fun_num_used
# undef f_module_glGenFramebuffersEXT_fun_num_used
# undef f_module_glGenRenderbuffersEXT_fun_num_used
# undef f_module_glGenerateMipmapEXT_fun_num_used
# undef f_module_glGetAttribLocation_fun_num_used
# undef f_module_glGetUniformLocation_fun_num_used
# undef f_module_glIsBuffer_fun_num_used
# undef f_module_glLinkProgram_fun_num_used
# undef f_module_glMultiTexCoord_1_fun_num_used
# undef f_module_glMultiTexCoord_2_fun_num_used
# undef f_module_glMultiTexCoord_3_fun_num_used
# undef f_module_glNormalPointer_fun_num_used
# undef f_module_glRenderbufferStorageEXT_fun_num_used
# undef f_module_glSecondaryColorPointer_fun_num_used
# undef f_module_glShaderSource_fun_num_used
# undef f_module_glTexCoordPointer_fun_num_used
# undef f_module_glTexImage2DNoImage_fun_num_used
# undef f_module_glUniform_1_fun_num_used
# undef f_module_glUniform_2_fun_num_used
# undef f_module_glUniform_3_fun_num_used
# undef f_module_glUniform_4_fun_num_used
# undef f_module_glUniform_5_fun_num_used
# undef f_module_glUniform_6_fun_num_used
# undef f_module_glUniform_7_fun_num_used
# undef f_module_glUniform_8_fun_num_used
# undef f_module_glUseProgram_fun_num_used
# undef f_module_glVertexAttribPointer_1_fun_num_used
# undef f_module_glVertexAttribPointer_2_fun_num_used
# undef f_module_glVertexAttrib_1_fun_num_used
# undef f_module_glVertexAttrib_2_fun_num_used
# undef f_module_glVertexAttrib_3_fun_num_used
# undef f_module_glVertexAttrib_4_fun_num_used
# undef f_module_glVertexPointer_fun_num_used
# undef module_f_module_glBufferData_fun_num_used
# undef module_f_module_glBufferSubData_fun_num_used
# undef module_f_module_glMultiTexCoord_fun_num_used
# undef module_f_module_glUniform_fun_num_used
# undef module_f_module_glVertexAttribPointer_fun_num_used
# undef module_f_module_glVertexAttrib_fun_num_used
#endif /* !CMOD_COND_USED */

#ifdef f_module_glCreateShader_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glCreateShader_fun_num = -1;

#endif /* f_module_glCreateShader_fun_num_used */

#ifdef f_module_glShaderSource_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glShaderSource_fun_num = -1;

#endif /* f_module_glShaderSource_fun_num_used */

#ifdef f_module_glCompileShader_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glCompileShader_fun_num = -1;

#endif /* f_module_glCompileShader_fun_num_used */

#ifdef f_module_glCreateProgram_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glCreateProgram_fun_num = -1;

#endif /* f_module_glCreateProgram_fun_num_used */

#ifdef f_module_glAttachShader_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glAttachShader_fun_num = -1;

#endif /* f_module_glAttachShader_fun_num_used */

#ifdef f_module_glLinkProgram_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glLinkProgram_fun_num = -1;

#endif /* f_module_glLinkProgram_fun_num_used */

#ifdef f_module_glUseProgram_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUseProgram_fun_num = -1;

#endif /* f_module_glUseProgram_fun_num_used */

#ifdef f_module_glGetUniformLocation_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glGetUniformLocation_fun_num = -1;

#endif /* f_module_glGetUniformLocation_fun_num_used */

#ifdef f_module_glUniform_1_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUniform_1_fun_num = -1;

#endif /* f_module_glUniform_1_fun_num_used */

#ifdef f_module_glUniform_2_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUniform_2_fun_num = -1;

#endif /* f_module_glUniform_2_fun_num_used */

#ifdef f_module_glUniform_3_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUniform_3_fun_num = -1;

#endif /* f_module_glUniform_3_fun_num_used */

#ifdef f_module_glUniform_4_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUniform_4_fun_num = -1;

#endif /* f_module_glUniform_4_fun_num_used */

#ifdef f_module_glUniform_5_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUniform_5_fun_num = -1;

#endif /* f_module_glUniform_5_fun_num_used */

#ifdef f_module_glUniform_6_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUniform_6_fun_num = -1;

#endif /* f_module_glUniform_6_fun_num_used */

#ifdef f_module_glUniform_7_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUniform_7_fun_num = -1;

#endif /* f_module_glUniform_7_fun_num_used */

#ifdef f_module_glUniform_8_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glUniform_8_fun_num = -1;

#endif /* f_module_glUniform_8_fun_num_used */

#ifdef module_f_module_glUniform_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t module_f_module_glUniform_fun_num = -1;

#endif /* module_f_module_glUniform_fun_num_used */

#ifdef f_module_glGetAttribLocation_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glGetAttribLocation_fun_num = -1;

#endif /* f_module_glGetAttribLocation_fun_num_used */

#ifdef f_module_glVertexAttrib_1_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glVertexAttrib_1_fun_num = -1;

#endif /* f_module_glVertexAttrib_1_fun_num_used */

#ifdef f_module_glVertexAttrib_2_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glVertexAttrib_2_fun_num = -1;

#endif /* f_module_glVertexAttrib_2_fun_num_used */

#ifdef f_module_glVertexAttrib_3_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glVertexAttrib_3_fun_num = -1;

#endif /* f_module_glVertexAttrib_3_fun_num_used */

#ifdef f_module_glVertexAttrib_4_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glVertexAttrib_4_fun_num = -1;

#endif /* f_module_glVertexAttrib_4_fun_num_used */

#ifdef module_f_module_glVertexAttrib_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t module_f_module_glVertexAttrib_fun_num = -1;

#endif /* module_f_module_glVertexAttrib_fun_num_used */

#ifdef f_module_glActiveTexture_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glActiveTexture_fun_num = -1;

#endif /* f_module_glActiveTexture_fun_num_used */

#ifdef f_module_glMultiTexCoord_1_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glMultiTexCoord_1_fun_num = -1;

#endif /* f_module_glMultiTexCoord_1_fun_num_used */

#ifdef f_module_glMultiTexCoord_2_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glMultiTexCoord_2_fun_num = -1;

#endif /* f_module_glMultiTexCoord_2_fun_num_used */

#ifdef f_module_glMultiTexCoord_3_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glMultiTexCoord_3_fun_num = -1;

#endif /* f_module_glMultiTexCoord_3_fun_num_used */

#ifdef module_f_module_glMultiTexCoord_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t module_f_module_glMultiTexCoord_fun_num = -1;

#endif /* module_f_module_glMultiTexCoord_fun_num_used */

#ifdef f_module_glGenFramebuffersEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glGenFramebuffersEXT_fun_num = -1;

#endif /* f_module_glGenFramebuffersEXT_fun_num_used */

#ifdef f_module_glBindFramebufferEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBindFramebufferEXT_fun_num = -1;

#endif /* f_module_glBindFramebufferEXT_fun_num_used */

#ifdef f_module_glBindRenderbufferEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBindRenderbufferEXT_fun_num = -1;

#endif /* f_module_glBindRenderbufferEXT_fun_num_used */

#ifdef f_module_glGenRenderbuffersEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glGenRenderbuffersEXT_fun_num = -1;

#endif /* f_module_glGenRenderbuffersEXT_fun_num_used */

#ifdef f_module_glRenderbufferStorageEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glRenderbufferStorageEXT_fun_num = -1;

#endif /* f_module_glRenderbufferStorageEXT_fun_num_used */

#ifdef f_module_glFramebufferRenderbufferEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glFramebufferRenderbufferEXT_fun_num = -1;

#endif /* f_module_glFramebufferRenderbufferEXT_fun_num_used */

#ifdef f_module_glFramebufferTexture2DEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glFramebufferTexture2DEXT_fun_num = -1;

#endif /* f_module_glFramebufferTexture2DEXT_fun_num_used */

#ifdef f_module_glCheckFramebufferStatusEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glCheckFramebufferStatusEXT_fun_num = -1;

#endif /* f_module_glCheckFramebufferStatusEXT_fun_num_used */

#ifdef f_module_glGenerateMipmapEXT_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glGenerateMipmapEXT_fun_num = -1;

#endif /* f_module_glGenerateMipmapEXT_fun_num_used */

#ifdef f_module_glCompressedTexImage2D_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glCompressedTexImage2D_fun_num = -1;

#endif /* f_module_glCompressedTexImage2D_fun_num_used */

#ifdef f_module_glTexImage2DNoImage_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glTexImage2DNoImage_fun_num = -1;

#endif /* f_module_glTexImage2DNoImage_fun_num_used */

#ifdef f_module_glBindBuffer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBindBuffer_fun_num = -1;

#endif /* f_module_glBindBuffer_fun_num_used */

#ifdef f_module_glGenBuffers_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glGenBuffers_fun_num = -1;

#endif /* f_module_glGenBuffers_fun_num_used */

#ifdef f_module_glIsBuffer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glIsBuffer_fun_num = -1;

#endif /* f_module_glIsBuffer_fun_num_used */

#ifdef f_module_glBufferData_1_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBufferData_1_fun_num = -1;

#endif /* f_module_glBufferData_1_fun_num_used */

#ifdef f_module_glBufferData_2_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBufferData_2_fun_num = -1;

#endif /* f_module_glBufferData_2_fun_num_used */

#ifdef f_module_glBufferData_3_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBufferData_3_fun_num = -1;

#endif /* f_module_glBufferData_3_fun_num_used */

#ifdef module_f_module_glBufferData_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t module_f_module_glBufferData_fun_num = -1;

#endif /* module_f_module_glBufferData_fun_num_used */

#ifdef f_module_glBufferSubData_1_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBufferSubData_1_fun_num = -1;

#endif /* f_module_glBufferSubData_1_fun_num_used */

#ifdef f_module_glBufferSubData_2_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBufferSubData_2_fun_num = -1;

#endif /* f_module_glBufferSubData_2_fun_num_used */

#ifdef f_module_glBufferSubData_3_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glBufferSubData_3_fun_num = -1;

#endif /* f_module_glBufferSubData_3_fun_num_used */

#ifdef module_f_module_glBufferSubData_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t module_f_module_glBufferSubData_fun_num = -1;

#endif /* module_f_module_glBufferSubData_fun_num_used */

#ifdef f_module_glColorPointer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glColorPointer_fun_num = -1;

#endif /* f_module_glColorPointer_fun_num_used */

#ifdef f_module_glFogCoordPointer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glFogCoordPointer_fun_num = -1;

#endif /* f_module_glFogCoordPointer_fun_num_used */

#ifdef f_module_glSecondaryColorPointer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glSecondaryColorPointer_fun_num = -1;

#endif /* f_module_glSecondaryColorPointer_fun_num_used */

#ifdef f_module_glNormalPointer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glNormalPointer_fun_num = -1;

#endif /* f_module_glNormalPointer_fun_num_used */

#ifdef f_module_glVertexPointer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glVertexPointer_fun_num = -1;

#endif /* f_module_glVertexPointer_fun_num_used */

#ifdef f_module_glEdgeFlagPointer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glEdgeFlagPointer_fun_num = -1;

#endif /* f_module_glEdgeFlagPointer_fun_num_used */

#ifdef f_module_glTexCoordPointer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glTexCoordPointer_fun_num = -1;

#endif /* f_module_glTexCoordPointer_fun_num_used */

#ifdef f_module_glVertexAttribPointer_1_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glVertexAttribPointer_1_fun_num = -1;

#endif /* f_module_glVertexAttribPointer_1_fun_num_used */

#ifdef f_module_glVertexAttribPointer_2_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glVertexAttribPointer_2_fun_num = -1;

#endif /* f_module_glVertexAttribPointer_2_fun_num_used */

#ifdef module_f_module_glVertexAttribPointer_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t module_f_module_glVertexAttribPointer_fun_num = -1;

#endif /* module_f_module_glVertexAttribPointer_fun_num_used */

#ifdef f_module_glEnableClientState_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glEnableClientState_fun_num = -1;

#endif /* f_module_glEnableClientState_fun_num_used */

#ifdef f_module_glDisableClientState_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glDisableClientState_fun_num = -1;

#endif /* f_module_glDisableClientState_fun_num_used */

#ifdef f_module_glEnableVertexAttribArray_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glEnableVertexAttribArray_fun_num = -1;

#endif /* f_module_glEnableVertexAttribArray_fun_num_used */

#ifdef f_module_glDisableVertexAttribArray_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glDisableVertexAttribArray_fun_num = -1;

#endif /* f_module_glDisableVertexAttribArray_fun_num_used */

#ifdef f_module_glDrawArrays_fun_num_used
DEFAULT_CMOD_STORAGE ptrdiff_t f_module_glDrawArrays_fun_num = -1;

#endif /* f_module_glDrawArrays_fun_num_used */
/* shader.. */

#define f_module_glCreateShader_defined
DEFAULT_CMOD_STORAGE void f_module_glCreateShader(INT32 args) {
#line 178 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 178 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glCreateShader",args,1);
#line 178 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glCreateShader",1,"int");
#line 178 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[0-1].u.integer;
/*! @decl int glCreateShader( int type )
 */
{
    do { INT_TYPE ret_=((INT_TYPE)glCreateShader(type)); pop_stack(); push_int(ret_); return; }while(0);
#line 183 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
}

}
#define f_module_glShaderSource_defined
DEFAULT_CMOD_STORAGE void f_module_glShaderSource(INT32 args) {
#line 185 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE shader;
#line 185 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct pike_string * src;
#line 185 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glShaderSource",args,2);
#line 185 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glShaderSource",1,"int");
#line 185 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
shader=Pike_sp[0-2].u.integer;
#line 185 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-2]) != PIKE_T_STRING) SIMPLE_ARG_TYPE_ERROR("glShaderSource",2,"string");
#line 185 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(src=Pike_sp[1-2].u.string);
/*! @decl void glShaderSource( int shader, string source )
 */
{
    const char *p[1];
    p[0]=src->str;
    glShaderSource( UI(shader), 1, p, NULL );
}

}
#define f_module_glCompileShader_defined
DEFAULT_CMOD_STORAGE void f_module_glCompileShader(INT32 args) {
#line 194 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE shader;
#line 194 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glCompileShader",args,1);
#line 194 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glCompileShader",1,"int");
#line 194 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
shader=Pike_sp[0-1].u.integer;
/*! @decl void glCompileShader( int shader )
 */
{
    int ok;
    glCompileShader( UI(shader) );
    glGetShaderiv( UI(shader), GL_COMPILE_STATUS, &ok );
    if( !ok )
    {
	char errorlog[65536];
	int len;
	glGetShaderInfoLog( UI(shader), 65535, &len, errorlog);
	errorlog[len]=0;
	Pike_error("Compilation failed: %s\n",errorlog);
    }
}


}
/* .. program */
#define f_module_glCreateProgram_defined
DEFAULT_CMOD_STORAGE void f_module_glCreateProgram(INT32 args) {
#line 213 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 0) wrong_number_of_args_error("glCreateProgram",args,0);
/*! @decl int glCreateProgram()
 */
{
    do { INT_TYPE ret_=((INT_TYPE)glCreateProgram());  push_int(ret_); return; }while(0);
#line 218 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
}

}
#define f_module_glAttachShader_defined
DEFAULT_CMOD_STORAGE void f_module_glAttachShader(INT32 args) {
#line 220 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE prg;
#line 220 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE shader;
#line 220 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glAttachShader",args,2);
#line 220 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glAttachShader",1,"int");
#line 220 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
prg=Pike_sp[0-2].u.integer;
#line 220 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glAttachShader",2,"int");
#line 220 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
shader=Pike_sp[1-2].u.integer;
/*! @decl void glAttachShader( int program, int shader )
 */
{
    glAttachShader( UI(prg), UI(shader) );
}

}
#define f_module_glLinkProgram_defined
DEFAULT_CMOD_STORAGE void f_module_glLinkProgram(INT32 args) {
#line 227 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE prg;
#line 227 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glLinkProgram",args,1);
#line 227 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glLinkProgram",1,"int");
#line 227 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
prg=Pike_sp[0-1].u.integer;
/*! @decl void glLinkProgram( int program );
 */
{
    int ok;
    glLinkProgram( UI(prg) );
    glGetProgramiv( UI(prg), GL_LINK_STATUS, &ok );
    if( !ok )
    {
	char errorlog[65536];
	int len;
	glGetProgramInfoLog( UI(prg), 65535, &len, errorlog);
	errorlog[len]=0;
	Pike_error("Linking failed: %s\n",errorlog);
    }
}

}
#define f_module_glUseProgram_defined
DEFAULT_CMOD_STORAGE void f_module_glUseProgram(INT32 args) {
#line 244 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE prg;
#line 244 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glUseProgram",args,1);
#line 244 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUseProgram",1,"int");
#line 244 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
prg=Pike_sp[0-1].u.integer;
/*! @decl void glUseProgram( int program );
 */
{
    glUseProgram( UI(prg) );
}

}
/* uniforms */
#define f_module_glGetUniformLocation_defined
DEFAULT_CMOD_STORAGE void f_module_glGetUniformLocation(INT32 args) {
#line 252 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE prg;
#line 252 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct pike_string * name;
#line 252 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glGetUniformLocation",args,2);
#line 252 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glGetUniformLocation",1,"int");
#line 252 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
prg=Pike_sp[0-2].u.integer;
#line 252 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-2]) != PIKE_T_STRING) SIMPLE_ARG_TYPE_ERROR("glGetUniformLocation",2,"string");
#line 252 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(name=Pike_sp[1-2].u.string);
/*! @decl  void glGetUniformLocation(int program, string uniform )
 */
{
    do { INT_TYPE ret_=((INT_TYPE)glGetUniformLocation(UI(prg),name->str)); pop_n_elems(2); push_int(ret_); return; }while(0);
#line 257 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
}

}
#define f_module_glUniform_1_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform_1(INT32 args) {
#line 259 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 259 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v0;
#line 259 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glUniform",args,2);
#line 259 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",1,"int");
#line 259 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-2].u.integer;
#line 259 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-2]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",2,"float");
#line 259 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-2].u.float_number;
#line 270 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
{
    glUniform1f(location,v0);
}

}
#define f_module_glUniform_2_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform_2(INT32 args) {
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v0;
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v1;
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glUniform",args,3);
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",1,"int");
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-3].u.integer;
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-3]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",2,"float");
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-3].u.float_number;
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-3]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",3,"float");
#line 274 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-3].u.float_number;
{
    glUniform2f(location,v0,v1);
}

}
#define f_module_glUniform_3_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform_3(INT32 args) {
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v0;
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v1;
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v2;
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glUniform",args,4);
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",1,"int");
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-4].u.integer;
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",2,"float");
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-4].u.float_number;
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",3,"float");
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-4].u.float_number;
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[3-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",4,"float");
#line 279 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v2=Pike_sp[3-4].u.float_number;
{
    glUniform3f(location,v0,v1,v2);
}

}
#define f_module_glUniform_4_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform_4(INT32 args) {
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v0;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v1;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v2;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v3;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 5) wrong_number_of_args_error("glUniform",args,5);
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",1,"int");
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-5].u.integer;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-5]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",2,"float");
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-5].u.float_number;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-5]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",3,"float");
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-5].u.float_number;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[3-5]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",4,"float");
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v2=Pike_sp[3-5].u.float_number;
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[4-5]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glUniform",5,"float");
#line 284 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v3=Pike_sp[4-5].u.float_number;
{
    glUniform4f(location,v0,v1,v2,v3);
}

}
#define f_module_glUniform_5_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform_5(INT32 args) {
#line 289 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 289 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v0;
#line 289 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glUniform",args,2);
#line 289 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",1,"int");
#line 289 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-2].u.integer;
#line 289 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",2,"int");
#line 289 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-2].u.integer;
{
    glUniform1i(location,v0);
}

}
#define f_module_glUniform_6_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform_6(INT32 args) {
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v0;
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v1;
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glUniform",args,3);
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",1,"int");
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-3].u.integer;
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",2,"int");
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-3].u.integer;
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",3,"int");
#line 294 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-3].u.integer;
{
    glUniform2i(location,v0,v1);
}

}
#define f_module_glUniform_7_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform_7(INT32 args) {
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v0;
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v1;
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v2;
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glUniform",args,4);
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",1,"int");
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-4].u.integer;
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",2,"int");
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-4].u.integer;
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",3,"int");
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-4].u.integer;
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",4,"int");
#line 299 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v2=Pike_sp[3-4].u.integer;
{
    glUniform3i(location,v0,v1,v2);
}

}
#define f_module_glUniform_8_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform_8(INT32 args) {
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v0;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v1;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v2;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE v3;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 5) wrong_number_of_args_error("glUniform",args,5);
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",1,"int");
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-5].u.integer;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",2,"int");
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-5].u.integer;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",3,"int");
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-5].u.integer;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",4,"int");
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v2=Pike_sp[3-5].u.integer;
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[4-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glUniform",5,"int");
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v3=Pike_sp[4-5].u.integer;
{
    glUniform4i(location,v0,v1,v2,v3);
}
}

#if defined(f_module_glUniform_1_defined) || defined(f_module_glUniform_2_defined) || defined(f_module_glUniform_3_defined) || defined(f_module_glUniform_4_defined) || defined(f_module_glUniform_5_defined) || defined(f_module_glUniform_6_defined) || defined(f_module_glUniform_7_defined) || defined(f_module_glUniform_8_defined)
#define f_module_glUniform_defined
DEFAULT_CMOD_STORAGE void f_module_glUniform(INT32 args) {
  switch(args) {
   case 2:
    switch(TYPEOF(Pike_sp[1-2])) {
     case PIKE_T_FLOAT:

#ifdef f_module_glUniform_1_defined
      f_module_glUniform_1(args);
      return;

#endif /* f_module_glUniform_1_defined */
      break;
     case PIKE_T_INT:

#ifdef f_module_glUniform_5_defined
      f_module_glUniform_5(args);
      return;

#endif /* f_module_glUniform_5_defined */
      break;
     default:
      SIMPLE_ARG_TYPE_ERROR("glUniform",2,"float|int");
    }
   case 3:
    switch(TYPEOF(Pike_sp[1-3])) {
     case PIKE_T_FLOAT:

#ifdef f_module_glUniform_2_defined
      f_module_glUniform_2(args);
      return;

#endif /* f_module_glUniform_2_defined */
      break;
     case PIKE_T_INT:

#ifdef f_module_glUniform_6_defined
      f_module_glUniform_6(args);
      return;

#endif /* f_module_glUniform_6_defined */
      break;
     default:
      SIMPLE_ARG_TYPE_ERROR("glUniform",2,"float|int");
    }
   case 4:
    switch(TYPEOF(Pike_sp[1-4])) {
     case PIKE_T_FLOAT:

#ifdef f_module_glUniform_3_defined
      f_module_glUniform_3(args);
      return;

#endif /* f_module_glUniform_3_defined */
      break;
     case PIKE_T_INT:

#ifdef f_module_glUniform_7_defined
      f_module_glUniform_7(args);
      return;

#endif /* f_module_glUniform_7_defined */
      break;
     default:
      SIMPLE_ARG_TYPE_ERROR("glUniform",2,"float|int");
    }
   case 5:
    switch(TYPEOF(Pike_sp[1-5])) {
     case PIKE_T_FLOAT:

#ifdef f_module_glUniform_4_defined
      f_module_glUniform_4(args);
      return;

#endif /* f_module_glUniform_4_defined */
      break;
     case PIKE_T_INT:

#ifdef f_module_glUniform_8_defined
      f_module_glUniform_8(args);
      return;

#endif /* f_module_glUniform_8_defined */
      break;
     default:
      SIMPLE_ARG_TYPE_ERROR("glUniform",2,"float|int");
    }
   default:
    wrong_number_of_args_error("glUniform",args,2);
  }
}

#endif /* f_module_glUniform_1_defined, f_module_glUniform_2_defined, f_module_glUniform_3_defined, f_module_glUniform_4_defined, f_module_glUniform_5_defined, f_module_glUniform_6_defined, f_module_glUniform_7_defined, f_module_glUniform_8_defined */
#line 308 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
/*PIKEFUN glUnifomMatrix(int location, */


/* per-vertex attributes */
#define f_module_glGetAttribLocation_defined
DEFAULT_CMOD_STORAGE void f_module_glGetAttribLocation(INT32 args) {
#line 312 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE prog;
#line 312 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct pike_string * name;
#line 312 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glGetAttribLocation",args,2);
#line 312 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glGetAttribLocation",1,"int");
#line 312 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
prog=Pike_sp[0-2].u.integer;
#line 312 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-2]) != PIKE_T_STRING) SIMPLE_ARG_TYPE_ERROR("glGetAttribLocation",2,"string");
#line 312 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(name=Pike_sp[1-2].u.string);
/*! @decl int glGetAttribLocation( int progra, string name )
 *! @decl void glVertexAttrib( int location, float value )
 *! @decl void glVertexAttrib( int location, float v1, float v2 )
 *! @decl void glVertexAttrib( int location, float v1, float v2, float v3 )
 *! @decl void glVertexAttrib( int location, float v1, float v2, float v3, float v4 )
 */

{
    do { INT_TYPE ret_=(glGetAttribLocation(UI(prog),name->str)); pop_n_elems(2); push_int(ret_); return; }while(0);
#line 322 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
}

}
#define f_module_glVertexAttrib_1_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexAttrib_1(INT32 args) {
#line 324 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 324 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v0;
#line 324 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glVertexAttrib",args,2);
#line 324 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",1,"int");
#line 324 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-2].u.integer;
#line 324 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-2]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",2,"float");
#line 324 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-2].u.float_number;
{
    glVertexAttrib1f(location,v0);
}

}
#define f_module_glVertexAttrib_2_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexAttrib_2(INT32 args) {
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v0;
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v1;
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glVertexAttrib",args,3);
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",1,"int");
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-3].u.integer;
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-3]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",2,"float");
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-3].u.float_number;
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-3]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",3,"float");
#line 329 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-3].u.float_number;
{
    glVertexAttrib2f(location,v0,v1);
}

}
#define f_module_glVertexAttrib_3_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexAttrib_3(INT32 args) {
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v0;
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v1;
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v2;
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glVertexAttrib",args,4);
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",1,"int");
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-4].u.integer;
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",2,"float");
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-4].u.float_number;
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",3,"float");
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-4].u.float_number;
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[3-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",4,"float");
#line 334 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v2=Pike_sp[3-4].u.float_number;
{
    glVertexAttrib3f(location,v0,v1,v2);
}

}
#define f_module_glVertexAttrib_4_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexAttrib_4(INT32 args) {
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE location;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v0;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v1;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v2;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE v3;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 5) wrong_number_of_args_error("glVertexAttrib",args,5);
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",1,"int");
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
location=Pike_sp[0-5].u.integer;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-5]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",2,"float");
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v0=Pike_sp[1-5].u.float_number;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-5]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",3,"float");
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v1=Pike_sp[2-5].u.float_number;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[3-5]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",4,"float");
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v2=Pike_sp[3-5].u.float_number;
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[4-5]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glVertexAttrib",5,"float");
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
v3=Pike_sp[4-5].u.float_number;
{
    glVertexAttrib4f(location,v0,v1,v2,v3);
}

}

#if defined(f_module_glVertexAttrib_1_defined) || defined(f_module_glVertexAttrib_2_defined) || defined(f_module_glVertexAttrib_3_defined) || defined(f_module_glVertexAttrib_4_defined)
#define f_module_glVertexAttrib_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexAttrib(INT32 args) {
  switch(args) {
   case 2:

#ifdef f_module_glVertexAttrib_1_defined
    f_module_glVertexAttrib_1(args);
    return;

#endif /* f_module_glVertexAttrib_1_defined */
    break;
   case 3:

#ifdef f_module_glVertexAttrib_2_defined
    f_module_glVertexAttrib_2(args);
    return;

#endif /* f_module_glVertexAttrib_2_defined */
    break;
   case 4:

#ifdef f_module_glVertexAttrib_3_defined
    f_module_glVertexAttrib_3(args);
    return;

#endif /* f_module_glVertexAttrib_3_defined */
    break;
   case 5:

#ifdef f_module_glVertexAttrib_4_defined
    f_module_glVertexAttrib_4(args);
    return;

#endif /* f_module_glVertexAttrib_4_defined */
    break;
   default:
    wrong_number_of_args_error("glVertexAttrib",args,2);
  }
}

#endif /* f_module_glVertexAttrib_1_defined, f_module_glVertexAttrib_2_defined, f_module_glVertexAttrib_3_defined, f_module_glVertexAttrib_4_defined */
/* Multitexturing */

#define f_module_glActiveTexture_defined
DEFAULT_CMOD_STORAGE void f_module_glActiveTexture(INT32 args) {
#line 346 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE tex;
#line 346 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glActiveTexture",args,1);
#line 346 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glActiveTexture",1,"int");
#line 346 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
tex=Pike_sp[0-1].u.integer;
/*! @decl void glActiveTexture( int texture_unit )
 */
{
    glActiveTexture(tex);
}

}
#define f_module_glMultiTexCoord_1_defined
DEFAULT_CMOD_STORAGE void f_module_glMultiTexCoord_1(INT32 args) {
#line 353 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE tex;
#line 353 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE x;
#line 353 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glMultiTexCoord",args,2);
#line 353 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",1,"int");
#line 353 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
tex=Pike_sp[0-2].u.integer;
#line 353 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-2]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",2,"float");
#line 353 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
x=Pike_sp[1-2].u.float_number;
/*! @decl void glMultiTexCoord( int texture_unit, float x )
 *! @decl void glMultiTexCoord( int texture_unit, float x, float y )
 *! @decl void glMultiTexCoord( int texture_unit, float x, float y, float z )
 */
{
    glMultiTexCoord1f(tex,x);
}

}
#define f_module_glMultiTexCoord_2_defined
DEFAULT_CMOD_STORAGE void f_module_glMultiTexCoord_2(INT32 args) {
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE tex;
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE x;
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE y;
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glMultiTexCoord",args,3);
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",1,"int");
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
tex=Pike_sp[0-3].u.integer;
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-3]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",2,"float");
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
x=Pike_sp[1-3].u.float_number;
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-3]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",3,"float");
#line 362 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
y=Pike_sp[2-3].u.float_number;
{
    glMultiTexCoord2f(tex,x,y);
}

}
#define f_module_glMultiTexCoord_3_defined
DEFAULT_CMOD_STORAGE void f_module_glMultiTexCoord_3(INT32 args) {
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE tex;
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE x;
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE y;
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
FLOAT_TYPE z;
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glMultiTexCoord",args,4);
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",1,"int");
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
tex=Pike_sp[0-4].u.integer;
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",2,"float");
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
x=Pike_sp[1-4].u.float_number;
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",3,"float");
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
y=Pike_sp[2-4].u.float_number;
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[3-4]) != PIKE_T_FLOAT) SIMPLE_ARG_TYPE_ERROR("glMultiTexCoord",4,"float");
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
z=Pike_sp[3-4].u.float_number;
{
    glMultiTexCoord3f(tex,x,y,z);
}


}

#if defined(f_module_glMultiTexCoord_1_defined) || defined(f_module_glMultiTexCoord_2_defined) || defined(f_module_glMultiTexCoord_3_defined)
#define f_module_glMultiTexCoord_defined
DEFAULT_CMOD_STORAGE void f_module_glMultiTexCoord(INT32 args) {
  switch(args) {
   case 2:

#ifdef f_module_glMultiTexCoord_1_defined
    f_module_glMultiTexCoord_1(args);
    return;

#endif /* f_module_glMultiTexCoord_1_defined */
    break;
   case 3:

#ifdef f_module_glMultiTexCoord_2_defined
    f_module_glMultiTexCoord_2(args);
    return;

#endif /* f_module_glMultiTexCoord_2_defined */
    break;
   case 4:

#ifdef f_module_glMultiTexCoord_3_defined
    f_module_glMultiTexCoord_3(args);
    return;

#endif /* f_module_glMultiTexCoord_3_defined */
    break;
   default:
    wrong_number_of_args_error("glMultiTexCoord",args,2);
  }
}

#endif /* f_module_glMultiTexCoord_1_defined, f_module_glMultiTexCoord_2_defined, f_module_glMultiTexCoord_3_defined */
#line 373 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#if defined(HAVE_GLGENFRAMEBUFFERSEXT) && defined(HAVE_GLGENRENDERBUFFERSEXT)
/* FBO:s */

#define f_module_glGenFramebuffersEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glGenFramebuffersEXT(INT32 args) {
#line 376 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE num;
#line 376 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glGenFramebuffersEXT",args,1);
#line 376 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glGenFramebuffersEXT",1,"int");
#line 376 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
num=Pike_sp[0-1].u.integer;
/*! @decl array(int) glGenFramebuffersEXT( int num )
 */
{
    int i;
    GLuint *res = xalloc( sizeof(GLuint) * num );
    glGenFramebuffersEXT(num,res);
    pop_stack();
    for( i=0;i<num;i++ )
	push_int( (INT_TYPE)res[i] );
    f_aggregate( num );
    free(res);
}

}
#define f_module_glBindFramebufferEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glBindFramebufferEXT(INT32 args) {
#line 390 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE which;
#line 390 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE x;
#line 390 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glBindFramebufferEXT",args,2);
#line 390 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBindFramebufferEXT",1,"int");
#line 390 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
which=Pike_sp[0-2].u.integer;
#line 390 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBindFramebufferEXT",2,"int");
#line 390 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
x=Pike_sp[1-2].u.integer;
/*! @decl void glBindFramebufferEXT( int which, int fbo )
 */
{
    glBindFramebufferEXT( which, UI(x));
}

}
#define f_module_glBindRenderbufferEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glBindRenderbufferEXT(INT32 args) {
#line 397 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE x;
#line 397 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glBindRenderbufferEXT",args,1);
#line 397 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBindRenderbufferEXT",1,"int");
#line 397 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
x=Pike_sp[0-1].u.integer;
/*! @decl void glBindRenderbufferEXT( int renderbuffer )
 */
{
    glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, UI(x));
}

}
#define f_module_glGenRenderbuffersEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glGenRenderbuffersEXT(INT32 args) {
#line 404 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE num;
#line 404 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glGenRenderbuffersEXT",args,1);
#line 404 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glGenRenderbuffersEXT",1,"int");
#line 404 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
num=Pike_sp[0-1].u.integer;
/*! @decl array(int) glGenRenderbuffersEXT( int num )
 */
{
    int i;
    GLuint *res = xalloc( sizeof(GLuint) * num );
    glGenRenderbuffersEXT(num,res);
    pop_stack();
    for( i=0;i<num;i++ )
	push_int( (INT_TYPE)res[i] );
    f_aggregate( num );
    free(res);
}

}
#define f_module_glRenderbufferStorageEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glRenderbufferStorageEXT(INT32 args) {
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE width;
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE height;
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glRenderbufferStorageEXT",args,3);
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glRenderbufferStorageEXT",1,"int");
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[0-3].u.integer;
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glRenderbufferStorageEXT",2,"int");
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
width=Pike_sp[1-3].u.integer;
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glRenderbufferStorageEXT",3,"int");
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
height=Pike_sp[2-3].u.integer;
/*! @decl void glRenderbufferStorageET(int type, int width, int height )
 */
{
    glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,type,width,height);
}

}
#define f_module_glFramebufferRenderbufferEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glFramebufferRenderbufferEXT(INT32 args) {
#line 425 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE attachment;
#line 425 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE which;
#line 425 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glFramebufferRenderbufferEXT",args,2);
#line 425 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFramebufferRenderbufferEXT",1,"int");
#line 425 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
attachment=Pike_sp[0-2].u.integer;
#line 425 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFramebufferRenderbufferEXT",2,"int");
#line 425 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
which=Pike_sp[1-2].u.integer;
/*! @decl void glFramebufferRenderbufferEXT(int attachment, int renderbuffer_object )
 */
{
    glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,attachment,GL_RENDERBUFFER_EXT,UI(which));
}

}
#define f_module_glFramebufferTexture2DEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glFramebufferTexture2DEXT(INT32 args) {
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE attachment;
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE texture;
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE mipmap;
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glFramebufferTexture2DEXT",args,4);
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFramebufferTexture2DEXT",1,"int");
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
attachment=Pike_sp[0-4].u.integer;
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFramebufferTexture2DEXT",2,"int");
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[1-4].u.integer;
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFramebufferTexture2DEXT",3,"int");
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
texture=Pike_sp[2-4].u.integer;
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFramebufferTexture2DEXT",4,"int");
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
mipmap=Pike_sp[3-4].u.integer;
/*! @decl void glFramebufferTexture2DEXT(int attachment, int type, int texture, int mipmap )
 */
{
    glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT,attachment,type,texture,mipmap);
}

}
#define f_module_glCheckFramebufferStatusEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glCheckFramebufferStatusEXT(INT32 args) {
#line 439 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 0) wrong_number_of_args_error("glCheckFramebufferStatusEXT",args,0);
/*!  @decl int glCheckFramebufferStatusEXT()
 */
{
    push_int(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT));
}
}
#line 445 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#endif

#if defined(HAVE_GLGENERATEMIPMAPEXT)
#define f_module_glGenerateMipmapEXT_defined
DEFAULT_CMOD_STORAGE void f_module_glGenerateMipmapEXT(INT32 args) {
#line 448 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE f;
#line 448 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glGenerateMipmapEXT",args,1);
#line 448 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glGenerateMipmapEXT",1,"int");
#line 448 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
f=Pike_sp[0-1].u.integer;
/*!  @decl int glGenerateMipmapEXT(int target)
 */
{
    glGenerateMipmapEXT(f);
}
}
#line 454 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#endif

#ifdef GL_COMPRESSED_RGB_S3TC_DXT1_EXT
#define f_module_glCompressedTexImage2D_defined
DEFAULT_CMOD_STORAGE void f_module_glCompressedTexImage2D(INT32 args) {
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE target;
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE level;
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE internal;
INT_TYPE width;
#line 458 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE height;
#line 458 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE border;
struct pike_string * data;
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 7) wrong_number_of_args_error("glCompressedTexImage2D",args,7);
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-7]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glCompressedTexImage2D",1,"int");
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
target=Pike_sp[0-7].u.integer;
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-7]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glCompressedTexImage2D",2,"int");
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
level=Pike_sp[1-7].u.integer;
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-7]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glCompressedTexImage2D",3,"int");
#line 457 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
internal=Pike_sp[2-7].u.integer;
if((TYPEOF(Pike_sp[3-7]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glCompressedTexImage2D",4,"int");
#line 458 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
width=Pike_sp[3-7].u.integer;
#line 458 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[4-7]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glCompressedTexImage2D",5,"int");
#line 458 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
height=Pike_sp[4-7].u.integer;
#line 458 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[5-7]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glCompressedTexImage2D",6,"int");
#line 458 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
border=Pike_sp[5-7].u.integer;
if(TYPEOF(Pike_sp[6-7]) != PIKE_T_STRING) SIMPLE_ARG_TYPE_ERROR("glCompressedTexImage2D",7,"string");
#line 459 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(data=Pike_sp[6-7].u.string);
{
	glCompressedTexImage2D(target,level,internal,width,height,border,data->len,data->str);
}
}
#line 463 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#endif



#define f_module_glTexImage2DNoImage_defined
DEFAULT_CMOD_STORAGE void f_module_glTexImage2DNoImage(INT32 args) {
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE target;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE level;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE internal;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE width;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE height;
INT_TYPE border;
#line 468 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE format;
#line 468 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 8) wrong_number_of_args_error("glTexImage2DNoImage",args,8);
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-8]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexImage2DNoImage",1,"int");
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
target=Pike_sp[0-8].u.integer;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-8]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexImage2DNoImage",2,"int");
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
level=Pike_sp[1-8].u.integer;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-8]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexImage2DNoImage",3,"int");
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
internal=Pike_sp[2-8].u.integer;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-8]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexImage2DNoImage",4,"int");
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
width=Pike_sp[3-8].u.integer;
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[4-8]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexImage2DNoImage",5,"int");
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
height=Pike_sp[4-8].u.integer;
if((TYPEOF(Pike_sp[5-8]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexImage2DNoImage",6,"int");
#line 468 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
border=Pike_sp[5-8].u.integer;
#line 468 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[6-8]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexImage2DNoImage",7,"int");
#line 468 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
format=Pike_sp[6-8].u.integer;
#line 468 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[7-8]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexImage2DNoImage",8,"int");
#line 468 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[7-8].u.integer;
/*!  @decl int glTexImage2DNoImage( int target, int level, int internal, int width, int height, int border, int format, int type )
 *! This is used by the framebuffer code on the pikelevel.
 */
{
    glTexImage2D( target, level, internal, width, height, border, format, type, NULL );
}


}
/* Vertex buffer objects. */
#define f_module_glBindBuffer_defined
DEFAULT_CMOD_STORAGE void f_module_glBindBuffer(INT32 args) {
#line 478 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE target;
#line 478 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE buffer;
#line 478 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glBindBuffer",args,2);
#line 478 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBindBuffer",1,"int");
#line 478 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
target=Pike_sp[0-2].u.integer;
#line 478 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBindBuffer",2,"int");
#line 478 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
buffer=Pike_sp[1-2].u.integer;
/*! @decl void glBindBuffer(int target, int buffer )
 */
{
    glBindBuffer( target, UI(buffer) );
}

}
#define f_module_glGenBuffers_defined
DEFAULT_CMOD_STORAGE void f_module_glGenBuffers(INT32 args) {
#line 485 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE num;
#line 485 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glGenBuffers",args,1);
#line 485 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glGenBuffers",1,"int");
#line 485 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
num=Pike_sp[0-1].u.integer;
/*! @decl array(int) glGenBuffers(int num)
 */
{
    int i;
    GLuint *res = xalloc( sizeof(GLuint) * num );
    glGenBuffers(num,res);
    pop_stack();
    for( i=0;i<num;i++ )
	push_int( (INT_TYPE)res[i] );
    f_aggregate( num );
    free(res);
}

}
#define f_module_glIsBuffer_defined
DEFAULT_CMOD_STORAGE void f_module_glIsBuffer(INT32 args) {
#line 499 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE num;
#line 499 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glIsBuffer",args,1);
#line 499 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glIsBuffer",1,"int");
#line 499 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
num=Pike_sp[0-1].u.integer;
/*! @decl bool glIsBuffer(int id )
 */
{
    do { INT_TYPE ret_=(glIsBuffer(UI(num))); pop_stack(); push_int(ret_); return; }while(0);
#line 504 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
}

}
#line 506 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct memory
{
	unsigned char *p;
	size_t size;
};

static struct program *shm_program;
static struct memory get_memptr( struct object *o )
{
    struct memory res;
    void *p;
    if(shm_program == NULL) {
        push_text("System.Memory");
        SAFE_APPLY_MASTER("resolv",1);
        shm_program=program_from_svalue(Pike_sp-1);
        pop_stack();
        if(shm_program == NULL)
            Pike_error("Can't resolve System.Memory!\n");
    }
    res.size = 0;
    res.p = 0;
    if( (p = (void *)get_storage( o, shm_program )) )
        res = *(struct memory *)p;
    return res;
}

#define f_module_glBufferData_1_defined
DEFAULT_CMOD_STORAGE void f_module_glBufferData_1(INT32 args) {
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE target;
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct object * data;
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
int data_inh_num;
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE usage;
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glBufferData",args,3);
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferData",1,"int");
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
target=Pike_sp[0-3].u.integer;
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-3]) != PIKE_T_OBJECT) SIMPLE_ARG_TYPE_ERROR("glBufferData",2,"object");
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(data=Pike_sp[1-3].u.object);
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
data_inh_num = SUBTYPEOF(Pike_sp[1-3]);
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferData",3,"int");
#line 532 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
usage=Pike_sp[2-3].u.integer;
/*! @decl void glBufferData(int target, System.Memory data, int usage )
 *! @decl void glBufferData(int target, array(float) data, int usage )
 *! @decl void glBufferData(int target, int size, int usage )
 */
{
    struct memory mem = get_memptr( data );
    if( !mem.size ) Pike_error("Invalid memory object\n");
    glBufferData(target, mem.size, mem.p, usage );
}

}
#define f_module_glBufferData_2_defined
DEFAULT_CMOD_STORAGE void f_module_glBufferData_2(INT32 args) {
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE target;
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE size;
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE usage;
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glBufferData",args,3);
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferData",1,"int");
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
target=Pike_sp[0-3].u.integer;
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferData",2,"int");
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
size=Pike_sp[1-3].u.integer;
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferData",3,"int");
#line 543 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
usage=Pike_sp[2-3].u.integer;
{
    glBufferData( target, size, NULL, usage );
}

}
#define f_module_glBufferData_3_defined
DEFAULT_CMOD_STORAGE void f_module_glBufferData_3(INT32 args) {
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE target;
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct array * data;
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE usage;
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glBufferData",args,3);
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferData",1,"int");
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
target=Pike_sp[0-3].u.integer;
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[1-3]) != PIKE_T_ARRAY) SIMPLE_ARG_TYPE_ERROR("glBufferData",2,"array(float)");
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(data=Pike_sp[1-3].u.array);
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferData",3,"int");
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
usage=Pike_sp[2-3].u.integer;
{
    int size = data->size * sizeof(GLfloat);
    int i;
    glBufferData( target, size, NULL, usage );
    GLfloat *x = (GLfloat *)glMapBuffer( target, GL_WRITE_ONLY );
    for( i=0; i<data->size; i++ )
        x[i] = (GLfloat)data->item[i].u.float_number;
    glUnmapBuffer(target);
}


}

#if defined(f_module_glBufferData_1_defined) || defined(f_module_glBufferData_2_defined) || defined(f_module_glBufferData_3_defined)
#define f_module_glBufferData_defined
DEFAULT_CMOD_STORAGE void f_module_glBufferData(INT32 args) {
  if(args < 2) wrong_number_of_args_error("glBufferData",args,3);
  switch(TYPEOF(Pike_sp[1-args])) {
   case PIKE_T_ARRAY:

#ifdef f_module_glBufferData_3_defined
    f_module_glBufferData_3(args);
    return;

#endif /* f_module_glBufferData_3_defined */
    break;
   case PIKE_T_INT:

#ifdef f_module_glBufferData_2_defined
    f_module_glBufferData_2(args);
    return;

#endif /* f_module_glBufferData_2_defined */
    break;
   case PIKE_T_OBJECT:

#ifdef f_module_glBufferData_1_defined
    f_module_glBufferData_1(args);
    return;

#endif /* f_module_glBufferData_1_defined */
    break;
   default:
    SIMPLE_ARG_TYPE_ERROR("glBufferData",2,"array|int|object");
  }
}

#endif /* f_module_glBufferData_1_defined, f_module_glBufferData_2_defined, f_module_glBufferData_3_defined */
#define f_module_glBufferSubData_1_defined
DEFAULT_CMOD_STORAGE void f_module_glBufferSubData_1(INT32 args) {
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE dest;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct object * data;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
int data_inh_num;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE mem_start;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE mem_len;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 5) wrong_number_of_args_error("glBufferSubData",args,5);
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",1,"int");
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[0-5].u.integer;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-5]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",2,"int");
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
dest=Pike_sp[1-5].u.integer;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-5]) != PIKE_T_OBJECT) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",3,"object");
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(data=Pike_sp[2-5].u.object);
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
data_inh_num = SUBTYPEOF(Pike_sp[2-5]);
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-5]) != PIKE_T_INT) || (Pike_sp[3-5].u.integer < 0)) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",4,"int(31bit)");
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
mem_start=Pike_sp[3-5].u.integer;
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[4-5]) != PIKE_T_INT) || (Pike_sp[4-5].u.integer < 0)) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",5,"int(31bit)");
#line 560 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
mem_len=Pike_sp[4-5].u.integer;
{
    struct memory mem = get_memptr( data );
    if(mem.size < (size_t)(mem_start+mem_len) || mem_start < 0)
        Pike_error("Invalid memory object or offset\n");
    glBufferSubData( type, dest, mem_len, mem.p+mem_start );
}

}
#define f_module_glBufferSubData_2_defined
DEFAULT_CMOD_STORAGE void f_module_glBufferSubData_2(INT32 args) {
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE target;
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct object * data;
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
int data_inh_num;
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glBufferSubData",args,3);
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",1,"int");
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
target=Pike_sp[0-3].u.integer;
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",2,"int");
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[1-3].u.integer;
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-3]) != PIKE_T_OBJECT) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",3,"object");
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(data=Pike_sp[2-3].u.object);
#line 568 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
data_inh_num = SUBTYPEOF(Pike_sp[2-3]);
/*! @decl void glBufferData(int target, int offset, System.Memory data )
 *! @decl void glBufferData(int target, int offset, System.Memory data, int data_start, int data_len )
 *! @decl void glBufferData(int target, int offset, array(float) data )
 */
{
    struct memory mem = get_memptr( data );
    if( !mem.size ) Pike_error("Invalid memory object\n");
    glBufferSubData(target, offset, mem.size, mem.p );
}

}
#define f_module_glBufferSubData_3_defined
DEFAULT_CMOD_STORAGE void f_module_glBufferSubData_3(INT32 args) {
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE target;
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct array * data;
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glBufferSubData",args,3);
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",1,"int");
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
target=Pike_sp[0-3].u.integer;
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",2,"int");
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[1-3].u.integer;
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[2-3]) != PIKE_T_ARRAY) SIMPLE_ARG_TYPE_ERROR("glBufferSubData",3,"array(float)");
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(data=Pike_sp[2-3].u.array);
{
    int size = data->size * sizeof(GLfloat), i;
    GLfloat *x = malloc( size );
    for(i=0; i<data->size; i++ )
	x[i] = (GLfloat)data->item[i].u.float_number;
    glBufferSubData(target, offset, size, x );
    free(x);
}

}

#if defined(f_module_glBufferSubData_1_defined) || defined(f_module_glBufferSubData_2_defined) || defined(f_module_glBufferSubData_3_defined)
#define f_module_glBufferSubData_defined
DEFAULT_CMOD_STORAGE void f_module_glBufferSubData(INT32 args) {
  switch(args) {
   case 3:
    switch(TYPEOF(Pike_sp[2-3])) {
     case PIKE_T_ARRAY:

#ifdef f_module_glBufferSubData_3_defined
      f_module_glBufferSubData_3(args);
      return;

#endif /* f_module_glBufferSubData_3_defined */
      break;
     case PIKE_T_OBJECT:

#ifdef f_module_glBufferSubData_2_defined
      f_module_glBufferSubData_2(args);
      return;

#endif /* f_module_glBufferSubData_2_defined */
      break;
     default:
      SIMPLE_ARG_TYPE_ERROR("glBufferSubData",3,"array|object");
    }
   case 5:

#ifdef f_module_glBufferSubData_1_defined
    f_module_glBufferSubData_1(args);
    return;

#endif /* f_module_glBufferSubData_1_defined */
    break;
   default:
    wrong_number_of_args_error("glBufferSubData",args,3);
  }
}

#endif /* f_module_glBufferSubData_1_defined, f_module_glBufferSubData_2_defined, f_module_glBufferSubData_3_defined */
#define f_module_glColorPointer_defined
DEFAULT_CMOD_STORAGE void f_module_glColorPointer(INT32 args) {
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE size;
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glColorPointer",args,4);
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glColorPointer",1,"int");
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
size=Pike_sp[0-4].u.integer;
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glColorPointer",2,"int");
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[1-4].u.integer;
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glColorPointer",3,"int");
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[2-4].u.integer;
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glColorPointer",4,"int");
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[3-4].u.integer;
/*! @decl void glColorPointer( int size, int type, int stride, int offset )
 */
{
    glColorPointer( size, type, stride, (void*)offset );
}

}
#define f_module_glFogCoordPointer_defined
DEFAULT_CMOD_STORAGE void f_module_glFogCoordPointer(INT32 args) {
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glFogCoordPointer",args,3);
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFogCoordPointer",1,"int");
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[0-3].u.integer;
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFogCoordPointer",2,"int");
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[1-3].u.integer;
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glFogCoordPointer",3,"int");
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[2-3].u.integer;
/*! @decl void glFogCoordPointer( int type, int stride, int offset )
 */
{
    glFogCoordPointer( type, stride, (void*)offset );
}

}
#define f_module_glSecondaryColorPointer_defined
DEFAULT_CMOD_STORAGE void f_module_glSecondaryColorPointer(INT32 args) {
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE size;
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glSecondaryColorPointer",args,4);
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glSecondaryColorPointer",1,"int");
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
size=Pike_sp[0-4].u.integer;
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glSecondaryColorPointer",2,"int");
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[1-4].u.integer;
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glSecondaryColorPointer",3,"int");
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[2-4].u.integer;
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glSecondaryColorPointer",4,"int");
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[3-4].u.integer;
/*! @decl void glSecondaryColorPointer( int size, int type, int stride, int offset )
 */
{
    glColorPointer( size, type, stride, (void*)offset );
}

}
#define f_module_glNormalPointer_defined
DEFAULT_CMOD_STORAGE void f_module_glNormalPointer(INT32 args) {
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glNormalPointer",args,3);
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glNormalPointer",1,"int");
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[0-3].u.integer;
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glNormalPointer",2,"int");
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[1-3].u.integer;
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glNormalPointer",3,"int");
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[2-3].u.integer;
/*! @decl void glNormalPointer(int type, int stride, int offset )
 */
{
    glNormalPointer( type, stride, (void*)offset );
}

}
#define f_module_glVertexPointer_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexPointer(INT32 args) {
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE size;
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glVertexPointer",args,4);
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexPointer",1,"int");
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
size=Pike_sp[0-4].u.integer;
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexPointer",2,"int");
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[1-4].u.integer;
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexPointer",3,"int");
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[2-4].u.integer;
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexPointer",4,"int");
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[3-4].u.integer;
/*! @decl void glVertexPointer(int size, int type, int stride, int offset )
 */
{
    glVertexPointer( size, type, stride, (void*)offset );
}

}
#define f_module_glEdgeFlagPointer_defined
DEFAULT_CMOD_STORAGE void f_module_glEdgeFlagPointer(INT32 args) {
#line 624 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 624 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 624 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 2) wrong_number_of_args_error("glEdgeFlagPointer",args,2);
#line 624 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glEdgeFlagPointer",1,"int");
#line 624 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[0-2].u.integer;
#line 624 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-2]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glEdgeFlagPointer",2,"int");
#line 624 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[1-2].u.integer;
/*! @decl void glEdgeFlagPointer( int stride, int offset )
 */
{
    glEdgeFlagPointer( stride, (void*)offset );
}

}
#define f_module_glTexCoordPointer_defined
DEFAULT_CMOD_STORAGE void f_module_glTexCoordPointer(INT32 args) {
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE size;
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 4) wrong_number_of_args_error("glTexCoordPointer",args,4);
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexCoordPointer",1,"int");
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
size=Pike_sp[0-4].u.integer;
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexCoordPointer",2,"int");
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[1-4].u.integer;
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexCoordPointer",3,"int");
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[2-4].u.integer;
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-4]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glTexCoordPointer",4,"int");
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[3-4].u.integer;
/*! @decl void glTexCoordPointer( int size, int type, int stride, int offset )
 */
{
    glTexCoordPointer( size, type, stride, (void*)offset );
}

}
#define f_module_glVertexAttribPointer_1_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexAttribPointer_1(INT32 args) {
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE index;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE size;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE normalized;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE offset;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 6) wrong_number_of_args_error("glVertexAttribPointer",args,6);
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",1,"int");
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
index=Pike_sp[0-6].u.integer;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",2,"int");
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
size=Pike_sp[1-6].u.integer;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",3,"int");
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[2-6].u.integer;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",4,"int");
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
normalized=Pike_sp[3-6].u.integer;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[4-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",5,"int");
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[4-6].u.integer;
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[5-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",6,"int");
#line 638 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
offset=Pike_sp[5-6].u.integer;
/*! @decl void glVertexAttribPointer( int index, int size, int type, bool normalize, int stride, int offset )
 */
{
    glVertexAttribPointer( UI(index), size, type, normalized, stride, (void*)offset );
}

}
#define f_module_glVertexAttribPointer_2_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexAttribPointer_2(INT32 args) {
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE index;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE size;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE type;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE normalized;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE stride;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
struct object * data;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
int data_inh_num;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 6) wrong_number_of_args_error("glVertexAttribPointer",args,6);
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",1,"int");
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
index=Pike_sp[0-6].u.integer;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",2,"int");
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
size=Pike_sp[1-6].u.integer;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",3,"int");
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
type=Pike_sp[2-6].u.integer;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[3-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",4,"int");
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
normalized=Pike_sp[3-6].u.integer;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[4-6]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",5,"int");
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
stride=Pike_sp[4-6].u.integer;
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(TYPEOF(Pike_sp[5-6]) != PIKE_T_OBJECT) SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",6,"object");
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
debug_malloc_pass(data=Pike_sp[5-6].u.object);
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
data_inh_num = SUBTYPEOF(Pike_sp[5-6]);
/*! @decl void glVertexAttribPointer( int index, int size, int type, bool normalize, int stride, System.Memory data )
 */
{
    struct memory mem = get_memptr( data );
    if( !mem.size ) Pike_error("Invalid memory object\n");
    glVertexAttribPointer( UI(index), size, type, normalized, stride, (void*)mem.p );
}

}

#if defined(f_module_glVertexAttribPointer_1_defined) || defined(f_module_glVertexAttribPointer_2_defined)
#define f_module_glVertexAttribPointer_defined
DEFAULT_CMOD_STORAGE void f_module_glVertexAttribPointer(INT32 args) {
  if(args < 6) wrong_number_of_args_error("glVertexAttribPointer",args,6);
  switch(TYPEOF(Pike_sp[5-args])) {
   case PIKE_T_INT:

#ifdef f_module_glVertexAttribPointer_1_defined
    f_module_glVertexAttribPointer_1(args);
    return;

#endif /* f_module_glVertexAttribPointer_1_defined */
    break;
   case PIKE_T_OBJECT:

#ifdef f_module_glVertexAttribPointer_2_defined
    f_module_glVertexAttribPointer_2(args);
    return;

#endif /* f_module_glVertexAttribPointer_2_defined */
    break;
   default:
    SIMPLE_ARG_TYPE_ERROR("glVertexAttribPointer",6,"int|object");
  }
}

#endif /* f_module_glVertexAttribPointer_1_defined, f_module_glVertexAttribPointer_2_defined */
#define f_module_glEnableClientState_defined
DEFAULT_CMOD_STORAGE void f_module_glEnableClientState(INT32 args) {
#line 654 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE state;
#line 654 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glEnableClientState",args,1);
#line 654 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glEnableClientState",1,"int");
#line 654 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
state=Pike_sp[0-1].u.integer;
/*! @decl void glEnableClientState( int state )
 */
{
    glEnableClientState( state );
}

}
#define f_module_glDisableClientState_defined
DEFAULT_CMOD_STORAGE void f_module_glDisableClientState(INT32 args) {
#line 661 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE state;
#line 661 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glDisableClientState",args,1);
#line 661 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glDisableClientState",1,"int");
#line 661 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
state=Pike_sp[0-1].u.integer;
/*! @decl void glDisableClientState( int state )
 */
{
    glEnableClientState( state );
}

}
#define f_module_glEnableVertexAttribArray_defined
DEFAULT_CMOD_STORAGE void f_module_glEnableVertexAttribArray(INT32 args) {
#line 668 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE index;
#line 668 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glEnableVertexAttribArray",args,1);
#line 668 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glEnableVertexAttribArray",1,"int");
#line 668 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
index=Pike_sp[0-1].u.integer;
/*! @decl void glEnableVertexAttribArray( int index )
 */
{
    glEnableVertexAttribArray( index );
}

}
#define f_module_glDisableVertexAttribArray_defined
DEFAULT_CMOD_STORAGE void f_module_glDisableVertexAttribArray(INT32 args) {
#line 675 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE index;
#line 675 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 1) wrong_number_of_args_error("glDisableVertexAttribArray",args,1);
#line 675 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-1]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glDisableVertexAttribArray",1,"int");
#line 675 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
index=Pike_sp[0-1].u.integer;
/*! @decl void glDisableVertexAttribArray( int index )
 */
{
    glDisableVertexAttribArray( index );
}

}
#define f_module_glDrawArrays_defined
DEFAULT_CMOD_STORAGE void f_module_glDrawArrays(INT32 args) {
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE mode;
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE first;
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
INT_TYPE count;
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if(args != 3) wrong_number_of_args_error("glDrawArrays",args,3);
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[0-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glDrawArrays",1,"int");
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
mode=Pike_sp[0-3].u.integer;
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[1-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glDrawArrays",2,"int");
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
first=Pike_sp[1-3].u.integer;
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
if((TYPEOF(Pike_sp[2-3]) != PIKE_T_INT)) SIMPLE_ARG_TYPE_ERROR("glDrawArrays",3,"int");
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
count=Pike_sp[2-3].u.integer;
/*! @decl void glDrawArrays(int mode, int first, int count )
 */
{
    glDrawArrays(mode,first,count);
}



}
#line 691 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#define GLCONST(X) add_integer_constant( "GL_" #X,GL_##X,0);

#undef extra_module_defined
#define extra_module_defined
/*! @endmodule */
#line 809 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
#endif /* HAVE_GLSL */

void init_pike_GLSL(void)
{
    
#ifdef CMOD_MAP_PROGRAM_IDS_DEFINED
set_program_id_to_id( ___cmod_map_program_ids );

#endif /* CMOD_MAP_PROGRAM_IDS_DEFINED */

#ifdef extra_module_defined
#line 693 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
{
    add_integer_constant( "GLSL_FLOAT_SIZE", sizeof(GLfloat), 0 );

#ifdef GL_COMPRESSED_RGB_S3TC_DXT1_EXT
    GLCONST(COMPRESSED_RGB_S3TC_DXT1_EXT);
    GLCONST(COMPRESSED_RGBA_S3TC_DXT1_EXT);
    GLCONST(COMPRESSED_RGBA_S3TC_DXT3_EXT);
    GLCONST(COMPRESSED_RGBA_S3TC_DXT5_EXT);
#endif
#ifdef GL_COMPRESSED_LUMINANCE_LATC1_EXT
    GLCONST(COMPRESSED_LUMINANCE_LATC1_EXT);
    GLCONST(COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT);
    GLCONST(COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT);
    GLCONST(COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT);
#endif
#ifdef GL_COMPRESSED_RED_RGTC1_EXT
    GLCONST(COMPRESSED_RED_RGTC1_EXT);
    GLCONST(COMPRESSED_SIGNED_RED_RGTC1_EXT);
    GLCONST(COMPRESSED_RED_GREEN_RGTC2_EXT);
    GLCONST(COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT);
#endif
#ifdef GL_GENERATE_MIPMAP
    GLCONST(GENERATE_MIPMAP);
    GLCONST(GENERATE_MIPMAP_HINT);
#endif
#ifdef GL_VERTEX_ARRAY
    GLCONST(VERTEX_ARRAY);
    GLCONST(NORMAL_ARRAY);
    GLCONST(COLOR_ARRAY);
    GLCONST(SECONDARY_COLOR_ARRAY);
    GLCONST(INDEX_ARRAY);
    GLCONST(EDGE_FLAG_ARRAY);
    GLCONST(FOG_COORD_ARRAY);
    GLCONST(TEXTURE_COORD_ARRAY);
    GLCONST(VERTEX_PROGRAM_POINT_SIZE);
#endif
#ifdef GL_POINT_SPRITE
    GLCONST(POINT_SPRITE);
#endif
#ifdef GL_ARRAY_BUFFER
    GLCONST(ARRAY_BUFFER);
    GLCONST(ELEMENT_ARRAY_BUFFER);

    GLCONST(ARRAY_BUFFER_BINDING);
    GLCONST(ELEMENT_ARRAY_BUFFER_BINDING);
    GLCONST(VERTEX_ARRAY_BUFFER_BINDING);
    GLCONST(NORMAL_ARRAY_BUFFER_BINDING);
    GLCONST(COLOR_ARRAY_BUFFER_BINDING);
    GLCONST(INDEX_ARRAY_BUFFER_BINDING);
    GLCONST(TEXTURE_COORD_ARRAY_BUFFER_BINDING);
    GLCONST(EDGE_FLAG_ARRAY_BUFFER_BINDING);
    GLCONST(SECONDARY_COLOR_ARRAY_BUFFER_BINDING);
    GLCONST(FOG_COORDINATE_ARRAY_BUFFER_BINDING);
    GLCONST(WEIGHT_ARRAY_BUFFER_BINDING);
    GLCONST(VERTEX_ATTRIB_ARRAY_BUFFER_BINDING);
#endif
#ifdef GL_STREAM_DRAW
    GLCONST(STREAM_DRAW);
    GLCONST(STREAM_READ);
    GLCONST(STREAM_COPY);
    GLCONST(STATIC_DRAW);
    GLCONST(STATIC_READ);
    GLCONST(STATIC_COPY);
    GLCONST(DYNAMIC_DRAW);
    GLCONST(DYNAMIC_READ);
    GLCONST(DYNAMIC_COPY);
#endif
#ifdef HAVE_GLGENRENDERBUFFERSEXT
    GLCONST(DEPTH_COMPONENT);
    GLCONST(DEPTH_COMPONENT16);
    GLCONST(DEPTH_COMPONENT24);
    GLCONST(DEPTH_COMPONENT32);
    GLCONST(DEPTH_ATTACHMENT_EXT);
    GLCONST(COLOR_ATTACHMENT0_EXT);
    GLCONST(COLOR_ATTACHMENT1_EXT);
    GLCONST(COLOR_ATTACHMENT2_EXT);
    GLCONST(COLOR_ATTACHMENT3_EXT);
    GLCONST(COLOR_ATTACHMENT4_EXT);
#endif
#ifdef GL_FRAMEBUFFER_COMPLETE_EXT
    GLCONST(FRAMEBUFFER_COMPLETE_EXT);
#endif
    GLCONST(VERTEX_SHADER);
    GLCONST(FRAGMENT_SHADER);

#ifdef GL_DEPTH_CLAMP_NV
    GLCONST(DEPTH_CLAMP_NV);
#endif

#ifdef GL_TEXTURE_RECTANGLE_ARB
    GLCONST(TEXTURE_RECTANGLE_ARB);
    GLCONST(MAX_RECTANGLE_TEXTURE_SIZE_ARB);
#endif

#ifdef GL_RGBA32F_ARB
    GLCONST(RGBA32F_ARB);
    GLCONST(RGB32F_ARB);
    GLCONST(ALPHA32F_ARB);
    GLCONST(INTENSITY32F_ARB);
    GLCONST(LUMINANCE32F_ARB);
    GLCONST(LUMINANCE_ALPHA32F_ARB);
    GLCONST(RGBA16F_ARB);
    GLCONST(RGB16F_ARB);
    GLCONST(ALPHA16F_ARB);
    GLCONST(INTENSITY16F_ARB);
    GLCONST(LUMINANCE16F_ARB);
    GLCONST(LUMINANCE_ALPHA16F_ARB);
    GLCONST(LUMINANCE8_EXT);
#endif
#ifdef GL_FRAMEBUFFER_EXT
    GLCONST(FRAMEBUFFER_EXT);
    GLCONST(READ_FRAMEBUFFER_EXT);
    GLCONST(DRAW_FRAMEBUFFER_EXT);
#endif
}

#endif /* extra_module_defined */

#ifdef f_module_glCreateShader_defined

#ifdef f_module_glCreateShader_fun_num_used
  f_module_glCreateShader_fun_num =
#endif /* f_module_glCreateShader_fun_num_used */
#line 178 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glCreateShader", f_module_glCreateShader, tFunc("\10\200\0\0\0\177\377\377\377","\10\200\0\0\0\177\377\377\377"), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glCreateShader_defined */

#ifdef f_module_glShaderSource_defined

#ifdef f_module_glShaderSource_fun_num_used
  f_module_glShaderSource_fun_num =
#endif /* f_module_glShaderSource_fun_num_used */
#line 185 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glShaderSource", f_module_glShaderSource, tFunc("\10\200\0\0\0\177\377\377\377" tStr,tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glShaderSource_defined */

#ifdef f_module_glCompileShader_defined

#ifdef f_module_glCompileShader_fun_num_used
  f_module_glCompileShader_fun_num =
#endif /* f_module_glCompileShader_fun_num_used */
    ADD_FUNCTION2("glCompileShader", f_module_glCompileShader, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glCompileShader_defined */

#ifdef f_module_glCreateProgram_defined

#ifdef f_module_glCreateProgram_fun_num_used
  f_module_glCreateProgram_fun_num =
#endif /* f_module_glCreateProgram_fun_num_used */
#line 213 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glCreateProgram", f_module_glCreateProgram, tFunc(tNone,"\10\200\0\0\0\177\377\377\377"), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glCreateProgram_defined */

#ifdef f_module_glAttachShader_defined

#ifdef f_module_glAttachShader_fun_num_used
  f_module_glAttachShader_fun_num =
#endif /* f_module_glAttachShader_fun_num_used */
#line 220 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glAttachShader", f_module_glAttachShader, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glAttachShader_defined */

#ifdef f_module_glLinkProgram_defined

#ifdef f_module_glLinkProgram_fun_num_used
  f_module_glLinkProgram_fun_num =
#endif /* f_module_glLinkProgram_fun_num_used */
#line 227 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glLinkProgram", f_module_glLinkProgram, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glLinkProgram_defined */

#ifdef f_module_glUseProgram_defined

#ifdef f_module_glUseProgram_fun_num_used
  f_module_glUseProgram_fun_num =
#endif /* f_module_glUseProgram_fun_num_used */
#line 244 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glUseProgram", f_module_glUseProgram, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glUseProgram_defined */

#ifdef f_module_glGetUniformLocation_defined

#ifdef f_module_glGetUniformLocation_fun_num_used
  f_module_glGetUniformLocation_fun_num =
#endif /* f_module_glGetUniformLocation_fun_num_used */
#line 252 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glGetUniformLocation", f_module_glGetUniformLocation, tFunc("\10\200\0\0\0\177\377\377\377" tStr,"\10\200\0\0\0\177\377\377\377"), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glGetUniformLocation_defined */

#ifdef f_module_glUniform_defined

#ifdef module_f_module_glUniform_fun_num_used
  module_f_module_glUniform_fun_num =
#endif /* module_f_module_glUniform_fun_num_used */
#line 304 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glUniform", f_module_glUniform, tOr(tFunc("\10\200\0\0\0\177\377\377\377" tFloat,tVoid),tOr7(tFunc("\10\200\0\0\0\177\377\377\377" tFloat tFloat,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" tFloat tFloat tFloat,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" tFloat tFloat tFloat tFloat,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid),tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid),tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid),tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid))), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glUniform_defined */

#ifdef f_module_glGetAttribLocation_defined

#ifdef f_module_glGetAttribLocation_fun_num_used
  f_module_glGetAttribLocation_fun_num =
#endif /* f_module_glGetAttribLocation_fun_num_used */
#line 312 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glGetAttribLocation", f_module_glGetAttribLocation, tFunc("\10\200\0\0\0\177\377\377\377" tStr,"\10\200\0\0\0\177\377\377\377"), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glGetAttribLocation_defined */

#ifdef f_module_glVertexAttrib_defined

#ifdef module_f_module_glVertexAttrib_fun_num_used
  module_f_module_glVertexAttrib_fun_num =
#endif /* module_f_module_glVertexAttrib_fun_num_used */
#line 339 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glVertexAttrib", f_module_glVertexAttrib, tOr4(tFunc("\10\200\0\0\0\177\377\377\377" tFloat,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" tFloat tFloat,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" tFloat tFloat tFloat,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" tFloat tFloat tFloat tFloat,tVoid)), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glVertexAttrib_defined */

#ifdef f_module_glActiveTexture_defined

#ifdef f_module_glActiveTexture_fun_num_used
  f_module_glActiveTexture_fun_num =
#endif /* f_module_glActiveTexture_fun_num_used */
#line 346 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glActiveTexture", f_module_glActiveTexture, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glActiveTexture_defined */

#ifdef f_module_glMultiTexCoord_defined

#ifdef module_f_module_glMultiTexCoord_fun_num_used
  module_f_module_glMultiTexCoord_fun_num =
#endif /* module_f_module_glMultiTexCoord_fun_num_used */
#line 367 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glMultiTexCoord", f_module_glMultiTexCoord, tOr3(tFunc("\10\200\0\0\0\177\377\377\377" tFloat,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" tFloat tFloat,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" tFloat tFloat tFloat,tVoid)), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glMultiTexCoord_defined */

#ifdef f_module_glGenFramebuffersEXT_defined

#ifdef f_module_glGenFramebuffersEXT_fun_num_used
  f_module_glGenFramebuffersEXT_fun_num =
#endif /* f_module_glGenFramebuffersEXT_fun_num_used */
    ADD_FUNCTION2("glGenFramebuffersEXT", f_module_glGenFramebuffersEXT, tFunc("\10\200\0\0\0\177\377\377\377",tArr("\10\200\0\0\0\177\377\377\377")), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glGenFramebuffersEXT_defined */

#ifdef f_module_glBindFramebufferEXT_defined

#ifdef f_module_glBindFramebufferEXT_fun_num_used
  f_module_glBindFramebufferEXT_fun_num =
#endif /* f_module_glBindFramebufferEXT_fun_num_used */
#line 390 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glBindFramebufferEXT", f_module_glBindFramebufferEXT, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glBindFramebufferEXT_defined */

#ifdef f_module_glBindRenderbufferEXT_defined

#ifdef f_module_glBindRenderbufferEXT_fun_num_used
  f_module_glBindRenderbufferEXT_fun_num =
#endif /* f_module_glBindRenderbufferEXT_fun_num_used */
#line 397 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glBindRenderbufferEXT", f_module_glBindRenderbufferEXT, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glBindRenderbufferEXT_defined */

#ifdef f_module_glGenRenderbuffersEXT_defined

#ifdef f_module_glGenRenderbuffersEXT_fun_num_used
  f_module_glGenRenderbuffersEXT_fun_num =
#endif /* f_module_glGenRenderbuffersEXT_fun_num_used */
#line 404 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glGenRenderbuffersEXT", f_module_glGenRenderbuffersEXT, tFunc("\10\200\0\0\0\177\377\377\377",tArr("\10\200\0\0\0\177\377\377\377")), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glGenRenderbuffersEXT_defined */

#ifdef f_module_glRenderbufferStorageEXT_defined

#ifdef f_module_glRenderbufferStorageEXT_fun_num_used
  f_module_glRenderbufferStorageEXT_fun_num =
#endif /* f_module_glRenderbufferStorageEXT_fun_num_used */
#line 418 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glRenderbufferStorageEXT", f_module_glRenderbufferStorageEXT, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glRenderbufferStorageEXT_defined */

#ifdef f_module_glFramebufferRenderbufferEXT_defined

#ifdef f_module_glFramebufferRenderbufferEXT_fun_num_used
  f_module_glFramebufferRenderbufferEXT_fun_num =
#endif /* f_module_glFramebufferRenderbufferEXT_fun_num_used */
#line 425 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glFramebufferRenderbufferEXT", f_module_glFramebufferRenderbufferEXT, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glFramebufferRenderbufferEXT_defined */

#ifdef f_module_glFramebufferTexture2DEXT_defined

#ifdef f_module_glFramebufferTexture2DEXT_fun_num_used
  f_module_glFramebufferTexture2DEXT_fun_num =
#endif /* f_module_glFramebufferTexture2DEXT_fun_num_used */
#line 432 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glFramebufferTexture2DEXT", f_module_glFramebufferTexture2DEXT, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glFramebufferTexture2DEXT_defined */

#ifdef f_module_glCheckFramebufferStatusEXT_defined

#ifdef f_module_glCheckFramebufferStatusEXT_fun_num_used
  f_module_glCheckFramebufferStatusEXT_fun_num =
#endif /* f_module_glCheckFramebufferStatusEXT_fun_num_used */
#line 439 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glCheckFramebufferStatusEXT", f_module_glCheckFramebufferStatusEXT, tFunc(tNone,"\10\200\0\0\0\177\377\377\377"), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glCheckFramebufferStatusEXT_defined */

#ifdef f_module_glGenerateMipmapEXT_defined

#ifdef f_module_glGenerateMipmapEXT_fun_num_used
  f_module_glGenerateMipmapEXT_fun_num =
#endif /* f_module_glGenerateMipmapEXT_fun_num_used */
    ADD_FUNCTION2("glGenerateMipmapEXT", f_module_glGenerateMipmapEXT, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glGenerateMipmapEXT_defined */

#ifdef f_module_glCompressedTexImage2D_defined

#ifdef f_module_glCompressedTexImage2D_fun_num_used
  f_module_glCompressedTexImage2D_fun_num =
#endif /* f_module_glCompressedTexImage2D_fun_num_used */
    ADD_FUNCTION2("glCompressedTexImage2D", f_module_glCompressedTexImage2D, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" tStr,tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glCompressedTexImage2D_defined */

#ifdef f_module_glTexImage2DNoImage_defined

#ifdef f_module_glTexImage2DNoImage_fun_num_used
  f_module_glTexImage2DNoImage_fun_num =
#endif /* f_module_glTexImage2DNoImage_fun_num_used */
#line 467 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glTexImage2DNoImage", f_module_glTexImage2DNoImage, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glTexImage2DNoImage_defined */

#ifdef f_module_glBindBuffer_defined

#ifdef f_module_glBindBuffer_fun_num_used
  f_module_glBindBuffer_fun_num =
#endif /* f_module_glBindBuffer_fun_num_used */
#line 478 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glBindBuffer", f_module_glBindBuffer, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glBindBuffer_defined */

#ifdef f_module_glGenBuffers_defined

#ifdef f_module_glGenBuffers_fun_num_used
  f_module_glGenBuffers_fun_num =
#endif /* f_module_glGenBuffers_fun_num_used */
#line 485 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glGenBuffers", f_module_glGenBuffers, tFunc("\10\200\0\0\0\177\377\377\377",tArr("\10\200\0\0\0\177\377\377\377")), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glGenBuffers_defined */

#ifdef f_module_glIsBuffer_defined

#ifdef f_module_glIsBuffer_fun_num_used
  f_module_glIsBuffer_fun_num =
#endif /* f_module_glIsBuffer_fun_num_used */
#line 499 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glIsBuffer", f_module_glIsBuffer, tFunc("\10\200\0\0\0\177\377\377\377","\10\0\0\0\0\0\0\0\1"), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glIsBuffer_defined */

#ifdef f_module_glBufferData_defined

#ifdef module_f_module_glBufferData_fun_num_used
  module_f_module_glBufferData_fun_num =
#endif /* module_f_module_glBufferData_fun_num_used */
#line 548 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glBufferData", f_module_glBufferData, tOr3(tFunc("\10\200\0\0\0\177\377\377\377" tObj "\10\200\0\0\0\177\377\377\377",tVoid),tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid),tFunc("\10\200\0\0\0\177\377\377\377" tArr(tFloat) "\10\200\0\0\0\177\377\377\377",tVoid)), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glBufferData_defined */

#ifdef f_module_glBufferSubData_defined

#ifdef module_f_module_glBufferSubData_fun_num_used
  module_f_module_glBufferSubData_fun_num =
#endif /* module_f_module_glBufferSubData_fun_num_used */
#line 579 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glBufferSubData", f_module_glBufferSubData, tOr3(tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" tObj "\10\0\0\0\0\177\377\377\377" "\10\0\0\0\0\177\377\377\377",tVoid),tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" tObj,tVoid),tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" tArr(tFloat),tVoid)), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glBufferSubData_defined */

#ifdef f_module_glColorPointer_defined

#ifdef f_module_glColorPointer_fun_num_used
  f_module_glColorPointer_fun_num =
#endif /* f_module_glColorPointer_fun_num_used */
#line 589 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glColorPointer", f_module_glColorPointer, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glColorPointer_defined */

#ifdef f_module_glFogCoordPointer_defined

#ifdef f_module_glFogCoordPointer_fun_num_used
  f_module_glFogCoordPointer_fun_num =
#endif /* f_module_glFogCoordPointer_fun_num_used */
#line 596 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glFogCoordPointer", f_module_glFogCoordPointer, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glFogCoordPointer_defined */

#ifdef f_module_glSecondaryColorPointer_defined

#ifdef f_module_glSecondaryColorPointer_fun_num_used
  f_module_glSecondaryColorPointer_fun_num =
#endif /* f_module_glSecondaryColorPointer_fun_num_used */
#line 603 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glSecondaryColorPointer", f_module_glSecondaryColorPointer, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glSecondaryColorPointer_defined */

#ifdef f_module_glNormalPointer_defined

#ifdef f_module_glNormalPointer_fun_num_used
  f_module_glNormalPointer_fun_num =
#endif /* f_module_glNormalPointer_fun_num_used */
#line 610 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glNormalPointer", f_module_glNormalPointer, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glNormalPointer_defined */

#ifdef f_module_glVertexPointer_defined

#ifdef f_module_glVertexPointer_fun_num_used
  f_module_glVertexPointer_fun_num =
#endif /* f_module_glVertexPointer_fun_num_used */
#line 617 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glVertexPointer", f_module_glVertexPointer, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glVertexPointer_defined */

#ifdef f_module_glEdgeFlagPointer_defined

#ifdef f_module_glEdgeFlagPointer_fun_num_used
  f_module_glEdgeFlagPointer_fun_num =
#endif /* f_module_glEdgeFlagPointer_fun_num_used */
#line 624 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glEdgeFlagPointer", f_module_glEdgeFlagPointer, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glEdgeFlagPointer_defined */

#ifdef f_module_glTexCoordPointer_defined

#ifdef f_module_glTexCoordPointer_fun_num_used
  f_module_glTexCoordPointer_fun_num =
#endif /* f_module_glTexCoordPointer_fun_num_used */
#line 631 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glTexCoordPointer", f_module_glTexCoordPointer, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glTexCoordPointer_defined */

#ifdef f_module_glVertexAttribPointer_defined

#ifdef module_f_module_glVertexAttribPointer_fun_num_used
  module_f_module_glVertexAttribPointer_fun_num =
#endif /* module_f_module_glVertexAttribPointer_fun_num_used */
#line 645 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glVertexAttribPointer", f_module_glVertexAttribPointer, tOr(tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid),tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" tObj,tVoid)), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glVertexAttribPointer_defined */

#ifdef f_module_glEnableClientState_defined

#ifdef f_module_glEnableClientState_fun_num_used
  f_module_glEnableClientState_fun_num =
#endif /* f_module_glEnableClientState_fun_num_used */
    ADD_FUNCTION2("glEnableClientState", f_module_glEnableClientState, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glEnableClientState_defined */

#ifdef f_module_glDisableClientState_defined

#ifdef f_module_glDisableClientState_fun_num_used
  f_module_glDisableClientState_fun_num =
#endif /* f_module_glDisableClientState_fun_num_used */
#line 661 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glDisableClientState", f_module_glDisableClientState, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glDisableClientState_defined */

#ifdef f_module_glEnableVertexAttribArray_defined

#ifdef f_module_glEnableVertexAttribArray_fun_num_used
  f_module_glEnableVertexAttribArray_fun_num =
#endif /* f_module_glEnableVertexAttribArray_fun_num_used */
#line 668 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glEnableVertexAttribArray", f_module_glEnableVertexAttribArray, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glEnableVertexAttribArray_defined */

#ifdef f_module_glDisableVertexAttribArray_defined

#ifdef f_module_glDisableVertexAttribArray_fun_num_used
  f_module_glDisableVertexAttribArray_fun_num =
#endif /* f_module_glDisableVertexAttribArray_fun_num_used */
#line 675 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glDisableVertexAttribArray", f_module_glDisableVertexAttribArray, tFunc("\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glDisableVertexAttribArray_defined */

#ifdef f_module_glDrawArrays_defined

#ifdef f_module_glDrawArrays_fun_num_used
  f_module_glDrawArrays_fun_num =
#endif /* f_module_glDrawArrays_fun_num_used */
#line 682 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
    ADD_FUNCTION2("glDrawArrays", f_module_glDrawArrays, tFunc("\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377" "\10\200\0\0\0\177\377\377\377",tVoid), 0, OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);

#endif /* f_module_glDrawArrays_defined */

#ifdef CMOD_MAP_PROGRAM_IDS_DEFINED
set_program_id_to_id( 0 );
#endif /* CMOD_MAP_PROGRAM_IDS_DEFINED */
#line 813 "/Users/hww3/devel/pike/src/post_modules/GL/GLSL.cmod"
;
}

void exit_pike_GLSL(void)
{
    ;
}


#ifdef CMOD_MAP_PROGRAM_IDS_DEFINED
static int ___cmod_map_program_ids(int id)
{
  if( (id&0x7f000000) != 0x7f000000 ) return id;
  id = id&0x00ffffff;
  return 0;
}
#endif /* CMOD_MAP_PROGRAM_IDS_DEFINED */
