remove duplicate code
This commit is contained in:
parent
35ac845688
commit
4814054df5
2 changed files with 75 additions and 88 deletions
79
inc/opengl.h
79
inc/opengl.h
|
@ -1,54 +1,34 @@
|
|||
#pragma once
|
||||
#include "glcorearb.h"
|
||||
|
||||
typedef HGLRC (APIENTRYP PFNWGLCREATECONTEXT)(HDC);
|
||||
typedef BOOL (APIENTRYP PFNWGLDELETECONTEXT)(HGLRC);
|
||||
typedef PROC (APIENTRYP PFNWGLGETPROCADDRESS)(LPCSTR);
|
||||
typedef BOOL (APIENTRYP PFNWGLMAKECURRENT)(HDC, HGLRC);
|
||||
// wgl
|
||||
typedef HGLRC (APIENTRYP PFNWGLCREATECONTEXTPROC)(HDC);
|
||||
typedef BOOL (APIENTRYP PFNWGLDELETECONTEXTPROC)(HGLRC);
|
||||
typedef PROC (APIENTRYP PFNWGLGETPROCADDRESSPROC)(LPCSTR);
|
||||
typedef BOOL (APIENTRYP PFNWGLMAKECURRENTPROC)(HDC, HGLRC);
|
||||
typedef void (APIENTRYP PFNWGLSWAPINTERVALEXTPROC) (int interval);
|
||||
typedef const char* (APIENTRYP PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);
|
||||
|
||||
extern PFNWGLCREATECONTEXT xwglCreateContext;
|
||||
extern PFNWGLDELETECONTEXT xwglDeleteContext;
|
||||
extern PFNWGLGETPROCADDRESS xwglGetProcAddress;
|
||||
extern PFNWGLMAKECURRENT xwglMakeCurrent;
|
||||
extern PFNWGLCREATECONTEXTPROC xwglCreateContext;
|
||||
extern PFNWGLDELETECONTEXTPROC xwglDeleteContext;
|
||||
extern PFNWGLGETPROCADDRESSPROC xwglGetProcAddress;
|
||||
extern PFNWGLMAKECURRENTPROC xwglMakeCurrent;
|
||||
extern PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
|
||||
extern PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
|
||||
|
||||
typedef void (APIENTRYP PFNGLVIEWPORT)(GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLBINDTEXTURE)(GLenum target, GLuint texture);
|
||||
typedef void (APIENTRYP PFNGLGENTEXTURES)(GLsizei n, GLuint *textures);
|
||||
typedef void (APIENTRYP PFNGLTEXPARAMETERI)(GLenum target, GLenum pname, GLint param);
|
||||
typedef void (APIENTRYP PFNGLDELETETEXTURES)(GLsizei n, const GLuint *textures);
|
||||
typedef void (APIENTRYP PFNGLTEXIMAGE2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
|
||||
typedef void (APIENTRYP PFNGLDRAWELEMENTS)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
|
||||
typedef void (APIENTRYP PFNGLTEXSUBIMAGE2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
|
||||
typedef GLenum (APIENTRYP PFNGLGETERROR)(void);
|
||||
typedef const GLubyte * (APIENTRYP PFNGLGETSTRING)(GLenum name);
|
||||
typedef void (APIENTRYP PFNGLGETTEXIMAGE)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
|
||||
typedef void (APIENTRYP PFNGLPIXELSTOREI)(GLenum pname, GLint param);
|
||||
|
||||
extern PFNGLVIEWPORT glViewport;
|
||||
extern PFNGLBINDTEXTURE glBindTexture;
|
||||
extern PFNGLGENTEXTURES glGenTextures;
|
||||
extern PFNGLTEXPARAMETERI glTexParameteri;
|
||||
extern PFNGLDELETETEXTURES glDeleteTextures;
|
||||
extern PFNGLTEXIMAGE2D glTexImage2D;
|
||||
extern PFNGLDRAWELEMENTS glDrawElements;
|
||||
extern PFNGLTEXSUBIMAGE2D glTexSubImage2D;
|
||||
extern PFNGLGETERROR glGetError;
|
||||
extern PFNGLGETSTRING glGetString;
|
||||
extern PFNGLGETTEXIMAGE glGetTexImage;
|
||||
extern PFNGLPIXELSTOREI glPixelStorei;
|
||||
|
||||
//compat profile only --->
|
||||
#define GL_LUMINANCE 0x1909
|
||||
#define GL_LUMINANCE8 0x8040
|
||||
typedef void (APIENTRYP PFNGLBEGIN)(GLenum mode);
|
||||
typedef void (APIENTRYP PFNGLEND)(void);
|
||||
typedef void (APIENTRYP PFNGLTEXCOORD2F)(GLfloat s, GLfloat t);
|
||||
typedef void (APIENTRYP PFNGLVERTEX2F)(GLfloat x, GLfloat y);
|
||||
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 PFNGLBEGIN glBegin;
|
||||
extern PFNGLEND glEnd;
|
||||
extern PFNGLTEXCOORD2F glTexCoord2f;
|
||||
extern PFNGLVERTEX2F glVertex2f;
|
||||
extern PFNGLBEGINPROC glBegin;
|
||||
extern PFNGLENDPROC glEnd;
|
||||
extern PFNGLTEXCOORD2FPROC glTexCoord2f;
|
||||
extern PFNGLVERTEX2FPROC glVertex2f;
|
||||
// <--- compat profile only
|
||||
|
||||
|
||||
|
@ -58,8 +38,18 @@ BOOL OpenGL_ExtExists(char *ext, HDC hdc);
|
|||
GLuint OpenGL_BuildProgram(const GLchar *vertSource, const GLchar *fragSource);
|
||||
GLuint OpenGL_BuildProgramFromFile(const char *filePath);
|
||||
|
||||
typedef void (APIENTRYP PFNWGLSWAPINTERVALEXT) (int interval);
|
||||
typedef const char* (WINAPI *PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);
|
||||
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;
|
||||
|
||||
extern PFNGLCREATEPROGRAMPROC glCreateProgram;
|
||||
extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
|
||||
|
@ -120,9 +110,6 @@ extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
|
|||
extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
||||
extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
||||
|
||||
extern PFNWGLSWAPINTERVALEXT wglSwapIntervalEXT;
|
||||
extern PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
|
||||
|
||||
extern PFNGLTEXBUFFERPROC glTexBuffer;
|
||||
|
||||
extern HMODULE OpenGL_hModule;
|
||||
|
|
84
src/opengl.c
84
src/opengl.c
|
@ -2,28 +2,28 @@
|
|||
#include <stdio.h>
|
||||
#include "opengl.h"
|
||||
|
||||
PFNWGLCREATECONTEXT xwglCreateContext;
|
||||
PFNWGLDELETECONTEXT xwglDeleteContext;
|
||||
PFNWGLGETPROCADDRESS xwglGetProcAddress;
|
||||
PFNWGLMAKECURRENT xwglMakeCurrent;
|
||||
PFNWGLCREATECONTEXTPROC xwglCreateContext;
|
||||
PFNWGLDELETECONTEXTPROC xwglDeleteContext;
|
||||
PFNWGLGETPROCADDRESSPROC xwglGetProcAddress;
|
||||
PFNWGLMAKECURRENTPROC xwglMakeCurrent;
|
||||
|
||||
PFNGLVIEWPORT glViewport;
|
||||
PFNGLBINDTEXTURE glBindTexture;
|
||||
PFNGLGENTEXTURES glGenTextures;
|
||||
PFNGLTEXPARAMETERI glTexParameteri;
|
||||
PFNGLDELETETEXTURES glDeleteTextures;
|
||||
PFNGLTEXIMAGE2D glTexImage2D;
|
||||
PFNGLDRAWELEMENTS glDrawElements;
|
||||
PFNGLTEXSUBIMAGE2D glTexSubImage2D;
|
||||
PFNGLGETERROR glGetError;
|
||||
PFNGLGETSTRING glGetString;
|
||||
PFNGLGETTEXIMAGE glGetTexImage;
|
||||
PFNGLPIXELSTOREI glPixelStorei;
|
||||
PFNGLVIEWPORTPROC glViewport;
|
||||
PFNGLBINDTEXTUREPROC glBindTexture;
|
||||
PFNGLGENTEXTURESPROC glGenTextures;
|
||||
PFNGLTEXPARAMETERIPROC glTexParameteri;
|
||||
PFNGLDELETETEXTURESPROC glDeleteTextures;
|
||||
PFNGLTEXIMAGE2DPROC glTexImage2D;
|
||||
PFNGLDRAWELEMENTSPROC glDrawElements;
|
||||
PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
|
||||
PFNGLGETERRORPROC glGetError;
|
||||
PFNGLGETSTRINGPROC glGetString;
|
||||
PFNGLGETTEXIMAGEPROC glGetTexImage;
|
||||
PFNGLPIXELSTOREIPROC glPixelStorei;
|
||||
|
||||
PFNGLBEGIN glBegin;
|
||||
PFNGLEND glEnd;
|
||||
PFNGLTEXCOORD2F glTexCoord2f;
|
||||
PFNGLVERTEX2F glVertex2f;
|
||||
PFNGLBEGINPROC glBegin;
|
||||
PFNGLENDPROC glEnd;
|
||||
PFNGLTEXCOORD2FPROC glTexCoord2f;
|
||||
PFNGLVERTEX2FPROC glVertex2f;
|
||||
|
||||
// Program
|
||||
PFNGLCREATEPROGRAMPROC glCreateProgram;
|
||||
|
@ -85,7 +85,7 @@ PFNGLDRAWBUFFERSPROC glDrawBuffers;
|
|||
PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
||||
PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
||||
|
||||
PFNWGLSWAPINTERVALEXT wglSwapIntervalEXT;
|
||||
PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
|
||||
PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
|
||||
|
||||
PFNGLTEXBUFFERPROC glTexBuffer;
|
||||
|
@ -104,28 +104,28 @@ BOOL OpenGL_LoadDll()
|
|||
|
||||
if (OpenGL_hModule)
|
||||
{
|
||||
xwglCreateContext = (PFNWGLCREATECONTEXT)GetProcAddress(OpenGL_hModule, "wglCreateContext");
|
||||
xwglDeleteContext = (PFNWGLDELETECONTEXT)GetProcAddress(OpenGL_hModule, "wglDeleteContext");
|
||||
xwglGetProcAddress = (PFNWGLGETPROCADDRESS)GetProcAddress(OpenGL_hModule, "wglGetProcAddress");
|
||||
xwglMakeCurrent = (PFNWGLMAKECURRENT)GetProcAddress(OpenGL_hModule, "wglMakeCurrent");
|
||||
xwglCreateContext = (PFNWGLCREATECONTEXTPROC)GetProcAddress(OpenGL_hModule, "wglCreateContext");
|
||||
xwglDeleteContext = (PFNWGLDELETECONTEXTPROC)GetProcAddress(OpenGL_hModule, "wglDeleteContext");
|
||||
xwglGetProcAddress = (PFNWGLGETPROCADDRESSPROC)GetProcAddress(OpenGL_hModule, "wglGetProcAddress");
|
||||
xwglMakeCurrent = (PFNWGLMAKECURRENTPROC)GetProcAddress(OpenGL_hModule, "wglMakeCurrent");
|
||||
|
||||
glViewport = (PFNGLVIEWPORT)GetProcAddress(OpenGL_hModule, "glViewport");
|
||||
glBindTexture = (PFNGLBINDTEXTURE)GetProcAddress(OpenGL_hModule, "glBindTexture");
|
||||
glGenTextures = (PFNGLGENTEXTURES)GetProcAddress(OpenGL_hModule, "glGenTextures");
|
||||
glTexParameteri = (PFNGLTEXPARAMETERI)GetProcAddress(OpenGL_hModule, "glTexParameteri");
|
||||
glDeleteTextures = (PFNGLDELETETEXTURES)GetProcAddress(OpenGL_hModule, "glDeleteTextures");
|
||||
glTexImage2D = (PFNGLTEXIMAGE2D)GetProcAddress(OpenGL_hModule, "glTexImage2D");
|
||||
glDrawElements = (PFNGLDRAWELEMENTS)GetProcAddress(OpenGL_hModule, "glDrawElements");
|
||||
glTexSubImage2D = (PFNGLTEXSUBIMAGE2D)GetProcAddress(OpenGL_hModule, "glTexSubImage2D");
|
||||
glGetError = (PFNGLGETERROR)GetProcAddress(OpenGL_hModule, "glGetError");
|
||||
glGetString = (PFNGLGETSTRING)GetProcAddress(OpenGL_hModule, "glGetString");
|
||||
glGetTexImage = (PFNGLGETTEXIMAGE)GetProcAddress(OpenGL_hModule, "glGetTexImage");
|
||||
glPixelStorei = (PFNGLPIXELSTOREI)GetProcAddress(OpenGL_hModule, "glPixelStorei");
|
||||
glViewport = (PFNGLVIEWPORTPROC)GetProcAddress(OpenGL_hModule, "glViewport");
|
||||
glBindTexture = (PFNGLBINDTEXTUREPROC)GetProcAddress(OpenGL_hModule, "glBindTexture");
|
||||
glGenTextures = (PFNGLGENTEXTURESPROC)GetProcAddress(OpenGL_hModule, "glGenTextures");
|
||||
glTexParameteri = (PFNGLTEXPARAMETERIPROC)GetProcAddress(OpenGL_hModule, "glTexParameteri");
|
||||
glDeleteTextures = (PFNGLDELETETEXTURESPROC)GetProcAddress(OpenGL_hModule, "glDeleteTextures");
|
||||
glTexImage2D = (PFNGLTEXIMAGE2DPROC)GetProcAddress(OpenGL_hModule, "glTexImage2D");
|
||||
glDrawElements = (PFNGLDRAWELEMENTSPROC)GetProcAddress(OpenGL_hModule, "glDrawElements");
|
||||
glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)GetProcAddress(OpenGL_hModule, "glTexSubImage2D");
|
||||
glGetError = (PFNGLGETERRORPROC)GetProcAddress(OpenGL_hModule, "glGetError");
|
||||
glGetString = (PFNGLGETSTRINGPROC)GetProcAddress(OpenGL_hModule, "glGetString");
|
||||
glGetTexImage = (PFNGLGETTEXIMAGEPROC)GetProcAddress(OpenGL_hModule, "glGetTexImage");
|
||||
glPixelStorei = (PFNGLPIXELSTOREIPROC)GetProcAddress(OpenGL_hModule, "glPixelStorei");
|
||||
|
||||
glBegin = (PFNGLBEGIN)GetProcAddress(OpenGL_hModule, "glBegin");
|
||||
glEnd = (PFNGLEND)GetProcAddress(OpenGL_hModule, "glEnd");
|
||||
glTexCoord2f = (PFNGLTEXCOORD2F)GetProcAddress(OpenGL_hModule, "glTexCoord2f");
|
||||
glVertex2f = (PFNGLVERTEX2F)GetProcAddress(OpenGL_hModule, "glVertex2f");
|
||||
glBegin = (PFNGLBEGINPROC)GetProcAddress(OpenGL_hModule, "glBegin");
|
||||
glEnd = (PFNGLENDPROC)GetProcAddress(OpenGL_hModule, "glEnd");
|
||||
glTexCoord2f = (PFNGLTEXCOORD2FPROC)GetProcAddress(OpenGL_hModule, "glTexCoord2f");
|
||||
glVertex2f = (PFNGLVERTEX2FPROC)GetProcAddress(OpenGL_hModule, "glVertex2f");
|
||||
}
|
||||
|
||||
return xwglCreateContext && xwglDeleteContext && xwglGetProcAddress && xwglMakeCurrent && glViewport &&
|
||||
|
@ -194,7 +194,7 @@ void OpenGL_Init()
|
|||
glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)xwglGetProcAddress("glCheckFramebufferStatus");
|
||||
glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)xwglGetProcAddress("glDeleteFramebuffers");
|
||||
|
||||
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXT)xwglGetProcAddress("wglSwapIntervalEXT");
|
||||
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)xwglGetProcAddress("wglSwapIntervalEXT");
|
||||
wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)xwglGetProcAddress("wglGetExtensionsStringARB");
|
||||
|
||||
glTexBuffer = (PFNGLTEXBUFFERPROC)xwglGetProcAddress("glTexBuffer");
|
||||
|
|
Loading…
Reference in a new issue