Backends: OpenGL3: add GL_NEAREST and samplers functions in loader.

This commit is contained in:
ocornut
2025-09-08 16:56:37 +02:00
parent bf52f4a83c
commit 2841c5135d

View File

@@ -180,6 +180,7 @@ typedef khronos_uint8_t GLubyte;
#define GL_RENDERER 0x1F01 #define GL_RENDERER 0x1F01
#define GL_VERSION 0x1F02 #define GL_VERSION 0x1F02
#define GL_EXTENSIONS 0x1F03 #define GL_EXTENSIONS 0x1F03
#define GL_NEAREST 0x2600
#define GL_LINEAR 0x2601 #define GL_LINEAR 0x2601
#define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MAG_FILTER 0x2800
#define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_MIN_FILTER 0x2801
@@ -400,9 +401,15 @@ GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum
#ifndef GL_VERSION_3_3 #ifndef GL_VERSION_3_3
#define GL_VERSION_3_3 1 #define GL_VERSION_3_3 1
#define GL_SAMPLER_BINDING 0x8919 #define GL_SAMPLER_BINDING 0x8919
typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
#ifdef GL_GLEXT_PROTOTYPES #ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers);
GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers);
GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler);
GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param);
#endif #endif
#endif /* GL_VERSION_3_3 */ #endif /* GL_VERSION_3_3 */
#ifndef GL_VERSION_4_1 #ifndef GL_VERSION_4_1
@@ -483,7 +490,7 @@ GL3W_API GL3WglProc imgl3wGetProcAddress(const char *proc);
/* gl3w internal state */ /* gl3w internal state */
union ImGL3WProcs { union ImGL3WProcs {
GL3WglProc ptr[60]; GL3WglProc ptr[63];
struct { struct {
PFNGLACTIVETEXTUREPROC ActiveTexture; PFNGLACTIVETEXTUREPROC ActiveTexture;
PFNGLATTACHSHADERPROC AttachShader; PFNGLATTACHSHADERPROC AttachShader;
@@ -503,6 +510,7 @@ union ImGL3WProcs {
PFNGLCREATESHADERPROC CreateShader; PFNGLCREATESHADERPROC CreateShader;
PFNGLDELETEBUFFERSPROC DeleteBuffers; PFNGLDELETEBUFFERSPROC DeleteBuffers;
PFNGLDELETEPROGRAMPROC DeleteProgram; PFNGLDELETEPROGRAMPROC DeleteProgram;
PFNGLDELETESAMPLERSPROC DeleteSamplers;
PFNGLDELETESHADERPROC DeleteShader; PFNGLDELETESHADERPROC DeleteShader;
PFNGLDELETETEXTURESPROC DeleteTextures; PFNGLDELETETEXTURESPROC DeleteTextures;
PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays;
@@ -515,6 +523,7 @@ union ImGL3WProcs {
PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray;
PFNGLFLUSHPROC Flush; PFNGLFLUSHPROC Flush;
PFNGLGENBUFFERSPROC GenBuffers; PFNGLGENBUFFERSPROC GenBuffers;
PFNGLGENSAMPLERSPROC GenSamplers;
PFNGLGENTEXTURESPROC GenTextures; PFNGLGENTEXTURESPROC GenTextures;
PFNGLGENVERTEXARRAYSPROC GenVertexArrays; PFNGLGENVERTEXARRAYSPROC GenVertexArrays;
PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; PFNGLGETATTRIBLOCATIONPROC GetAttribLocation;
@@ -535,6 +544,7 @@ union ImGL3WProcs {
PFNGLPIXELSTOREIPROC PixelStorei; PFNGLPIXELSTOREIPROC PixelStorei;
PFNGLPOLYGONMODEPROC PolygonMode; PFNGLPOLYGONMODEPROC PolygonMode;
PFNGLREADPIXELSPROC ReadPixels; PFNGLREADPIXELSPROC ReadPixels;
PFNGLSAMPLERPARAMETERIPROC SamplerParameteri;
PFNGLSCISSORPROC Scissor; PFNGLSCISSORPROC Scissor;
PFNGLSHADERSOURCEPROC ShaderSource; PFNGLSHADERSOURCEPROC ShaderSource;
PFNGLTEXIMAGE2DPROC TexImage2D; PFNGLTEXIMAGE2DPROC TexImage2D;
@@ -569,6 +579,7 @@ GL3W_API extern union ImGL3WProcs imgl3wProcs;
#define glCreateShader imgl3wProcs.gl.CreateShader #define glCreateShader imgl3wProcs.gl.CreateShader
#define glDeleteBuffers imgl3wProcs.gl.DeleteBuffers #define glDeleteBuffers imgl3wProcs.gl.DeleteBuffers
#define glDeleteProgram imgl3wProcs.gl.DeleteProgram #define glDeleteProgram imgl3wProcs.gl.DeleteProgram
#define glDeleteSamplers imgl3wProcs.gl.DeleteSamplers
#define glDeleteShader imgl3wProcs.gl.DeleteShader #define glDeleteShader imgl3wProcs.gl.DeleteShader
#define glDeleteTextures imgl3wProcs.gl.DeleteTextures #define glDeleteTextures imgl3wProcs.gl.DeleteTextures
#define glDeleteVertexArrays imgl3wProcs.gl.DeleteVertexArrays #define glDeleteVertexArrays imgl3wProcs.gl.DeleteVertexArrays
@@ -581,6 +592,7 @@ GL3W_API extern union ImGL3WProcs imgl3wProcs;
#define glEnableVertexAttribArray imgl3wProcs.gl.EnableVertexAttribArray #define glEnableVertexAttribArray imgl3wProcs.gl.EnableVertexAttribArray
#define glFlush imgl3wProcs.gl.Flush #define glFlush imgl3wProcs.gl.Flush
#define glGenBuffers imgl3wProcs.gl.GenBuffers #define glGenBuffers imgl3wProcs.gl.GenBuffers
#define glGenSamplers imgl3wProcs.gl.GenSamplers
#define glGenTextures imgl3wProcs.gl.GenTextures #define glGenTextures imgl3wProcs.gl.GenTextures
#define glGenVertexArrays imgl3wProcs.gl.GenVertexArrays #define glGenVertexArrays imgl3wProcs.gl.GenVertexArrays
#define glGetAttribLocation imgl3wProcs.gl.GetAttribLocation #define glGetAttribLocation imgl3wProcs.gl.GetAttribLocation
@@ -601,6 +613,7 @@ GL3W_API extern union ImGL3WProcs imgl3wProcs;
#define glPixelStorei imgl3wProcs.gl.PixelStorei #define glPixelStorei imgl3wProcs.gl.PixelStorei
#define glPolygonMode imgl3wProcs.gl.PolygonMode #define glPolygonMode imgl3wProcs.gl.PolygonMode
#define glReadPixels imgl3wProcs.gl.ReadPixels #define glReadPixels imgl3wProcs.gl.ReadPixels
#define glSamplerParameteri imgl3wProcs.gl.SamplerParameteri
#define glScissor imgl3wProcs.gl.Scissor #define glScissor imgl3wProcs.gl.Scissor
#define glShaderSource imgl3wProcs.gl.ShaderSource #define glShaderSource imgl3wProcs.gl.ShaderSource
#define glTexImage2D imgl3wProcs.gl.TexImage2D #define glTexImage2D imgl3wProcs.gl.TexImage2D
@@ -870,6 +883,7 @@ static const char *proc_names[] = {
"glCreateShader", "glCreateShader",
"glDeleteBuffers", "glDeleteBuffers",
"glDeleteProgram", "glDeleteProgram",
"glDeleteSamplers",
"glDeleteShader", "glDeleteShader",
"glDeleteTextures", "glDeleteTextures",
"glDeleteVertexArrays", "glDeleteVertexArrays",
@@ -882,6 +896,7 @@ static const char *proc_names[] = {
"glEnableVertexAttribArray", "glEnableVertexAttribArray",
"glFlush", "glFlush",
"glGenBuffers", "glGenBuffers",
"glGenSamplers",
"glGenTextures", "glGenTextures",
"glGenVertexArrays", "glGenVertexArrays",
"glGetAttribLocation", "glGetAttribLocation",
@@ -902,6 +917,7 @@ static const char *proc_names[] = {
"glPixelStorei", "glPixelStorei",
"glPolygonMode", "glPolygonMode",
"glReadPixels", "glReadPixels",
"glSamplerParameteri",
"glScissor", "glScissor",
"glShaderSource", "glShaderSource",
"glTexImage2D", "glTexImage2D",