2020-10-13 09:20:52 +02:00
|
|
|
#ifndef OPENGL_UTILS_H
|
|
|
|
#define OPENGL_UTILS_H
|
2018-10-24 04:21:22 +02:00
|
|
|
#include "glcorearb.h"
|
2020-10-23 03:17:03 +02:00
|
|
|
#include "wglext.h"
|
2018-05-09 05:09:57 +02:00
|
|
|
|
2021-06-11 20:30:43 +02:00
|
|
|
/* wgl */
|
|
|
|
typedef HGLRC(APIENTRYP PFNWGLCREATECONTEXTPROC)(HDC);
|
|
|
|
typedef BOOL(APIENTRYP PFNWGLDELETECONTEXTPROC)(HGLRC);
|
|
|
|
typedef PROC(APIENTRYP PFNWGLGETPROCADDRESSPROC)(LPCSTR);
|
|
|
|
typedef BOOL(APIENTRYP PFNWGLMAKECURRENTPROC)(HDC, HGLRC);
|
2018-10-24 06:27:42 +02:00
|
|
|
|
|
|
|
extern PFNWGLCREATECONTEXTPROC xwglCreateContext;
|
|
|
|
extern PFNWGLDELETECONTEXTPROC xwglDeleteContext;
|
|
|
|
extern PFNWGLGETPROCADDRESSPROC xwglGetProcAddress;
|
|
|
|
extern PFNWGLMAKECURRENTPROC xwglMakeCurrent;
|
|
|
|
extern PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
|
|
|
|
extern PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
|
2020-10-23 03:17:03 +02:00
|
|
|
extern PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB;
|
2018-10-24 06:27:42 +02:00
|
|
|
|
2018-10-24 04:21:22 +02:00
|
|
|
|
2021-06-11 20:30:43 +02:00
|
|
|
/* compat profile only ---> */
|
2018-10-24 04:21:22 +02:00
|
|
|
#define GL_LUMINANCE 0x1909
|
|
|
|
#define GL_LUMINANCE8 0x8040
|
2018-10-24 06:27:42 +02:00
|
|
|
typedef void (APIENTRYP PFNGLBEGINPROC)(GLenum mode);
|
|
|
|
typedef void (APIENTRYP PFNGLENDPROC)(void);
|
|
|
|
typedef void (APIENTRYP PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t);
|
|
|
|
typedef void (APIENTRYP PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y);
|
|
|
|
|
|
|
|
extern PFNGLBEGINPROC glBegin;
|
|
|
|
extern PFNGLENDPROC glEnd;
|
|
|
|
extern PFNGLTEXCOORD2FPROC glTexCoord2f;
|
|
|
|
extern PFNGLVERTEX2FPROC glVertex2f;
|
2021-06-11 20:30:43 +02:00
|
|
|
/* <--- compat profile only */
|
2018-10-24 04:21:22 +02:00
|
|
|
|
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
BOOL oglu_load_dll();
|
|
|
|
void oglu_init();
|
2021-06-11 20:30:43 +02:00
|
|
|
BOOL oglu_ext_exists(char* ext, HDC hdc);
|
2023-08-29 17:35:09 +02:00
|
|
|
GLuint oglu_build_program(GLchar* vert_source, GLchar* frag_source, BOOL core_profile);
|
2021-06-11 20:30:43 +02:00
|
|
|
GLuint oglu_build_program_from_file(const char* file_path, BOOL core_profile);
|
2018-05-09 05:09:57 +02:00
|
|
|
|
2018-10-24 06:27:42 +02:00
|
|
|
extern PFNGLVIEWPORTPROC glViewport;
|
|
|
|
extern PFNGLBINDTEXTUREPROC glBindTexture;
|
|
|
|
extern PFNGLGENTEXTURESPROC glGenTextures;
|
|
|
|
extern PFNGLTEXPARAMETERIPROC glTexParameteri;
|
|
|
|
extern PFNGLDELETETEXTURESPROC glDeleteTextures;
|
|
|
|
extern PFNGLTEXIMAGE2DPROC glTexImage2D;
|
|
|
|
extern PFNGLDRAWELEMENTSPROC glDrawElements;
|
|
|
|
extern PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
|
|
|
|
extern PFNGLGETERRORPROC glGetError;
|
|
|
|
extern PFNGLGETSTRINGPROC glGetString;
|
|
|
|
extern PFNGLGETTEXIMAGEPROC glGetTexImage;
|
|
|
|
extern PFNGLPIXELSTOREIPROC glPixelStorei;
|
2018-11-15 06:16:09 +01:00
|
|
|
extern PFNGLENABLEPROC glEnable;
|
2018-11-16 06:37:11 +01:00
|
|
|
extern PFNGLCLEARPROC glClear;
|
2018-05-09 05:09:57 +02:00
|
|
|
extern PFNGLCREATEPROGRAMPROC glCreateProgram;
|
|
|
|
extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
|
|
|
|
extern PFNGLUSEPROGRAMPROC glUseProgram;
|
|
|
|
extern PFNGLATTACHSHADERPROC glAttachShader;
|
|
|
|
extern PFNGLDETACHSHADERPROC glDetachShader;
|
|
|
|
extern PFNGLLINKPROGRAMPROC glLinkProgram;
|
|
|
|
extern PFNGLGETPROGRAMIVPROC glGetProgramiv;
|
|
|
|
extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
|
|
|
|
extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
|
|
|
|
extern PFNGLUNIFORM1IPROC glUniform1i;
|
|
|
|
extern PFNGLUNIFORM1IVPROC glUniform1iv;
|
|
|
|
extern PFNGLUNIFORM2IVPROC glUniform2iv;
|
|
|
|
extern PFNGLUNIFORM3IVPROC glUniform3iv;
|
|
|
|
extern PFNGLUNIFORM4IVPROC glUniform4iv;
|
|
|
|
extern PFNGLUNIFORM1FPROC glUniform1f;
|
|
|
|
extern PFNGLUNIFORM1FVPROC glUniform1fv;
|
|
|
|
extern PFNGLUNIFORM2FVPROC glUniform2fv;
|
|
|
|
extern PFNGLUNIFORM3FVPROC glUniform3fv;
|
|
|
|
extern PFNGLUNIFORM4FVPROC glUniform4fv;
|
2018-05-12 12:28:07 +02:00
|
|
|
extern PFNGLUNIFORM4FPROC glUniform4f;
|
2018-05-09 05:09:57 +02:00
|
|
|
extern PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
|
|
|
|
extern PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
|
|
|
|
extern PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
|
|
|
|
extern PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
|
|
|
|
extern PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
|
|
|
|
extern PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
|
|
|
|
extern PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
|
|
|
|
extern PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
|
|
|
|
extern PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
|
|
|
|
extern PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
|
|
|
|
extern PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
|
|
|
|
extern PFNGLCREATESHADERPROC glCreateShader;
|
|
|
|
extern PFNGLDELETESHADERPROC glDeleteShader;
|
|
|
|
extern PFNGLSHADERSOURCEPROC glShaderSource;
|
|
|
|
extern PFNGLCOMPILESHADERPROC glCompileShader;
|
|
|
|
extern PFNGLGETSHADERIVPROC glGetShaderiv;
|
|
|
|
extern PFNGLGENBUFFERSPROC glGenBuffers;
|
|
|
|
extern PFNGLBINDBUFFERPROC glBindBuffer;
|
|
|
|
extern PFNGLBUFFERDATAPROC glBufferData;
|
2018-05-31 03:38:33 +02:00
|
|
|
extern PFNGLMAPBUFFERPROC glMapBuffer;
|
|
|
|
extern PFNGLUNMAPBUFFERPROC glUnmapBuffer;
|
|
|
|
extern PFNGLBUFFERSUBDATAPROC glBufferSubData;
|
2018-05-09 05:09:57 +02:00
|
|
|
extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
|
2018-05-12 12:28:07 +02:00
|
|
|
extern PFNGLDELETEBUFFERSPROC glDeleteBuffers;
|
2018-05-20 06:27:53 +02:00
|
|
|
extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
|
|
|
|
extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
|
|
|
|
extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
|
2018-05-20 01:11:37 +02:00
|
|
|
extern PFNGLACTIVETEXTUREPROC glActiveTexture;
|
2018-05-12 12:28:07 +02:00
|
|
|
extern PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
|
|
|
|
extern PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
|
|
|
|
extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
|
|
|
|
extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
|
|
|
|
extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
|
|
|
extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
2018-05-31 03:38:33 +02:00
|
|
|
extern PFNGLTEXBUFFERPROC glTexBuffer;
|
2018-09-15 16:12:03 +02:00
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
extern HMODULE g_oglu_hmodule;
|
|
|
|
extern BOOL g_oglu_got_version2;
|
|
|
|
extern BOOL g_oglu_got_version3;
|
|
|
|
extern char g_oglu_version[];
|
2018-09-30 01:02:48 +02:00
|
|
|
|
2020-10-13 09:20:52 +02:00
|
|
|
#endif
|