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
|
#pragma once
|
||||||
#include "glcorearb.h"
|
#include "glcorearb.h"
|
||||||
|
|
||||||
typedef HGLRC (APIENTRYP PFNWGLCREATECONTEXT)(HDC);
|
// wgl
|
||||||
typedef BOOL (APIENTRYP PFNWGLDELETECONTEXT)(HGLRC);
|
typedef HGLRC (APIENTRYP PFNWGLCREATECONTEXTPROC)(HDC);
|
||||||
typedef PROC (APIENTRYP PFNWGLGETPROCADDRESS)(LPCSTR);
|
typedef BOOL (APIENTRYP PFNWGLDELETECONTEXTPROC)(HGLRC);
|
||||||
typedef BOOL (APIENTRYP PFNWGLMAKECURRENT)(HDC, 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 PFNWGLCREATECONTEXTPROC xwglCreateContext;
|
||||||
extern PFNWGLDELETECONTEXT xwglDeleteContext;
|
extern PFNWGLDELETECONTEXTPROC xwglDeleteContext;
|
||||||
extern PFNWGLGETPROCADDRESS xwglGetProcAddress;
|
extern PFNWGLGETPROCADDRESSPROC xwglGetProcAddress;
|
||||||
extern PFNWGLMAKECURRENT xwglMakeCurrent;
|
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 --->
|
//compat profile only --->
|
||||||
#define GL_LUMINANCE 0x1909
|
#define GL_LUMINANCE 0x1909
|
||||||
#define GL_LUMINANCE8 0x8040
|
#define GL_LUMINANCE8 0x8040
|
||||||
typedef void (APIENTRYP PFNGLBEGIN)(GLenum mode);
|
typedef void (APIENTRYP PFNGLBEGINPROC)(GLenum mode);
|
||||||
typedef void (APIENTRYP PFNGLEND)(void);
|
typedef void (APIENTRYP PFNGLENDPROC)(void);
|
||||||
typedef void (APIENTRYP PFNGLTEXCOORD2F)(GLfloat s, GLfloat t);
|
typedef void (APIENTRYP PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t);
|
||||||
typedef void (APIENTRYP PFNGLVERTEX2F)(GLfloat x, GLfloat y);
|
typedef void (APIENTRYP PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y);
|
||||||
|
|
||||||
extern PFNGLBEGIN glBegin;
|
extern PFNGLBEGINPROC glBegin;
|
||||||
extern PFNGLEND glEnd;
|
extern PFNGLENDPROC glEnd;
|
||||||
extern PFNGLTEXCOORD2F glTexCoord2f;
|
extern PFNGLTEXCOORD2FPROC glTexCoord2f;
|
||||||
extern PFNGLVERTEX2F glVertex2f;
|
extern PFNGLVERTEX2FPROC glVertex2f;
|
||||||
// <--- compat profile only
|
// <--- 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_BuildProgram(const GLchar *vertSource, const GLchar *fragSource);
|
||||||
GLuint OpenGL_BuildProgramFromFile(const char *filePath);
|
GLuint OpenGL_BuildProgramFromFile(const char *filePath);
|
||||||
|
|
||||||
typedef void (APIENTRYP PFNWGLSWAPINTERVALEXT) (int interval);
|
extern PFNGLVIEWPORTPROC glViewport;
|
||||||
typedef const char* (WINAPI *PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);
|
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 PFNGLCREATEPROGRAMPROC glCreateProgram;
|
||||||
extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
|
extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
|
||||||
|
@ -120,9 +110,6 @@ extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
|
||||||
extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
||||||
extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
||||||
|
|
||||||
extern PFNWGLSWAPINTERVALEXT wglSwapIntervalEXT;
|
|
||||||
extern PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
|
|
||||||
|
|
||||||
extern PFNGLTEXBUFFERPROC glTexBuffer;
|
extern PFNGLTEXBUFFERPROC glTexBuffer;
|
||||||
|
|
||||||
extern HMODULE OpenGL_hModule;
|
extern HMODULE OpenGL_hModule;
|
||||||
|
|
84
src/opengl.c
84
src/opengl.c
|
@ -2,28 +2,28 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "opengl.h"
|
#include "opengl.h"
|
||||||
|
|
||||||
PFNWGLCREATECONTEXT xwglCreateContext;
|
PFNWGLCREATECONTEXTPROC xwglCreateContext;
|
||||||
PFNWGLDELETECONTEXT xwglDeleteContext;
|
PFNWGLDELETECONTEXTPROC xwglDeleteContext;
|
||||||
PFNWGLGETPROCADDRESS xwglGetProcAddress;
|
PFNWGLGETPROCADDRESSPROC xwglGetProcAddress;
|
||||||
PFNWGLMAKECURRENT xwglMakeCurrent;
|
PFNWGLMAKECURRENTPROC xwglMakeCurrent;
|
||||||
|
|
||||||
PFNGLVIEWPORT glViewport;
|
PFNGLVIEWPORTPROC glViewport;
|
||||||
PFNGLBINDTEXTURE glBindTexture;
|
PFNGLBINDTEXTUREPROC glBindTexture;
|
||||||
PFNGLGENTEXTURES glGenTextures;
|
PFNGLGENTEXTURESPROC glGenTextures;
|
||||||
PFNGLTEXPARAMETERI glTexParameteri;
|
PFNGLTEXPARAMETERIPROC glTexParameteri;
|
||||||
PFNGLDELETETEXTURES glDeleteTextures;
|
PFNGLDELETETEXTURESPROC glDeleteTextures;
|
||||||
PFNGLTEXIMAGE2D glTexImage2D;
|
PFNGLTEXIMAGE2DPROC glTexImage2D;
|
||||||
PFNGLDRAWELEMENTS glDrawElements;
|
PFNGLDRAWELEMENTSPROC glDrawElements;
|
||||||
PFNGLTEXSUBIMAGE2D glTexSubImage2D;
|
PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
|
||||||
PFNGLGETERROR glGetError;
|
PFNGLGETERRORPROC glGetError;
|
||||||
PFNGLGETSTRING glGetString;
|
PFNGLGETSTRINGPROC glGetString;
|
||||||
PFNGLGETTEXIMAGE glGetTexImage;
|
PFNGLGETTEXIMAGEPROC glGetTexImage;
|
||||||
PFNGLPIXELSTOREI glPixelStorei;
|
PFNGLPIXELSTOREIPROC glPixelStorei;
|
||||||
|
|
||||||
PFNGLBEGIN glBegin;
|
PFNGLBEGINPROC glBegin;
|
||||||
PFNGLEND glEnd;
|
PFNGLENDPROC glEnd;
|
||||||
PFNGLTEXCOORD2F glTexCoord2f;
|
PFNGLTEXCOORD2FPROC glTexCoord2f;
|
||||||
PFNGLVERTEX2F glVertex2f;
|
PFNGLVERTEX2FPROC glVertex2f;
|
||||||
|
|
||||||
// Program
|
// Program
|
||||||
PFNGLCREATEPROGRAMPROC glCreateProgram;
|
PFNGLCREATEPROGRAMPROC glCreateProgram;
|
||||||
|
@ -85,7 +85,7 @@ PFNGLDRAWBUFFERSPROC glDrawBuffers;
|
||||||
PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
||||||
PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
|
||||||
|
|
||||||
PFNWGLSWAPINTERVALEXT wglSwapIntervalEXT;
|
PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
|
||||||
PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
|
PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
|
||||||
|
|
||||||
PFNGLTEXBUFFERPROC glTexBuffer;
|
PFNGLTEXBUFFERPROC glTexBuffer;
|
||||||
|
@ -104,28 +104,28 @@ BOOL OpenGL_LoadDll()
|
||||||
|
|
||||||
if (OpenGL_hModule)
|
if (OpenGL_hModule)
|
||||||
{
|
{
|
||||||
xwglCreateContext = (PFNWGLCREATECONTEXT)GetProcAddress(OpenGL_hModule, "wglCreateContext");
|
xwglCreateContext = (PFNWGLCREATECONTEXTPROC)GetProcAddress(OpenGL_hModule, "wglCreateContext");
|
||||||
xwglDeleteContext = (PFNWGLDELETECONTEXT)GetProcAddress(OpenGL_hModule, "wglDeleteContext");
|
xwglDeleteContext = (PFNWGLDELETECONTEXTPROC)GetProcAddress(OpenGL_hModule, "wglDeleteContext");
|
||||||
xwglGetProcAddress = (PFNWGLGETPROCADDRESS)GetProcAddress(OpenGL_hModule, "wglGetProcAddress");
|
xwglGetProcAddress = (PFNWGLGETPROCADDRESSPROC)GetProcAddress(OpenGL_hModule, "wglGetProcAddress");
|
||||||
xwglMakeCurrent = (PFNWGLMAKECURRENT)GetProcAddress(OpenGL_hModule, "wglMakeCurrent");
|
xwglMakeCurrent = (PFNWGLMAKECURRENTPROC)GetProcAddress(OpenGL_hModule, "wglMakeCurrent");
|
||||||
|
|
||||||
glViewport = (PFNGLVIEWPORT)GetProcAddress(OpenGL_hModule, "glViewport");
|
glViewport = (PFNGLVIEWPORTPROC)GetProcAddress(OpenGL_hModule, "glViewport");
|
||||||
glBindTexture = (PFNGLBINDTEXTURE)GetProcAddress(OpenGL_hModule, "glBindTexture");
|
glBindTexture = (PFNGLBINDTEXTUREPROC)GetProcAddress(OpenGL_hModule, "glBindTexture");
|
||||||
glGenTextures = (PFNGLGENTEXTURES)GetProcAddress(OpenGL_hModule, "glGenTextures");
|
glGenTextures = (PFNGLGENTEXTURESPROC)GetProcAddress(OpenGL_hModule, "glGenTextures");
|
||||||
glTexParameteri = (PFNGLTEXPARAMETERI)GetProcAddress(OpenGL_hModule, "glTexParameteri");
|
glTexParameteri = (PFNGLTEXPARAMETERIPROC)GetProcAddress(OpenGL_hModule, "glTexParameteri");
|
||||||
glDeleteTextures = (PFNGLDELETETEXTURES)GetProcAddress(OpenGL_hModule, "glDeleteTextures");
|
glDeleteTextures = (PFNGLDELETETEXTURESPROC)GetProcAddress(OpenGL_hModule, "glDeleteTextures");
|
||||||
glTexImage2D = (PFNGLTEXIMAGE2D)GetProcAddress(OpenGL_hModule, "glTexImage2D");
|
glTexImage2D = (PFNGLTEXIMAGE2DPROC)GetProcAddress(OpenGL_hModule, "glTexImage2D");
|
||||||
glDrawElements = (PFNGLDRAWELEMENTS)GetProcAddress(OpenGL_hModule, "glDrawElements");
|
glDrawElements = (PFNGLDRAWELEMENTSPROC)GetProcAddress(OpenGL_hModule, "glDrawElements");
|
||||||
glTexSubImage2D = (PFNGLTEXSUBIMAGE2D)GetProcAddress(OpenGL_hModule, "glTexSubImage2D");
|
glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)GetProcAddress(OpenGL_hModule, "glTexSubImage2D");
|
||||||
glGetError = (PFNGLGETERROR)GetProcAddress(OpenGL_hModule, "glGetError");
|
glGetError = (PFNGLGETERRORPROC)GetProcAddress(OpenGL_hModule, "glGetError");
|
||||||
glGetString = (PFNGLGETSTRING)GetProcAddress(OpenGL_hModule, "glGetString");
|
glGetString = (PFNGLGETSTRINGPROC)GetProcAddress(OpenGL_hModule, "glGetString");
|
||||||
glGetTexImage = (PFNGLGETTEXIMAGE)GetProcAddress(OpenGL_hModule, "glGetTexImage");
|
glGetTexImage = (PFNGLGETTEXIMAGEPROC)GetProcAddress(OpenGL_hModule, "glGetTexImage");
|
||||||
glPixelStorei = (PFNGLPIXELSTOREI)GetProcAddress(OpenGL_hModule, "glPixelStorei");
|
glPixelStorei = (PFNGLPIXELSTOREIPROC)GetProcAddress(OpenGL_hModule, "glPixelStorei");
|
||||||
|
|
||||||
glBegin = (PFNGLBEGIN)GetProcAddress(OpenGL_hModule, "glBegin");
|
glBegin = (PFNGLBEGINPROC)GetProcAddress(OpenGL_hModule, "glBegin");
|
||||||
glEnd = (PFNGLEND)GetProcAddress(OpenGL_hModule, "glEnd");
|
glEnd = (PFNGLENDPROC)GetProcAddress(OpenGL_hModule, "glEnd");
|
||||||
glTexCoord2f = (PFNGLTEXCOORD2F)GetProcAddress(OpenGL_hModule, "glTexCoord2f");
|
glTexCoord2f = (PFNGLTEXCOORD2FPROC)GetProcAddress(OpenGL_hModule, "glTexCoord2f");
|
||||||
glVertex2f = (PFNGLVERTEX2F)GetProcAddress(OpenGL_hModule, "glVertex2f");
|
glVertex2f = (PFNGLVERTEX2FPROC)GetProcAddress(OpenGL_hModule, "glVertex2f");
|
||||||
}
|
}
|
||||||
|
|
||||||
return xwglCreateContext && xwglDeleteContext && xwglGetProcAddress && xwglMakeCurrent && glViewport &&
|
return xwglCreateContext && xwglDeleteContext && xwglGetProcAddress && xwglMakeCurrent && glViewport &&
|
||||||
|
@ -194,7 +194,7 @@ void OpenGL_Init()
|
||||||
glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)xwglGetProcAddress("glCheckFramebufferStatus");
|
glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)xwglGetProcAddress("glCheckFramebufferStatus");
|
||||||
glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)xwglGetProcAddress("glDeleteFramebuffers");
|
glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)xwglGetProcAddress("glDeleteFramebuffers");
|
||||||
|
|
||||||
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXT)xwglGetProcAddress("wglSwapIntervalEXT");
|
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)xwglGetProcAddress("wglSwapIntervalEXT");
|
||||||
wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)xwglGetProcAddress("wglGetExtensionsStringARB");
|
wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)xwglGetProcAddress("wglGetExtensionsStringARB");
|
||||||
|
|
||||||
glTexBuffer = (PFNGLTEXBUFFERPROC)xwglGetProcAddress("glTexBuffer");
|
glTexBuffer = (PFNGLTEXBUFFERPROC)xwglGetProcAddress("glTexBuffer");
|
||||||
|
|
Loading…
Reference in a new issue