mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Rework OpenGL API declarations
This commit is contained in:
committed by
Michał Janiszewski
parent
a4c8d402ad
commit
0868902f11
@@ -853,6 +853,7 @@
|
||||
D41B741C1C210A7A0080A7B9 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; };
|
||||
D41B74721C2125E50080A7B9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = distribution/macos/Assets.xcassets; sourceTree = SOURCE_ROOT; };
|
||||
D43407E11D0E14CE00C2B3D4 /* shaders */ = {isa = PBXFileReference; lastKnownFileType = folder; name = shaders; path = data/shaders; sourceTree = SOURCE_ROOT; };
|
||||
D43BAB921F8C2B2B00A9E362 /* OpenGLAPIProc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenGLAPIProc.h; sourceTree = "<group>"; };
|
||||
D45A38B31CF3006400659A24 /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libcrypto.dylib; sourceTree = "<group>"; };
|
||||
D45A38B41CF3006400659A24 /* libfreetype.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libfreetype.dylib; sourceTree = "<group>"; };
|
||||
D45A38B51CF3006400659A24 /* libjansson.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libjansson.dylib; sourceTree = "<group>"; };
|
||||
@@ -2667,6 +2668,7 @@
|
||||
F76C859A1EC4E82600FA49E2 /* GLSLTypes.h */,
|
||||
F76C859B1EC4E82600FA49E2 /* OpenGLAPI.cpp */,
|
||||
F76C859C1EC4E82600FA49E2 /* OpenGLAPI.h */,
|
||||
D43BAB921F8C2B2B00A9E362 /* OpenGLAPIProc.h */,
|
||||
F76C859D1EC4E82600FA49E2 /* OpenGLDrawingEngine.cpp */,
|
||||
F76C859E1EC4E82600FA49E2 /* OpenGLFramebuffer.cpp */,
|
||||
F76C859F1EC4E82600FA49E2 /* OpenGLFramebuffer.h */,
|
||||
|
||||
@@ -16,105 +16,30 @@
|
||||
|
||||
#ifndef DISABLE_OPENGL
|
||||
|
||||
#define NO_EXTERN_GLAPI
|
||||
#include "OpenGLAPI.h"
|
||||
|
||||
#if OPENGL_NO_LINK
|
||||
|
||||
#define OPENGL_PROC(TYPE, PROC) TYPE PROC = nullptr;
|
||||
#include "OpenGLAPIProc.h"
|
||||
#undef OPENGL_PROC
|
||||
|
||||
#include <SDL_video.h>
|
||||
|
||||
#include <openrct2/core/Console.hpp>
|
||||
|
||||
template <typename T>
|
||||
static inline bool SetProc(T * func, const char * name)
|
||||
{
|
||||
T address = (T)SDL_GL_GetProcAddress(name);
|
||||
if (address == nullptr)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
*func = address;
|
||||
return true;
|
||||
}
|
||||
|
||||
#define SetupOpenGLFunction(func) \
|
||||
{ \
|
||||
if (!SetProc(&func, "" #func "")) \
|
||||
{ \
|
||||
return "" #func ""; \
|
||||
} \
|
||||
}
|
||||
|
||||
static const char * TryLoadAllProcAddresses()
|
||||
{
|
||||
// 1.1 functions
|
||||
SetupOpenGLFunction(glActiveTexture);
|
||||
SetupOpenGLFunction(glBegin);
|
||||
SetupOpenGLFunction(glBindTexture);
|
||||
SetupOpenGLFunction(glBlendFunc);
|
||||
SetupOpenGLFunction(glClear);
|
||||
SetupOpenGLFunction(glClearColor);
|
||||
SetupOpenGLFunction(glCullFace);
|
||||
SetupOpenGLFunction(glDeleteTextures);
|
||||
SetupOpenGLFunction(glDisable);
|
||||
SetupOpenGLFunction(glDrawArrays);
|
||||
SetupOpenGLFunction(glEnable);
|
||||
SetupOpenGLFunction(glEnd);
|
||||
SetupOpenGLFunction(glGenTextures);
|
||||
SetupOpenGLFunction(glGetError);
|
||||
SetupOpenGLFunction(glPixelStorei);
|
||||
SetupOpenGLFunction(glReadPixels);
|
||||
SetupOpenGLFunction(glTexImage2D);
|
||||
SetupOpenGLFunction(glTexParameteri);
|
||||
SetupOpenGLFunction(glViewport);
|
||||
SetupOpenGLFunction(glTexSubImage3D);
|
||||
SetupOpenGLFunction(glTexImage3D);
|
||||
SetupOpenGLFunction(glGetIntegerv);
|
||||
SetupOpenGLFunction(glGetTexImage);
|
||||
|
||||
// 2.0+ functions
|
||||
SetupOpenGLFunction(glAttachShader);
|
||||
SetupOpenGLFunction(glBindBuffer);
|
||||
SetupOpenGLFunction(glBindFragDataLocation);
|
||||
SetupOpenGLFunction(glBindFramebuffer);
|
||||
SetupOpenGLFunction(glBindVertexArray);
|
||||
SetupOpenGLFunction(glBufferData);
|
||||
SetupOpenGLFunction(glCompileShader);
|
||||
SetupOpenGLFunction(glCreateProgram);
|
||||
SetupOpenGLFunction(glCreateShader);
|
||||
SetupOpenGLFunction(glDeleteBuffers);
|
||||
SetupOpenGLFunction(glDeleteFramebuffers);
|
||||
SetupOpenGLFunction(glDeleteProgram);
|
||||
SetupOpenGLFunction(glDeleteShader);
|
||||
SetupOpenGLFunction(glDeleteVertexArrays);
|
||||
SetupOpenGLFunction(glDetachShader);
|
||||
SetupOpenGLFunction(glEnableVertexAttribArray);
|
||||
SetupOpenGLFunction(glFramebufferTexture2D);
|
||||
SetupOpenGLFunction(glGetAttribLocation);
|
||||
SetupOpenGLFunction(glGenBuffers);
|
||||
SetupOpenGLFunction(glGenFramebuffers);
|
||||
SetupOpenGLFunction(glGetProgramInfoLog);
|
||||
SetupOpenGLFunction(glGetProgramiv);
|
||||
SetupOpenGLFunction(glGetShaderInfoLog);
|
||||
SetupOpenGLFunction(glGetShaderiv);
|
||||
SetupOpenGLFunction(glGetUniformLocation);
|
||||
SetupOpenGLFunction(glGenVertexArrays);
|
||||
SetupOpenGLFunction(glLinkProgram);
|
||||
SetupOpenGLFunction(glShaderSource);
|
||||
SetupOpenGLFunction(glUniform1i);
|
||||
SetupOpenGLFunction(glUniform1iv);
|
||||
SetupOpenGLFunction(glUniform2i);
|
||||
SetupOpenGLFunction(glUniform2f);
|
||||
SetupOpenGLFunction(glUniform4f);
|
||||
SetupOpenGLFunction(glUniform4i);
|
||||
SetupOpenGLFunction(glUniform4fv);
|
||||
SetupOpenGLFunction(glUseProgram);
|
||||
SetupOpenGLFunction(glVertexAttribIPointer);
|
||||
SetupOpenGLFunction(glVertexAttribPointer);
|
||||
SetupOpenGLFunction(glDrawArraysInstanced);
|
||||
SetupOpenGLFunction(glVertexAttribDivisor);
|
||||
SetupOpenGLFunction(glBlendFuncSeparate);
|
||||
#define OPENGL_PROC(TYPE, PROC) \
|
||||
{ \
|
||||
PROC = (TYPE)SDL_GL_GetProcAddress(#PROC); \
|
||||
if (PROC == nullptr) \
|
||||
{ \
|
||||
return #PROC; \
|
||||
} \
|
||||
}
|
||||
#include "OpenGLAPIProc.h"
|
||||
#undef OPENGL_PROC
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -100,83 +100,9 @@ typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC )(GLenum target, GLint level, G
|
||||
typedef void (APIENTRYP PFNGLGETINTERGERVPROC )(GLenum pname, GLint * data);
|
||||
typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC )(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * img);
|
||||
|
||||
#ifdef NO_EXTERN_GLAPI
|
||||
// Defines the function pointers
|
||||
#define GLAPI_DECL
|
||||
#define GLAPI_SET = nullptr
|
||||
#else
|
||||
// Defines the functions as "extern"
|
||||
#define GLAPI_DECL extern
|
||||
#define GLAPI_SET
|
||||
#endif
|
||||
|
||||
// 1.1 function pointers
|
||||
GLAPI_DECL PFNGLACTIVETEXTUREPROC glActiveTexture GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBEGINPROC glBegin GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBINDTEXTUREPROC glBindTexture GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBLENDFUNCPROC glBlendFunc GLAPI_SET;
|
||||
GLAPI_DECL PFNGLCLEARPROC glClear GLAPI_SET;
|
||||
GLAPI_DECL PFNGLCLEARCOLORPROC glClearColor GLAPI_SET;
|
||||
GLAPI_DECL PFNGLCULLFACEPROC glCullFace GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDELETETEXTURESPROC glDeleteTextures GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDISABLEPROC glDisable GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDRAWARRAYSPROC glDrawArrays GLAPI_SET;
|
||||
GLAPI_DECL PFNGLENABLEPROC glEnable GLAPI_SET;
|
||||
GLAPI_DECL PFNGLENDPROC glEnd GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGENTEXTURESPROC glGenTextures GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETERRORPROC glGetError GLAPI_SET;
|
||||
GLAPI_DECL PFNGLPIXELSTOREIPROC glPixelStorei GLAPI_SET;
|
||||
GLAPI_DECL PFNGLREADPIXELSPROC glReadPixels GLAPI_SET;
|
||||
GLAPI_DECL PFNGLTEXIMAGE2DPROC glTexImage2D GLAPI_SET;
|
||||
GLAPI_DECL PFNGLTEXPARAMETERIPROC glTexParameteri GLAPI_SET;
|
||||
GLAPI_DECL PFNGLVIEWPORTPROC glViewport GLAPI_SET;
|
||||
GLAPI_DECL PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D GLAPI_SET;
|
||||
GLAPI_DECL PFNGLTEXIMAGE3DPROC glTexImage3D GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETINTERGERVPROC glGetIntegerv GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETTEXIMAGEPROC glGetTexImage GLAPI_SET;
|
||||
|
||||
// 2.0+ function pointers
|
||||
GLAPI_DECL PFNGLATTACHSHADERPROC glAttachShader GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBINDBUFFERPROC glBindBuffer GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBINDVERTEXARRAYPROC glBindVertexArray GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBUFFERDATAPROC glBufferData GLAPI_SET;
|
||||
GLAPI_DECL PFNGLCOMPILESHADERPROC glCompileShader GLAPI_SET;
|
||||
GLAPI_DECL PFNGLCREATEPROGRAMPROC glCreateProgram GLAPI_SET;
|
||||
GLAPI_DECL PFNGLCREATESHADERPROC glCreateShader GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDELETEBUFFERSPROC glDeleteBuffers GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDELETEPROGRAMPROC glDeleteProgram GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDELETESHADERPROC glDeleteShader GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDETACHSHADERPROC glDetachShader GLAPI_SET;
|
||||
GLAPI_DECL PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray GLAPI_SET;
|
||||
GLAPI_DECL PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGENBUFFERSPROC glGenBuffers GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETPROGRAMIVPROC glGetProgramiv GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETSHADERIVPROC glGetShaderiv GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation GLAPI_SET;
|
||||
GLAPI_DECL PFNGLGENVERTEXARRAYSPROC glGenVertexArrays GLAPI_SET;
|
||||
GLAPI_DECL PFNGLLINKPROGRAMPROC glLinkProgram GLAPI_SET;
|
||||
GLAPI_DECL PFNGLSHADERSOURCEPROC glShaderSource GLAPI_SET;
|
||||
GLAPI_DECL PFNGLUNIFORM1IPROC glUniform1i GLAPI_SET;
|
||||
GLAPI_DECL PFNGLUNIFORM1IVPROC glUniform1iv GLAPI_SET;
|
||||
GLAPI_DECL PFNGLUNIFORM2IPROC glUniform2i GLAPI_SET;
|
||||
GLAPI_DECL PFNGLUNIFORM2FPROC glUniform2f GLAPI_SET;
|
||||
GLAPI_DECL PFNGLUNIFORM4FPROC glUniform4f GLAPI_SET;
|
||||
GLAPI_DECL PFNGLUNIFORM4IPROC glUniform4i GLAPI_SET;
|
||||
GLAPI_DECL PFNGLUNIFORM4FVPROC glUniform4fv GLAPI_SET;
|
||||
GLAPI_DECL PFNGLUSEPROGRAMPROC glUseProgram GLAPI_SET;
|
||||
GLAPI_DECL PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer GLAPI_SET;
|
||||
GLAPI_DECL PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer GLAPI_SET;
|
||||
GLAPI_DECL PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced GLAPI_SET;
|
||||
GLAPI_DECL PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor GLAPI_SET;
|
||||
GLAPI_DECL PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate GLAPI_SET;
|
||||
#define OPENGL_PROC(TYPE, PROC) extern TYPE PROC;
|
||||
#include "OpenGLAPIProc.h"
|
||||
#undef OPENGL_PROC
|
||||
|
||||
#endif /* OPENGL_NO_LINK */
|
||||
|
||||
|
||||
87
src/openrct2-ui/drawing/engines/opengl/OpenGLAPIProc.h
Normal file
87
src/openrct2-ui/drawing/engines/opengl/OpenGLAPIProc.h
Normal file
@@ -0,0 +1,87 @@
|
||||
#pragma region Copyright (c) 2014-2017 OpenRCT2 Developers
|
||||
/*****************************************************************************
|
||||
* OpenRCT2, an open source clone of Roller Coaster Tycoon 2.
|
||||
*
|
||||
* OpenRCT2 is the work of many authors, a full list can be found in contributors.md
|
||||
* For more information, visit https://github.com/OpenRCT2/OpenRCT2
|
||||
*
|
||||
* OpenRCT2 is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* A full copy of the GNU General Public License can be found in licence.txt
|
||||
*****************************************************************************/
|
||||
#pragma endregion
|
||||
|
||||
#ifndef OPENGL_PROC
|
||||
#error "Do not include OpenGLAPIProc.h directly. Include OpenGLAPI.h instead."
|
||||
#endif
|
||||
|
||||
// 1.1 function pointers
|
||||
OPENGL_PROC(PFNGLACTIVETEXTUREPROC, glActiveTexture)
|
||||
OPENGL_PROC(PFNGLBEGINPROC, glBegin)
|
||||
OPENGL_PROC(PFNGLBINDTEXTUREPROC, glBindTexture)
|
||||
OPENGL_PROC(PFNGLBLENDFUNCPROC, glBlendFunc)
|
||||
OPENGL_PROC(PFNGLCLEARPROC, glClear)
|
||||
OPENGL_PROC(PFNGLCLEARCOLORPROC, glClearColor)
|
||||
OPENGL_PROC(PFNGLCULLFACEPROC, glCullFace)
|
||||
OPENGL_PROC(PFNGLDELETETEXTURESPROC, glDeleteTextures)
|
||||
OPENGL_PROC(PFNGLDISABLEPROC, glDisable)
|
||||
OPENGL_PROC(PFNGLDRAWARRAYSPROC, glDrawArrays)
|
||||
OPENGL_PROC(PFNGLENABLEPROC, glEnable)
|
||||
OPENGL_PROC(PFNGLENDPROC, glEnd)
|
||||
OPENGL_PROC(PFNGLGENTEXTURESPROC, glGenTextures)
|
||||
OPENGL_PROC(PFNGLGETERRORPROC, glGetError)
|
||||
OPENGL_PROC(PFNGLPIXELSTOREIPROC, glPixelStorei)
|
||||
OPENGL_PROC(PFNGLREADPIXELSPROC, glReadPixels)
|
||||
OPENGL_PROC(PFNGLTEXIMAGE2DPROC, glTexImage2D)
|
||||
OPENGL_PROC(PFNGLTEXPARAMETERIPROC, glTexParameteri)
|
||||
OPENGL_PROC(PFNGLVIEWPORTPROC, glViewport)
|
||||
OPENGL_PROC(PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D)
|
||||
OPENGL_PROC(PFNGLTEXIMAGE3DPROC, glTexImage3D)
|
||||
OPENGL_PROC(PFNGLGETINTERGERVPROC, glGetIntegerv)
|
||||
OPENGL_PROC(PFNGLGETTEXIMAGEPROC, glGetTexImage)
|
||||
|
||||
// 2.0+ function pointers
|
||||
OPENGL_PROC(PFNGLATTACHSHADERPROC, glAttachShader)
|
||||
OPENGL_PROC(PFNGLBINDBUFFERPROC, glBindBuffer)
|
||||
OPENGL_PROC(PFNGLBINDFRAGDATALOCATIONPROC, glBindFragDataLocation)
|
||||
OPENGL_PROC(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer)
|
||||
OPENGL_PROC(PFNGLBINDVERTEXARRAYPROC, glBindVertexArray)
|
||||
OPENGL_PROC(PFNGLBUFFERDATAPROC, glBufferData)
|
||||
OPENGL_PROC(PFNGLCOMPILESHADERPROC, glCompileShader)
|
||||
OPENGL_PROC(PFNGLCREATEPROGRAMPROC, glCreateProgram)
|
||||
OPENGL_PROC(PFNGLCREATESHADERPROC, glCreateShader)
|
||||
OPENGL_PROC(PFNGLDELETEBUFFERSPROC, glDeleteBuffers)
|
||||
OPENGL_PROC(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers)
|
||||
OPENGL_PROC(PFNGLDELETEPROGRAMPROC, glDeleteProgram)
|
||||
OPENGL_PROC(PFNGLDELETESHADERPROC, glDeleteShader)
|
||||
OPENGL_PROC(PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays)
|
||||
OPENGL_PROC(PFNGLDETACHSHADERPROC, glDetachShader)
|
||||
OPENGL_PROC(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray)
|
||||
OPENGL_PROC(PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D)
|
||||
OPENGL_PROC(PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation)
|
||||
OPENGL_PROC(PFNGLGENBUFFERSPROC, glGenBuffers)
|
||||
OPENGL_PROC(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers)
|
||||
OPENGL_PROC(PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog)
|
||||
OPENGL_PROC(PFNGLGETPROGRAMIVPROC, glGetProgramiv)
|
||||
OPENGL_PROC(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog)
|
||||
OPENGL_PROC(PFNGLGETSHADERIVPROC, glGetShaderiv)
|
||||
OPENGL_PROC(PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation)
|
||||
OPENGL_PROC(PFNGLGENVERTEXARRAYSPROC, glGenVertexArrays)
|
||||
OPENGL_PROC(PFNGLLINKPROGRAMPROC, glLinkProgram)
|
||||
OPENGL_PROC(PFNGLSHADERSOURCEPROC, glShaderSource)
|
||||
OPENGL_PROC(PFNGLUNIFORM1IPROC, glUniform1i)
|
||||
OPENGL_PROC(PFNGLUNIFORM1IVPROC, glUniform1iv)
|
||||
OPENGL_PROC(PFNGLUNIFORM2IPROC, glUniform2i)
|
||||
OPENGL_PROC(PFNGLUNIFORM2FPROC, glUniform2f)
|
||||
OPENGL_PROC(PFNGLUNIFORM4FPROC, glUniform4f)
|
||||
OPENGL_PROC(PFNGLUNIFORM4IPROC, glUniform4i)
|
||||
OPENGL_PROC(PFNGLUNIFORM4FVPROC, glUniform4fv)
|
||||
OPENGL_PROC(PFNGLUSEPROGRAMPROC, glUseProgram)
|
||||
OPENGL_PROC(PFNGLVERTEXATTRIBIPOINTERPROC, glVertexAttribIPointer)
|
||||
OPENGL_PROC(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer)
|
||||
OPENGL_PROC(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced)
|
||||
OPENGL_PROC(PFNGLVERTEXATTRIBDIVISORPROC, glVertexAttribDivisor)
|
||||
OPENGL_PROC(PFNGLBLENDFUNCSEPARATEPROC, glBlendFuncSeparate)
|
||||
Reference in New Issue
Block a user