with Interfaces.C.Pointers, System; package GL.lean -- -- Provides types, constants and functions specific to the openGL 'Embedded' profile. -- is --------- -- Types -- subtype GLchar is GL_Types.GLchar; subtype GLfixed is GL_Types.GLfixed; type GLintptr is new Integer; type GLsizeiptr is new Integer; -- GLchar_Pointer -- type GLchar_array is array (C.size_t range <>) of aliased GLchar; package GLchar_Pointers is new C.Pointers (Index => C.size_t, Element => GLchar, Element_Array => GLchar_array, Default_Terminator => C.nul); subtype GLchar_Pointer is GLchar_Pointers.Pointer; subtype GLfloat_Address is system.Address; ------------- -- Constants -- GL_ACTIVE_ATTRIBUTES : constant := 16#8B89#; GL_ACTIVE_ATTRIBUTE_MAX_LENGTH : constant := 16#8B8A#; GL_ACTIVE_UNIFORMS : constant := 16#8B86#; GL_ACTIVE_UNIFORM_MAX_LENGTH : constant := 16#8B87#; GL_ARRAY_BUFFER : constant := 16#8892#; GL_ARRAY_BUFFER_BINDING : constant := 16#8894#; GL_ATTACHED_SHADERS : constant := 16#8B85#; GL_BLEND_COLOR : constant := 16#8005#; GL_BLEND_DST_ALPHA : constant := 16#80CA#; GL_BLEND_DST_RGB : constant := 16#80C8#; GL_BLEND_EQUATION : constant := 16#8009#; GL_BLEND_EQUATION_ALPHA : constant := 16#883D#; GL_BLEND_EQUATION_RGB : constant := 16#8009#; -- Same as BLEND_EQUATION. GL_BLEND_SRC_ALPHA : constant := 16#80CB#; GL_BLEND_SRC_RGB : constant := 16#80C9#; GL_BOOL : constant := 16#8B56#; GL_BOOL_VEC2 : constant := 16#8B57#; GL_BOOL_VEC3 : constant := 16#8B58#; GL_BOOL_VEC4 : constant := 16#8B59#; GL_BUFFER_SIZE : constant := 16#8764#; GL_BUFFER_USAGE : constant := 16#8765#; GL_COLOR_ATTACHMENT0 : constant := 16#8CE0#; GL_COMPILE_STATUS : constant := 16#8B81#; GL_COMPRESSED_TEXTURE_FORMATS : constant := 16#86A3#; GL_CONSTANT_ALPHA : constant := 16#8003#; GL_CONSTANT_COLOR : constant := 16#8001#; GL_CURRENT_PROGRAM : constant := 16#8B8D#; GL_CURRENT_VERTEX_ATTRIB : constant := 16#8626#; GL_DECR_WRAP : constant := 16#8508#; GL_DELETE_STATUS : constant := 16#8B80#; GL_DEPTH_ATTACHMENT : constant := 16#8D00#; GL_DEPTH_COMPONENT : constant := 16#1902#; GL_DEPTH_COMPONENT16 : constant := 16#81A5#; GL_DITHER : constant := 16#0BD0#; GL_DST_ALPHA : constant := 16#0304#; GL_DST_COLOR : constant := 16#0306#; GL_DYNAMIC_DRAW : constant := 16#88E8#; GL_ELEMENT_ARRAY_BUFFER : constant := 16#8893#; GL_ELEMENT_ARRAY_BUFFER_BINDING : constant := 16#8895#; GL_ES_VERSION_2_0 : constant := 1; GL_FIXED : constant := 16#140C#; GL_FLOAT_MAT2 : constant := 16#8B5A#; GL_FLOAT_MAT3 : constant := 16#8B5B#; GL_FLOAT_MAT4 : constant := 16#8B5C#; GL_FLOAT_VEC2 : constant := 16#8B50#; GL_FLOAT_VEC3 : constant := 16#8B51#; GL_FLOAT_VEC4 : constant := 16#8B52#; GL_FRAGMENT_SHADER : constant := 16#8B30#; GL_FRAMEBUFFER : constant := 16#8D40#; GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME : constant := 16#8CD1#; GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE : constant := 16#8CD0#; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : constant := 16#8CD3#; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL : constant := 16#8CD2#; GL_FRAMEBUFFER_BINDING : constant := 16#8CA6#; GL_FRAMEBUFFER_COMPLETE : constant := 16#8CD5#; GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT : constant := 16#8CD6#; GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS : constant := 16#8CD9#; GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : constant := 16#8CD7#; GL_FRAMEBUFFER_UNSUPPORTED : constant := 16#8CDD#; GL_FUNC_ADD : constant := 16#8006#; GL_FUNC_REVERSE_SUBTRACT : constant := 16#800B#; GL_FUNC_SUBTRACT : constant := 16#800A#; GL_GENERATE_MIPMAP_HINT : constant := 16#8192#; GL_HIGH_FLOAT : constant := 16#8DF2#; GL_HIGH_INT : constant := 16#8DF5#; GL_IMPLEMENTATION_COLOR_READ_FORMAT : constant := 16#8B9B#; GL_IMPLEMENTATION_COLOR_READ_TYPE : constant := 16#8B9A#; GL_INCR_WRAP : constant := 16#8507#; GL_INFO_LOG_LENGTH : constant := 16#8B84#; GL_INT_VEC2 : constant := 16#8B53#; GL_INT_VEC3 : constant := 16#8B54#; GL_INT_VEC4 : constant := 16#8B55#; GL_INVALID_FRAMEBUFFER_OPERATION : constant := 16#0506#; GL_LINK_STATUS : constant := 16#8B82#; GL_LOW_FLOAT : constant := 16#8DF0#; GL_LOW_INT : constant := 16#8DF3#; GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS : constant := 16#8B4D#; GL_MAX_CUBE_MAP_TEXTURE_SIZE : constant := 16#851C#; GL_MAX_FRAGMENT_UNIFORM_VECTORS : constant := 16#8DFD#; GL_MAX_RENDERBUFFER_SIZE : constant := 16#84E8#; GL_MAX_TEXTURE_IMAGE_UNITS : constant := 16#8872#; GL_MAX_VARYING_VECTORS : constant := 16#8DFC#; GL_MAX_VERTEX_ATTRIBS : constant := 16#8869#; GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS : constant := 16#8B4C#; GL_MAX_VERTEX_UNIFORM_VECTORS : constant := 16#8DFB#; GL_MEDIUM_FLOAT : constant := 16#8DF1#; GL_MEDIUM_INT : constant := 16#8DF4#; GL_MIRRORED_REPEAT : constant := 16#8370#; GL_NONE : constant := 0; GL_NUM_COMPRESSED_TEXTURE_FORMATS : constant := 16#86A2#; GL_NUM_SHADER_BINARY_FORMATS : constant := 16#8DF9#; GL_ONE_MINUS_CONSTANT_ALPHA : constant := 16#8004#; GL_ONE_MINUS_CONSTANT_COLOR : constant := 16#8002#; GL_ONE_MINUS_DST_ALPHA : constant := 16#0305#; GL_ONE_MINUS_DST_COLOR : constant := 16#0307#; GL_ONE_MINUS_SRC_COLOR : constant := 16#0301#; GL_RENDERBUFFER : constant := 16#8D41#; GL_RENDERBUFFER_ALPHA_SIZE : constant := 16#8D53#; GL_RENDERBUFFER_BINDING : constant := 16#8CA7#; GL_RENDERBUFFER_BLUE_SIZE : constant := 16#8D52#; GL_RENDERBUFFER_DEPTH_SIZE : constant := 16#8D54#; GL_RENDERBUFFER_GREEN_SIZE : constant := 16#8D51#; GL_RENDERBUFFER_HEIGHT : constant := 16#8D43#; GL_RENDERBUFFER_INTERNAL_FORMAT : constant := 16#8D44#; GL_RENDERBUFFER_RED_SIZE : constant := 16#8D50#; GL_RENDERBUFFER_STENCIL_SIZE : constant := 16#8D55#; GL_RENDERBUFFER_WIDTH : constant := 16#8D42#; GL_RGB565 : constant := 16#8D62#; GL_RGB5_A1 : constant := 16#8057#; GL_RGBA4 : constant := 16#8056#; GL_SAMPLER_2D : constant := 16#8B5E#; GL_SAMPLER_CUBE : constant := 16#8B60#; GL_SAMPLES : constant := 16#80A9#; GL_SAMPLE_ALPHA_TO_COVERAGE : constant := 16#809E#; GL_SAMPLE_BUFFERS : constant := 16#80A8#; GL_SAMPLE_COVERAGE : constant := 16#80A0#; GL_SAMPLE_COVERAGE_INVERT : constant := 16#80AB#; GL_SAMPLE_COVERAGE_VALUE : constant := 16#80AA#; GL_SHADER_BINARY_FORMATS : constant := 16#8DF8#; GL_SHADER_COMPILER : constant := 16#8DFA#; GL_SHADER_SOURCE_LENGTH : constant := 16#8B88#; GL_SHADER_TYPE : constant := 16#8B4F#; GL_SHADING_LANGUAGE_VERSION : constant := 16#8B8C#; GL_SHORT : constant := 16#1402#; GL_SRC_COLOR : constant := 16#0300#; GL_STATIC_DRAW : constant := 16#88E4#; GL_STENCIL_ATTACHMENT : constant := 16#8D20#; GL_STENCIL_BACK_FAIL : constant := 16#8801#; GL_STENCIL_BACK_FUNC : constant := 16#8800#; GL_STENCIL_BACK_PASS_DEPTH_FAIL : constant := 16#8802#; GL_STENCIL_BACK_PASS_DEPTH_PASS : constant := 16#8803#; GL_STENCIL_BACK_REF : constant := 16#8CA3#; GL_STENCIL_BACK_VALUE_MASK : constant := 16#8CA4#; GL_STENCIL_BACK_WRITEMASK : constant := 16#8CA5#; GL_STENCIL_INDEX8 : constant := 16#8D48#; GL_STREAM_DRAW : constant := 16#88E0#; GL_TEXTURE : constant := 16#1702#; GL_TEXTURE_BINDING_CUBE_MAP : constant := 16#8514#; GL_TEXTURE_CUBE_MAP : constant := 16#8513#; GL_TEXTURE_CUBE_MAP_NEGATIVE_X : constant := 16#8516#; GL_TEXTURE_CUBE_MAP_NEGATIVE_Y : constant := 16#8518#; GL_TEXTURE_CUBE_MAP_NEGATIVE_Z : constant := 16#851A#; GL_TEXTURE_CUBE_MAP_POSITIVE_X : constant := 16#8515#; GL_TEXTURE_CUBE_MAP_POSITIVE_Y : constant := 16#8517#; GL_TEXTURE_CUBE_MAP_POSITIVE_Z : constant := 16#8519#; GL_UNSIGNED_SHORT : constant := 16#1403#; GL_UNSIGNED_SHORT_4_4_4_4 : constant := 16#8033#; GL_UNSIGNED_SHORT_5_5_5_1 : constant := 16#8034#; GL_UNSIGNED_SHORT_5_6_5 : constant := 16#8363#; GL_VALIDATE_STATUS : constant := 16#8B83#; GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : constant := 16#889F#; GL_VERTEX_ATTRIB_ARRAY_ENABLED : constant := 16#8622#; GL_VERTEX_ATTRIB_ARRAY_NORMALIZED : constant := 16#886A#; GL_VERTEX_ATTRIB_ARRAY_Pointer : constant := 16#8645#; GL_VERTEX_ATTRIB_ARRAY_Size : constant := 16#8623#; GL_VERTEX_ATTRIB_ARRAY_STRIDE : constant := 16#8624#; GL_VERTEX_ATTRIB_ARRAY_TYPE : constant := 16#8625#; GL_VERTEX_SHADER : constant := 16#8B31#; ------------- -- Functions -- procedure glAttachShader (Program : in GLuint; Shader : in GLuint); procedure glBindAttribLocation (Program : in GLuint; Index : in GLuint; Name : access GLchar); procedure glBindBuffer (Target : in GLenum; Buffer : in GLuint); procedure glBindFramebuffer (Target : in GLenum; FrameBuffer : in GLuint); procedure glBindRenderbuffer (Target : in GLenum; RenderBuffer : in GLuint); procedure glBlendColor (Red : in GLclampf; Green : in GLclampf; Blue : in GLclampf; Alpha : in GLclampf); procedure glBlendEquation (Mode : in GLenum); procedure glBlendEquationSeparate (modeRGB : in GLenum; modeAlpha : in GLenum); procedure glBlendFuncSeparate (srcRGB : in GLenum; dstRGB : in GLenum; srcAlpha : in GLenum; dstAlpha : in GLenum); procedure glBufferData (Target : in GLenum; Size : in GLsizeiptr; Data : access GLvoid; Usage : in GLenum); procedure glBufferSubData (Target : in GLenum; Offset : in GLintptr; Size : in GLsizeiptr; Data : access GLvoid); function glCheckFramebufferStatus (Target : in GLenum) return GLenum; procedure glCompileShader (Shader : in GLuint); procedure glCompressedTexImage2D (Target : in GLenum; Level : in GLint; internalFormat : in GLenum; Width : in GLsizei; Height : in GLsizei; Border : in GLint; imageSize : in GLsizei; Data : access GLvoid); procedure glCompressedTexSubImage2D (Target : in GLenum; Level : in GLint; xOffset : in GLint; yOffset : in GLint; Width : in GLsizei; Height : in GLsizei; format : in GLenum; imageSize : in GLsizei; Data : access GLvoid); procedure glCopyTexImage2D (Target : in GLenum; Level : in GLint; internalFormat : in GLenum; X : in GLint; Y : in GLint; Width : in GLsizei; Height : in GLsizei; Border : in GLint); procedure glCopyTexSubImage2D (Target : in GLenum; Level : in GLint; xOffset : in GLint; yOffset : in GLint; X : in GLint; Y : in GLint; Width : in GLsizei; Height : in GLsizei); function glCreateProgram return GLuint; function glCreateShader (the_Type : in GLenum) return GLuint; procedure glDeleteBuffers (N : in GLsizei; Buffers : access GLuint); procedure glDeleteFramebuffers (N : in GLsizei; FrameBuffers : access GLuint); procedure glDeleteProgram (Program : in GLuint); procedure glDeleteRenderbuffers (N : in GLsizei; RenderBuffers : access GLuint); procedure glDeleteShader (Shader : in GLuint); procedure glDeleteTextures (N : in GLsizei; Textures : access GLuint); procedure glDetachShader (Program : in GLuint; Shader : in GLuint); procedure glDisableVertexAttribArray (Index : in GLuint); procedure glEnableVertexAttribArray (Index : in GLuint); procedure glFramebufferRenderbuffer (Target : in GLenum; Attachment : in GLenum; RenderBufferTarget : in GLenum; RenderBuffer : in GLuint); procedure glFramebufferTexture2D (Target : in GLenum; Attachment : in GLenum; TexTarget : in GLenum; Texture : in GLuint; Level : in GLint); procedure glGenBuffers (N : in GLsizei; Buffers : access GLuint); procedure glGenFramebuffers (N : in GLsizei; FrameBuffers : access GLuint); procedure glGenRenderbuffers (N : in GLsizei; RenderBuffers : access GLuint); procedure glGenerateMipmap (Target : in GLenum); procedure glGetActiveAttrib (Program : in GLuint; Index : in GLuint; BufSize : in GLsizei; Length : access GLsizei; Size : access GLint; the_Type : access GLenum; Name : access GLchar); procedure glGetActiveUniform (Program : in GLuint; Index : in GLuint; BufSize : in GLsizei; Length : access GLsizei; Size : access GLint; the_Type : access GLenum; Name : access GLchar); procedure glGetAttachedShaders (Program : in GLuint; maxCount : in GLsizei; Count : access GLsizei; Shaders : access GLuint); function glGetAttribLocation (Program : in GLuint; Name : access GLchar) return Interfaces.C.int; procedure glGetBufferParameteriv (Target : in GLenum; pName : in GLenum; Params : access GLint); procedure glGetFramebufferAttachmentParameteriv (Target : in GLenum; Attachment : in GLenum; pName : in GLenum; Params : access GLint); procedure glGetProgramiv (Program : in GLuint; pName : in GLenum; Params : access GLint); procedure glGetProgramInfoLog (Program : in GLuint; BufSize : in GLsizei; Length : access GLsizei; infoLog : access GLchar); procedure glGetRenderbufferParameteriv (Target : in GLenum; pName : in GLenum; Params : access GLint); procedure glGetShaderiv (Shader : in GLuint; pName : in GLenum; Params : access GLint); procedure glGetShaderInfoLog (Shader : in GLuint; BufSize : in GLsizei; Length : access GLsizei; infoLog : access GLchar); procedure glGetShaderPrecisionFormat (ShaderType : in GLenum; PrecisionType : in GLenum; the_Range : access GLint; Precision : access GLint); procedure glGetShaderSource (Shader : in GLuint; BufSize : in GLsizei; Length : access GLsizei; Source : access GLchar); procedure glGetTexParameterfv (Target : in GLenum; pName : in GLenum; Params : in GLfloat_Address); procedure glGetUniformfv (Program : in GLuint; Location : in GLint; Params : in GLfloat_Address); procedure glGetUniformiv (Program : in GLuint; Location : in GLint; Params : access GLint); function glGetUniformLocation (Program : in GLuint; Name : access GLchar) return Interfaces.C.int; procedure glGetVertexAttribfv (Index : in GLuint; pName : in GLenum; Params : in GLfloat_Address); procedure glGetVertexAttribiv (Index : in GLuint; pName : in GLenum; Params : access GLint); procedure glGetVertexAttribPointerv (Index : in GLuint; pName : in GLenum; Pointer : access GLvoid); function glIsBuffer (Buffer : in GLuint) return GLboolean; function glIsFramebuffer (FrameBuffer : in GLuint) return GLboolean; function glIsProgram (Program : in GLuint) return GLboolean; function glIsRenderbuffer (RenderBuffer : in GLuint) return GLboolean; function glIsShader (Shader : in GLuint) return GLboolean; function glIsTexture (Texture : in GLuint) return GLboolean; procedure glLinkProgram (Program : in GLuint); procedure glReleaseShaderCompiler; procedure glRenderbufferStorage (Target : in GLenum; internalFormat : in GLenum; Width : in GLsizei; Height : in GLsizei); procedure glSampleCoverage (Value : in GLclampf; Invert : in GLboolean); procedure glShaderBinary (N : in GLint; Shaders : access GLuint; BinaryFormat : in GLenum; Binary : access GLvoid; Length : in GLint); procedure glShaderSource (Shader : in GLuint; Count : in GLsizei; String : access GLchar_Pointer; Length : access GLint); procedure glStencilFuncSeparate (Face : in GLenum; Func : in GLenum; Ref : in GLint; Mask : in GLuint); procedure glStencilMaskSeparate (Face : in GLenum; Mask : in GLuint); procedure glStencilOpSeparate (Face : in GLenum; Fail : in GLenum; zFail : in GLenum; zPass : in GLenum); procedure glTexParameterf (Target : in GLenum; pName : in GLenum; Param : in GLfloat); procedure glTexParameterfv (Target : in GLenum; pName : in GLenum; Params : in GLfloat_Address); procedure glTexParameteriv (Target : in GLenum; pName : in GLenum; Params : access GLint); procedure glUniform1f (Location : in GLint; X : in GLfloat); procedure glUniform1fv (Location : in GLint; Count : in GLsizei; V : in GLfloat_Address); procedure glUniform1i (Location : in GLint; X : in GLint); procedure glUniform1iv (Location : in GLint; Count : in GLsizei; V : access GLint); procedure glUniform2f (Location : in GLint; X : in GLfloat; Y : in GLfloat); procedure glUniform2fv (Location : in GLint; Count : in GLsizei; V : in GLfloat_Address); procedure glUniform2i (Location : in GLint; X : in GLint; Y : in GLint); procedure glUniform2iv (Location : in GLint; Count : in GLsizei; V : access GLint); procedure glUniform3f (Location : in GLint; X : in GLfloat; Y : in GLfloat; Z : in GLfloat); procedure glUniform3fv (Location : in GLint; Count : in GLsizei; V : in GLfloat_Address); procedure glUniform3i (Location : in GLint; X : in GLint; Y : in GLint; Z : in GLint); procedure glUniform3iv (Location : in GLint; Count : in GLsizei; V : access GLint); procedure glUniform4f (Location : in GLint; X : in GLfloat; Y : in GLfloat; Z : in GLfloat; W : in GLfloat); procedure glUniform4fv (Location : in GLint; Count : in GLsizei; V : in GLfloat_Address); procedure glUniform4i (Location : in GLint; X : in GLint; Y : in GLint; Z : in GLint; W : in GLint); procedure glUniform4iv (Location : in GLint; Count : in GLsizei; V : access GLint); procedure glUniformMatrix2fv (Location : in GLint; Count : in GLsizei; Transpose : in GLboolean; Value : in GLfloat_Address); procedure glUniformMatrix3fv (Location : in GLint; Count : in GLsizei; Transpose : in GLboolean; Value : in GLfloat_Address); procedure glUniformMatrix4fv (Location : in GLint; Count : in GLsizei; Transpose : in GLboolean; Value : in GLfloat_Address); procedure glUseProgram (Program : in GLuint); procedure glValidateProgram (Program : in GLuint); procedure glVertexAttrib1f (Index : in GLuint; X : in GLfloat); procedure glVertexAttrib1fv (Index : in GLuint; Values : in GLfloat_Address); procedure glVertexAttrib2f (Index : in GLuint; X : in GLfloat; Y : in GLfloat); procedure glVertexAttrib2fv (Index : in GLuint; Values : in GLfloat_Address); procedure glVertexAttrib3f (Index : in GLuint; X : in GLfloat; Y : in GLfloat; Z : in GLfloat); procedure glVertexAttrib3fv (Index : in GLuint; Values : in GLfloat_Address); procedure glVertexAttrib4f (Index : in GLuint; X : in GLfloat; Y : in GLfloat; Z : in GLfloat; W : in GLfloat); procedure glVertexAttrib4fv (Index : in GLuint; Values : in GLfloat_Address); procedure glVertexAttribPointer (Index : in GLuint; Size : in GLint; the_Type : in GLenum; Normalized : in GLboolean; Stride : in GLsizei; Ptr : access GLvoid); private for GLintptr 'Size use standard'Address_Size; for GLsizeiptr'Size use standard'Address_Size; ------------- -- Functions -- pragma Import (StdCall, glAttachShader, "glAttachShader"); pragma Import (StdCall, glBindAttribLocation, "glBindAttribLocation"); pragma Import (StdCall, glBindBuffer, "glBindBuffer"); pragma Import (StdCall, glBindFramebuffer, "glBindFramebuffer"); pragma Import (StdCall, glBindRenderbuffer, "glBindRenderbuffer"); pragma Import (StdCall, glBlendColor, "glBlendColor"); pragma Import (StdCall, glBlendEquation, "glBlendEquation"); pragma Import (StdCall, glBlendEquationSeparate, "glBlendEquationSeparate"); pragma Import (StdCall, glBlendFuncSeparate, "glBlendFuncSeparate"); pragma Import (StdCall, glBufferData, "glBufferData"); pragma Import (StdCall, glBufferSubData, "glBufferSubData"); pragma Import (StdCall, glCheckFramebufferStatus, "glCheckFramebufferStatus"); pragma Import (StdCall, glCompileShader, "glCompileShader"); pragma Import (StdCall, glCompressedTexImage2D, "glCompressedTexImage2D"); pragma Import (StdCall, glCompressedTexSubImage2D, "glCompressedTexSubImage2D"); pragma Import (StdCall, glCopyTexImage2D, "glCopyTexImage2D"); pragma Import (StdCall, glCopyTexSubImage2D, "glCopyTexSubImage2D"); pragma Import (StdCall, glCreateProgram, "glCreateProgram"); pragma Import (StdCall, glCreateShader, "glCreateShader"); pragma Import (StdCall, glDeleteBuffers, "glDeleteBuffers"); pragma Import (StdCall, glDeleteFramebuffers, "glDeleteFramebuffers"); pragma Import (StdCall, glDeleteProgram, "glDeleteProgram"); pragma Import (StdCall, glDeleteRenderbuffers, "glDeleteRenderbuffers"); pragma Import (StdCall, glDeleteShader, "glDeleteShader"); pragma Import (StdCall, glDeleteTextures, "glDeleteTextures"); pragma Import (StdCall, glDetachShader, "glDetachShader"); pragma Import (StdCall, glDisableVertexAttribArray, "glDisableVertexAttribArray"); pragma Import (StdCall, glEnableVertexAttribArray, "glEnableVertexAttribArray"); pragma Import (StdCall, glFramebufferRenderbuffer, "glFramebufferRenderbuffer"); pragma Import (StdCall, glFramebufferTexture2D, "glFramebufferTexture2D"); pragma Import (StdCall, glGenBuffers, "glGenBuffers"); pragma Import (StdCall, glGenerateMipmap, "glGenerateMipmap"); pragma Import (StdCall, glGenFramebuffers, "glGenFramebuffers"); pragma Import (StdCall, glGenRenderbuffers, "glGenRenderbuffers"); pragma Import (StdCall, glGetActiveAttrib, "glGetActiveAttrib"); pragma Import (StdCall, glGetActiveUniform, "glGetActiveUniform"); pragma Import (StdCall, glGetAttachedShaders, "glGetAttachedShaders"); pragma Import (StdCall, glGetAttribLocation, "glGetAttribLocation"); pragma Import (StdCall, glGetBufferParameteriv, "glGetBufferParameteriv"); pragma Import (StdCall, glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv"); pragma Import (StdCall, glGetProgramiv, "glGetProgramiv"); pragma Import (StdCall, glGetProgramInfoLog, "glGetProgramInfoLog"); pragma Import (StdCall, glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv"); pragma Import (StdCall, glGetShaderiv, "glGetShaderiv"); pragma Import (StdCall, glGetShaderInfoLog, "glGetShaderInfoLog"); pragma Import (StdCall, glGetShaderPrecisionFormat, "glGetShaderPrecisionFormat"); pragma Import (StdCall, glGetShaderSource, "glGetShaderSource"); pragma Import (StdCall, glGetTexParameterfv, "glGetTexParameterfv"); pragma Import (StdCall, glGetUniformfv, "glGetUniformfv"); pragma Import (StdCall, glGetUniformiv, "glGetUniformiv"); pragma Import (StdCall, glGetUniformLocation, "glGetUniformLocation"); pragma Import (StdCall, glGetVertexAttribfv, "glGetVertexAttribfv"); pragma Import (StdCall, glGetVertexAttribiv, "glGetVertexAttribiv"); pragma Import (StdCall, glGetVertexAttribPointerv, "glGetVertexAttribPointerv"); pragma Import (StdCall, glIsBuffer, "glIsBuffer"); pragma Import (StdCall, glIsFramebuffer, "glIsFramebuffer"); pragma Import (StdCall, glIsProgram, "glIsProgram"); pragma Import (StdCall, glIsRenderbuffer, "glIsRenderbuffer"); pragma Import (StdCall, glIsShader, "glIsShader"); pragma Import (StdCall, glIsTexture, "glIsTexture"); pragma Import (StdCall, glLinkProgram, "glLinkProgram"); pragma Import (StdCall, glReleaseShaderCompiler, "glReleaseShaderCompiler"); pragma Import (StdCall, glRenderbufferStorage, "glRenderbufferStorage"); pragma Import (StdCall, glSampleCoverage, "glSampleCoverage"); pragma Import (StdCall, glShaderBinary, "glShaderBinary"); pragma Import (StdCall, glShaderSource, "glShaderSource"); pragma Import (StdCall, glStencilFuncSeparate, "glStencilFuncSeparate"); pragma Import (StdCall, glStencilMaskSeparate, "glStencilMaskSeparate"); pragma Import (StdCall, glStencilOpSeparate, "glStencilOpSeparate"); pragma Import (StdCall, glTexParameterf, "glTexParameterf"); pragma Import (StdCall, glTexParameterfv, "glTexParameterfv"); pragma Import (StdCall, glTexParameteriv, "glTexParameteriv"); pragma Import (StdCall, glUniform1f, "glUniform1f"); pragma Import (StdCall, glUniform1fv, "glUniform1fv"); pragma Import (StdCall, glUniform1i, "glUniform1i"); pragma Import (StdCall, glUniform1iv, "glUniform1iv"); pragma Import (StdCall, glUniform2f, "glUniform2f"); pragma Import (StdCall, glUniform2fv, "glUniform2fv"); pragma Import (StdCall, glUniform2i, "glUniform2i"); pragma Import (StdCall, glUniform2iv, "glUniform2iv"); pragma Import (StdCall, glUniform3f, "glUniform3f"); pragma Import (StdCall, glUniform3fv, "glUniform3fv"); pragma Import (StdCall, glUniform3i, "glUniform3i"); pragma Import (StdCall, glUniform3iv, "glUniform3iv"); pragma Import (StdCall, glUniform4f, "glUniform4f"); pragma Import (StdCall, glUniform4fv, "glUniform4fv"); pragma Import (StdCall, glUniform4i, "glUniform4i"); pragma Import (StdCall, glUniform4iv, "glUniform4iv"); pragma Import (StdCall, glUniformMatrix2fv, "glUniformMatrix2fv"); pragma Import (StdCall, glUniformMatrix3fv, "glUniformMatrix3fv"); pragma Import (StdCall, glUniformMatrix4fv, "glUniformMatrix4fv"); pragma Import (StdCall, glUseProgram, "glUseProgram"); pragma Import (StdCall, glValidateProgram, "glValidateProgram"); pragma Import (StdCall, glVertexAttrib1f, "glVertexAttrib1f"); pragma Import (StdCall, glVertexAttrib1fv, "glVertexAttrib1fv"); pragma Import (StdCall, glVertexAttrib2f, "glVertexAttrib2f"); pragma Import (StdCall, glVertexAttrib2fv, "glVertexAttrib2fv"); pragma Import (StdCall, glVertexAttrib3f, "glVertexAttrib3f"); pragma Import (StdCall, glVertexAttrib3fv, "glVertexAttrib3fv"); pragma Import (StdCall, glVertexAttrib4f, "glVertexAttrib4f"); pragma Import (StdCall, glVertexAttrib4fv, "glVertexAttrib4fv"); pragma Import (StdCall, glVertexAttribPointer, "glVertexAttribPointer"); end GL.lean;