diff options
author | WlodekM <[email protected]> | 2024-06-16 10:35:45 +0300 |
---|---|---|
committer | WlodekM <[email protected]> | 2024-06-16 10:35:45 +0300 |
commit | abef6da56913f1c55528103e60a50451a39628b1 (patch) | |
tree | b3c8092471ecbb73e568cd0d336efa0e7871ee8d /misc/opengl |
initial commit
Diffstat (limited to 'misc/opengl')
-rw-r--r-- | misc/opengl/GL1Funcs.h | 63 | ||||
-rw-r--r-- | misc/opengl/GL2Funcs.h | 36 | ||||
-rw-r--r-- | misc/opengl/GLCommon.h | 102 |
3 files changed, 201 insertions, 0 deletions
diff --git a/misc/opengl/GL1Funcs.h b/misc/opengl/GL1Funcs.h new file mode 100644 index 0000000..663fdf9 --- /dev/null +++ b/misc/opengl/GL1Funcs.h @@ -0,0 +1,63 @@ +/* Raster state functions */ +GL_FUNC(void, glAlphaFunc)(GLenum func, GLfloat ref); +GL_FUNC(void, glBlendFunc)(GLenum sfactor, GLenum dfactor); +GL_FUNC(void, glClearColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GL_FUNC(void, glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GL_FUNC(void, glDepthFunc)(GLenum func); +GL_FUNC(void, glDepthMask)(GLboolean flag); +GL_FUNC(void, glDisable)(GLenum cap); +GL_FUNC(void, glDisableClientState)(GLenum array); +GL_FUNC(void, glEnable)(GLenum cap); +GL_FUNC(void, glEnableClientState)(GLenum array); + +/* Fog functions */ +GL_FUNC(void, glFogf)(GLenum pname, GLfloat param); +GL_FUNC(void, glFogfv)(GLenum pname, const GLfloat* params); +GL_FUNC(void, glFogi)(GLenum pname, GLint param); +GL_FUNC(void, glFogiv)(GLenum pname, const GLint* params); + +/* Transform functions */ +GL_FUNC(void, glLoadIdentity)(void); +GL_FUNC(void, glLoadMatrixf)(const GLfloat* m); +GL_FUNC(void, glMatrixMode)(GLenum mode); +GL_FUNC(void, glViewport)(GLint x, GLint y, GLsizei width, GLsizei height); + +/* Draw functions */ +GL_FUNC(void, glDrawArrays)(GLenum mode, GLint first, GLsizei count); +GL_FUNC(void, glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); +GL_FUNC(void, glColorPointer)(GLint size, GLenum type, GLsizei stride, GLpointer pointer); +GL_FUNC(void, glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, GLpointer pointer); +GL_FUNC(void, glVertexPointer)(GLint size, GLenum type, GLsizei stride, GLpointer pointer); + +/* Misc functions */ +GL_FUNC(void, glClear)(GLuint mask); +GL_FUNC(void, glHint)(GLenum target, GLenum mode); +GL_FUNC(void, glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); + +/* Texture functions */ +GL_FUNC(void, glBindTexture)(GLenum target, GLuint texture); +GL_FUNC(void, glDeleteTextures)(GLsizei n, const GLuint* textures); +GL_FUNC(void, glGenTextures)(GLsizei n, GLuint* textures); +GL_FUNC(void, glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +GL_FUNC(void, glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); +GL_FUNC(void, glTexParameteri)(GLenum target, GLenum pname, GLint param); + +/* State get functions */ +GL_FUNC(GLenum, glGetError)(void); +GL_FUNC(void, glGetFloatv)(GLenum pname, GLfloat* params); +GL_FUNC(void, glGetIntegerv)(GLenum pname, GLint* params); +GL_FUNC(const GLubyte*, glGetString)(GLenum name); + +/* Legacy display list functions */ +GL_FUNC(void, glCallList)(GLuint list); +GL_FUNC(void, glDeleteLists)(GLuint list, GLsizei range); +GL_FUNC(GLuint, glGenLists)(GLsizei range); +GL_FUNC(void, glNewList)(GLuint list, GLenum mode); +GL_FUNC(void, glEndList)(void); + +/* Legacy vertex draw functions */ +GL_FUNC(void, glBegin)(GLenum mode); +GL_FUNC(void, glEnd)(void); +GL_FUNC(void, glColor4ub)(GLubyte r, GLubyte g, GLubyte b, GLubyte a); +GL_FUNC(void, glTexCoord2f)(float u, float v); +GL_FUNC(void, glVertex3f)(float x, float y, float z); \ No newline at end of file diff --git a/misc/opengl/GL2Funcs.h b/misc/opengl/GL2Funcs.h new file mode 100644 index 0000000..da12075 --- /dev/null +++ b/misc/opengl/GL2Funcs.h @@ -0,0 +1,36 @@ +/* Buffer functions */ +GL_FUNC(void, glBindBuffer)(GLenum target, GLuint buffer); +GL_FUNC(void, glDeleteBuffers)(GLsizei n, const GLuint* buffers); +GL_FUNC(void, glGenBuffers)(GLsizei n, GLuint *buffers); +GL_FUNC(void, glBufferData)(GLenum target, cc_uintptr size, const GLvoid* data, GLenum usage); +GL_FUNC(void, glBufferSubData)(GLenum target, cc_uintptr offset, cc_uintptr size, const GLvoid* data); + +/* Shader functions */ +GL_FUNC(GLuint, glCreateShader)(GLenum type); +GL_FUNC(void, glDeleteShader)(GLuint shader); +GL_FUNC(void, glGetShaderiv)(GLuint shader, GLenum pname, GLint* params); +GL_FUNC(void, glGetShaderInfoLog)(GLuint shader, GLsizei bufSize, GLsizei* length, char* infoLog); +GL_FUNC(void, glShaderSource)(GLuint shader, GLsizei count, const char* const* string, const GLint* length); + +GL_FUNC(void, glAttachShader)(GLuint program, GLuint shader); +GL_FUNC(void, glBindAttribLocation)(GLuint program, GLuint index, const char* name); +GL_FUNC(void, glCompileShader)(GLuint shader); +GL_FUNC(void, glDetachShader)(GLuint program, GLuint shader); +GL_FUNC(void, glLinkProgram)(GLuint program); + +/* Program functions */ +GL_FUNC(GLuint, glCreateProgram)(void); +GL_FUNC(void, glDeleteProgram)(GLuint program); +GL_FUNC(void, glGetProgramiv)(GLuint program, GLenum pname, GLint* params); +GL_FUNC(void, glGetProgramInfoLog)(GLuint program, GLsizei bufSize, GLsizei* length, char* infoLog); +GL_FUNC(void, glUseProgram)(GLuint program); + +GL_FUNC(void, glDisableVertexAttribArray)(GLuint index); +GL_FUNC(void, glEnableVertexAttribArray)(GLuint index); +GL_FUNC(void, glVertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); + +GL_FUNC(GLint, glGetUniformLocation)(GLuint program, const char* name); +GL_FUNC(void, glUniform1f)(GLint location, GLfloat v0); +GL_FUNC(void, glUniform2f)(GLint location, GLfloat v0, GLfloat v1); +GL_FUNC(void, glUniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GL_FUNC(void, glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); \ No newline at end of file diff --git a/misc/opengl/GLCommon.h b/misc/opengl/GLCommon.h new file mode 100644 index 0000000..8b56922 --- /dev/null +++ b/misc/opengl/GLCommon.h @@ -0,0 +1,102 @@ +#if defined CC_BUILD_WIN + /* Avoid pointless includes */ + #define WIN32_LEAN_AND_MEAN + #define NOSERVICE + #define NOMCX + #define NOIME + #include <windows.h> + #define GLAPI WINGDIAPI +#else + #define GLAPI extern + #define APIENTRY +#endif + +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef signed char GLbyte; +typedef int GLint; +typedef int GLsizei; +typedef unsigned char GLubyte; +typedef unsigned int GLuint; +typedef float GLfloat; +typedef void GLvoid; + +/* NOTE: With the OpenGL 1.1 backend "pointer" arguments are actual pointers, */ +/* but with VBOs they are just offsets instead */ +#ifdef CC_BUILD_GL11 +typedef const void* GLpointer; +#else +typedef cc_uintptr GLpointer; +#endif + +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 + +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_COLOR_BUFFER_BIT 0x00004000 + +#define GL_LINES 0x0001 +#define GL_TRIANGLES 0x0004 +#define GL_QUADS 0x0007 + +#define GL_BLEND 0x0BE2 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 + +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_RGBA 0x1908 + +#define GL_FOG 0x0B60 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_LINEAR 0x2601 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 + +#define GL_CULL_FACE 0x0B44 +#define GL_DEPTH_TEST 0x0B71 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_VIEWPORT 0x0BA2 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_DEPTH_BITS 0x0D56 + +#define GL_FOG_HINT 0x0C54 +#define GL_NICEST 0x1102 +#define GL_COMPILE 0x1300 + +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 + +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +#define GL_TEXTURE_2D 0x0DE1 +#define GL_NEAREST 0x2600 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 + +#define GL_VERTEX_ARRAY 0x8074 +#define GL_COLOR_ARRAY 0x8076 +#define GL_TEXTURE_COORD_ARRAY 0x8078 + +/* Not present in gl.h on Windows (only up to OpenGL 1.1) */ +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_STATIC_DRAW 0x88E4 +#define GL_DYNAMIC_DRAW 0x88E8 + +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_INFO_LOG_LENGTH 0x8B84 \ No newline at end of file |