vn/code/opengl_functions.md

9.0 KiB

@table(Name, Type, Arguments) OpenGLFunctions: { {BindTexture void GLenum target, GLuint texture} {BlendFunc void GLenum sfactor, GLenum dfactor} {Clear void GLbitfield mask} {ClearAccum void GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha} {ClearColor void GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha} {ClearDepth void GLclampd depth} {ClearIndex void GLfloat c} {ClearStencil void GLint s} {ClipPlane void GLenum plane, const GLdouble *equation} {CullFace void GLenum mode} {DeleteTextures void GLsizei n, const GLuint *textures} {Disable void GLenum cap} {DrawArrays void GLenum mode, GLint first, GLsizei count} {DrawBuffer void GLenum mode} {DrawElements void GLenum mode, GLsizei count, GLenum type, const GLvoid *indices} {DrawArraysInstanced void GLenum mode, GLint first, GLsizei count, GLsizei instancecount} {Enable void GLenum cap} {GenTextures void GLsizei n, GLuint *textures} {GetClipPlane void GLenum plane, GLdouble *equation} {GetDoublev void GLenum pname, GLdouble *params} {GetError GLenum void} {GetFloatv void GLenum pname, GLfloat *params} {GetIntegerv void GLenum pname, GLint *params} {GetPointerv void GLenum pname, GLvoid* *params} {GetString const GLubyte * GLenum name} {GetTexEnvfv void GLenum target, GLenum pname, GLfloat *params} {GetTexEnviv void GLenum target, GLenum pname, GLint *params} {GetTexGendv void GLenum coord, GLenum pname, GLdouble *params} {GetTexGenfv void GLenum coord, GLenum pname, GLfloat *params} {GetTexGeniv void GLenum coord, GLenum pname, GLint *params} {GetTexImage void GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels} {GetTexLevelParameterfv void GLenum target, GLint level, GLenum pname, GLfloat *params} {GetTexLevelParameteriv void GLenum target, GLint level, GLenum pname, GLint *params} {GetTexParameterfv void GLenum target, GLenum pname, GLfloat *params} {GetTexParameteriv void GLenum target, GLenum pname, GLint *params} {Hint void GLenum target, GLenum mode} {IsTexture GLboolean GLuint texture} {LineWidth void GLfloat width} {ListBase void GLuint base} {LoadName void GLuint name} {LogicOp void GLenum opcode} {PointSize void GLfloat size} {PolygonMode void GLenum face, GLenum mode} {Scissor void GLint x, GLint y, GLsizei width, GLsizei height} {TexImage1D void GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels} {TexImage2D void GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels} {TexParameterf void GLenum target, GLenum pname, GLfloat param} {TexParameterfv void GLenum target, GLenum pname, const GLfloat *params} {TexParameteri void GLenum target, GLenum pname, GLint param} {TexParameteriv void GLenum target, GLenum pname, const GLint *params} {TexSubImage1D void GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels} {TexSubImage2D void GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels} {CompressedTexImage2D void GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *pixels} {ActiveTexture void GLenum texture} {Viewport void GLint x, GLint y, GLsizei width, GLsizei height} {GenBuffers void GLsizei n, GLuint *buffers} {BindBuffer void GLenum target, GLuint buffer} {BufferData void GLenum target, GLsizeiptr size, const void *data, GLenum usage} {BufferSubData void GLenum target, GLintptr offset, GLsizeiptr size, const void *data} {GenVertexArrays void GLsizei n, GLuint *arrays} {BindVertexArray void GLenum array} {GetAttribLocation GLint GLuint program, const GLchar *name} {EnableVertexAttribArray void GLuint index} {DisableVertexAttribArray void GLuint index} {VertexAttribPointer void GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer} {VertexAttribIPointer void GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer} {VertexAttribLPointer void GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer} {VertexAttribDivisor void GLuint index, GLuint divisor} {CreateShader GLuint GLenum type} {ShaderSource void GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length} {CompileShader void GLuint shader} {DeleteShader void GLuint shader} {GetShaderiv void GLuint shader, GLenum pname, GLint *params} {GetShaderInfoLog void GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog} {CreateProgram GLuint void} {UseProgram void GLuint program} {AttachShader void GLuint program, GLuint shader} {DeleteProgram void GLuint program} {LinkProgram void GLuint program} {GetProgramiv void GLuint program, GLenum pname, GLint *params} {GetProgramInfoLog void GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog} {GetUniformLocation GLint GLuint program, const GLchar *name} {Uniform1i void GLint location, GLint v0} {Uniform2f void GLint location, GLfloat v0, GLfloat v1} {Uniform3f void GLint location, GLfloat v0, GLfloat v1, GLfloat v2} {UniformMatrix4fv void GLint location, GLsizei count, GLboolean transpose, const GLfloat *value} {DebugMessageCallback void void (*)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *, const void *), const void *userParam} }

// sixten: Generate the typedefs. @table_gen { @expand(OpenGLFunctions s) typedef $(s.Type) opengl_$(s.Name)($(s.Arguments));; }

// sixten: Generate the global pointers. @table_gen { @expand(OpenGLFunctions s) global opengl_$(s.Name) *gl$(s.Name) = 0;; }

// sixten: Generate OpenGL_LoadAllFunctions @table_gen { extern void *OpenGL_LoadFunction(char *);; static void OpenGL_LoadAllFunctions(void); {; @expand(OpenGLFunctions s) gl$(s.Name) = (opengl_$(s.Name) *)OpenGL_LoadFunction("gl$(s.Name)");; }; }