vn/code/vn_opengl_functions.md

113 lines
9.0 KiB
Markdown

@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)");`;
`}`;
}