summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Faye-Lund <erik.faye-lund@collabora.com>2023-02-27 13:05:49 +0100
committerErik Faye-Lund <erik.faye-lund@collabora.com>2023-03-06 09:56:20 +0100
commit84ced0fac5203e8ca4a4f86f3d3377db3a544e9d (patch)
tree5e8a1c1dd97abe1b263ba2ca76e9b3ca967a7f3a
parentafce83c2b9778d2f498de77238a9998b5714c00e (diff)
downloadmesa-demos-84ced0fac5203e8ca4a4f86f3d3377db3a544e9d.tar.gz
util: do not call gl2 through extra func-ptrs
Since we no longer support loading ARB shaders, using these function pointers makes no sense. They can only ever resolve to one function, and we already load that one through GLAD. Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
-rw-r--r--src/glsl/blinking-teapot.c2
-rw-r--r--src/glsl/brick.c8
-rw-r--r--src/glsl/geom-sprites.c4
-rw-r--r--src/glsl/geom-stipple-lines.c4
-rw-r--r--src/glsl/geom-wide-lines.c4
-rw-r--r--src/util/shaderutil.c111
-rw-r--r--src/util/shaderutil.h23
7 files changed, 45 insertions, 111 deletions
diff --git a/src/glsl/blinking-teapot.c b/src/glsl/blinking-teapot.c
index 50aabe7e..62451e94 100644
--- a/src/glsl/blinking-teapot.c
+++ b/src/glsl/blinking-teapot.c
@@ -67,7 +67,7 @@ init_opengl (void)
fshad_id = CompileShaderFile (GL_FRAGMENT_SHADER, "blinking-teapot.frag");
prog_id = LinkShaders (vshad_id, fshad_id);
- UseProgram (prog_id);
+ glUseProgram (prog_id);
reshape (680, 400);
diff --git a/src/glsl/brick.c b/src/glsl/brick.c
index 0b8d08e0..00d83492 100644
--- a/src/glsl/brick.c
+++ b/src/glsl/brick.c
@@ -80,9 +80,9 @@ Reshape(int width, int height)
static void
CleanUp(void)
{
- DeleteShader(fragShader);
- DeleteShader(vertShader);
- DeleteProgram(program);
+ glDeleteShader(fragShader);
+ glDeleteShader(vertShader);
+ glDeleteProgram(program);
glutDestroyWindow(win);
}
@@ -146,7 +146,7 @@ Init(void)
fragShader = CompileShaderFile(GL_FRAGMENT_SHADER, FragProgFile);
program = LinkShaders(vertShader, fragShader);
- UseProgram(program);
+ glUseProgram(program);
SetUniformValues(program, Uniforms);
PrintUniforms(Uniforms);
diff --git a/src/glsl/geom-sprites.c b/src/glsl/geom-sprites.c
index 9c5cee96..83edee7e 100644
--- a/src/glsl/geom-sprites.c
+++ b/src/glsl/geom-sprites.c
@@ -248,11 +248,11 @@ Init(void)
/* check link */
{
GLint stat;
- GetProgramiv(Program, GL_LINK_STATUS, &stat);
+ glGetProgramiv(Program, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- GetProgramInfoLog(Program, 1000, &len, log);
+ glGetProgramInfoLog(Program, 1000, &len, log);
fprintf(stderr, "Shader link error:\n%s\n", log);
}
}
diff --git a/src/glsl/geom-stipple-lines.c b/src/glsl/geom-stipple-lines.c
index 6168587b..6f63badc 100644
--- a/src/glsl/geom-stipple-lines.c
+++ b/src/glsl/geom-stipple-lines.c
@@ -280,11 +280,11 @@ Init(void)
/* check link */
{
GLint stat;
- GetProgramiv(Program, GL_LINK_STATUS, &stat);
+ glGetProgramiv(Program, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- GetProgramInfoLog(Program, 1000, &len, log);
+ glGetProgramInfoLog(Program, 1000, &len, log);
fprintf(stderr, "Shader link error:\n%s\n", log);
}
}
diff --git a/src/glsl/geom-wide-lines.c b/src/glsl/geom-wide-lines.c
index ebcbb32f..7c4f30ff 100644
--- a/src/glsl/geom-wide-lines.c
+++ b/src/glsl/geom-wide-lines.c
@@ -269,11 +269,11 @@ Init(void)
/* check link */
{
GLint stat;
- GetProgramiv(Program, GL_LINK_STATUS, &stat);
+ glGetProgramiv(Program, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- GetProgramInfoLog(Program, 1000, &len, log);
+ glGetProgramInfoLog(Program, 1000, &len, log);
fprintf(stderr, "Shader link error:\n%s\n", log);
}
}
diff --git a/src/util/shaderutil.c b/src/util/shaderutil.c
index 51d0839b..c1b73721 100644
--- a/src/util/shaderutil.c
+++ b/src/util/shaderutil.c
@@ -20,53 +20,10 @@ static GLdouble CompileTime = 0.0;
/** time to linke previous program */
static GLdouble LinkTime = 0.0;
-PFNGLCREATESHADERPROC CreateShader = NULL;
-PFNGLDELETESHADERPROC DeleteShader = NULL;
-PFNGLSHADERSOURCEPROC ShaderSource = NULL;
-PFNGLGETSHADERIVPROC GetShaderiv = NULL;
-PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog = NULL;
-PFNGLCREATEPROGRAMPROC CreateProgram = NULL;
-PFNGLDELETEPROGRAMPROC DeleteProgram = NULL;
-PFNGLATTACHSHADERPROC AttachShader = NULL;
-PFNGLLINKPROGRAMPROC LinkProgram = NULL;
-PFNGLUSEPROGRAMPROC UseProgram = NULL;
-PFNGLGETPROGRAMIVPROC GetProgramiv = NULL;
-PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog = NULL;
-PFNGLVALIDATEPROGRAMPROC ValidateProgram = NULL;
-PFNGLUNIFORM1IPROC Uniform1i = NULL;
-PFNGLUNIFORM1FVPROC Uniform1fv = NULL;
-PFNGLUNIFORM2FVPROC Uniform2fv = NULL;
-PFNGLUNIFORM3FVPROC Uniform3fv = NULL;
-PFNGLUNIFORM4FVPROC Uniform4fv = NULL;
-PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv = NULL;
-PFNGLGETACTIVEATTRIBPROC GetActiveAttrib = NULL;
-PFNGLGETATTRIBLOCATIONPROC GetAttribLocation = NULL;
-
GLboolean
ShadersSupported(void)
{
if (GLAD_GL_VERSION_2_0) {
- CreateShader = glCreateShader;
- DeleteShader = glDeleteShader;
- ShaderSource = glShaderSource;
- GetShaderiv = glGetShaderiv;
- GetShaderInfoLog = glGetShaderInfoLog;
- CreateProgram = glCreateProgram;
- DeleteProgram = glDeleteProgram;
- AttachShader = glAttachShader;
- LinkProgram = glLinkProgram;
- UseProgram = glUseProgram;
- GetProgramiv = glGetProgramiv;
- GetProgramInfoLog = glGetProgramInfoLog;
- ValidateProgram = glValidateProgram;
- Uniform1i = glUniform1i;
- Uniform1fv = glUniform1fv;
- Uniform2fv = glUniform2fv;
- Uniform3fv = glUniform3fv;
- Uniform4fv = glUniform4fv;
- UniformMatrix4fv = glUniformMatrix4fv;
- GetActiveAttrib = glGetActiveAttrib;
- GetAttribLocation = glGetAttribLocation;
return GL_TRUE;
}
fprintf(stderr, "Sorry, GLSL not supported with this OpenGL.\n");
@@ -81,8 +38,8 @@ CompileShaderText(GLenum shaderType, const char *text)
GLint stat;
GLdouble t0, t1;
- shader = CreateShader(shaderType);
- ShaderSource(shader, 1, (const GLchar **) &text, NULL);
+ shader = glCreateShader(shaderType);
+ glShaderSource(shader, 1, (const GLchar **) &text, NULL);
t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
glCompileShader(shader);
@@ -90,11 +47,11 @@ CompileShaderText(GLenum shaderType, const char *text)
CompileTime = t1 - t0;
- GetShaderiv(shader, GL_COMPILE_STATUS, &stat);
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- GetShaderInfoLog(shader, 1000, &len, log);
+ glGetShaderInfoLog(shader, 1000, &len, log);
fprintf(stderr, "Error: problem compiling shader: %s\n", log);
exit(1);
}
@@ -153,20 +110,20 @@ LinkShaders(GLuint vertShader, GLuint fragShader)
GLuint
LinkShaders3(GLuint vertShader, GLuint geomShader, GLuint fragShader)
{
- GLuint program = CreateProgram();
+ GLuint program = glCreateProgram();
GLdouble t0, t1;
assert(vertShader || fragShader);
if (vertShader)
- AttachShader(program, vertShader);
+ glAttachShader(program, vertShader);
if (geomShader)
- AttachShader(program, geomShader);
+ glAttachShader(program, geomShader);
if (fragShader)
- AttachShader(program, fragShader);
+ glAttachShader(program, fragShader);
t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- LinkProgram(program);
+ glLinkProgram(program);
t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
LinkTime = t1 - t0;
@@ -174,11 +131,11 @@ LinkShaders3(GLuint vertShader, GLuint geomShader, GLuint fragShader)
/* check link */
{
GLint stat;
- GetProgramiv(program, GL_LINK_STATUS, &stat);
+ glGetProgramiv(program, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- GetProgramInfoLog(program, 1000, &len, log);
+ glGetProgramInfoLog(program, 1000, &len, log);
fprintf(stderr, "Shader link error:\n%s\n", log);
return 0;
}
@@ -192,24 +149,24 @@ GLuint
LinkShaders3WithGeometryInfo(GLuint vertShader, GLuint geomShader, GLuint fragShader,
GLint verticesOut, GLenum inputType, GLenum outputType)
{
- GLuint program = CreateProgram();
+ GLuint program = glCreateProgram();
GLdouble t0, t1;
assert(vertShader || fragShader);
if (vertShader)
- AttachShader(program, vertShader);
+ glAttachShader(program, vertShader);
if (geomShader) {
- AttachShader(program, geomShader);
+ glAttachShader(program, geomShader);
glProgramParameteri(program, GL_GEOMETRY_VERTICES_OUT, verticesOut);
glProgramParameteri(program, GL_GEOMETRY_INPUT_TYPE, inputType);
glProgramParameteri(program, GL_GEOMETRY_OUTPUT_TYPE, outputType);
}
if (fragShader)
- AttachShader(program, fragShader);
+ glAttachShader(program, fragShader);
t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- LinkProgram(program);
+ glLinkProgram(program);
t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
LinkTime = t1 - t0;
@@ -217,11 +174,11 @@ LinkShaders3WithGeometryInfo(GLuint vertShader, GLuint geomShader, GLuint fragSh
/* check link */
{
GLint stat;
- GetProgramiv(program, GL_LINK_STATUS, &stat);
+ glGetProgramiv(program, GL_LINK_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- GetProgramInfoLog(program, 1000, &len, log);
+ glGetProgramInfoLog(program, 1000, &len, log);
fprintf(stderr, "Shader link error:\n%s\n", log);
return 0;
}
@@ -235,13 +192,13 @@ GLboolean
ValidateShaderProgram(GLuint program)
{
GLint stat;
- ValidateProgram(program);
- GetProgramiv(program, GL_VALIDATE_STATUS, &stat);
+ glValidateProgram(program);
+ glGetProgramiv(program, GL_VALIDATE_STATUS, &stat);
if (!stat) {
GLchar log[1000];
GLsizei len;
- GetProgramInfoLog(program, 1000, &len, log);
+ glGetProgramInfoLog(program, 1000, &len, log);
fprintf(stderr, "Program validation error:\n%s\n", log);
fflush(stderr);
return 0;
@@ -288,24 +245,24 @@ SetUniformValues(GLuint program, struct uniform_info uniforms[])
case GL_SAMPLER_1D_ARRAY_SHADOW:
case GL_SAMPLER_2D_ARRAY_SHADOW:
assert(uniforms[i].value[0] >= 0.0F);
- Uniform1i(uniforms[i].location,
+ glUniform1i(uniforms[i].location,
(GLint) uniforms[i].value[0]);
break;
case GL_FLOAT:
- Uniform1fv(uniforms[i].location, 1, uniforms[i].value);
+ glUniform1fv(uniforms[i].location, 1, uniforms[i].value);
break;
case GL_FLOAT_VEC2:
- Uniform2fv(uniforms[i].location, 1, uniforms[i].value);
+ glUniform2fv(uniforms[i].location, 1, uniforms[i].value);
break;
case GL_FLOAT_VEC3:
- Uniform3fv(uniforms[i].location, 1, uniforms[i].value);
+ glUniform3fv(uniforms[i].location, 1, uniforms[i].value);
break;
case GL_FLOAT_VEC4:
- Uniform4fv(uniforms[i].location, 1, uniforms[i].value);
+ glUniform4fv(uniforms[i].location, 1, uniforms[i].value);
break;
case GL_FLOAT_MAT4:
- UniformMatrix4fv(uniforms[i].location, 1, GL_FALSE,
- uniforms[i].value);
+ glUniformMatrix4fv(uniforms[i].location, 1, GL_FALSE,
+ uniforms[i].value);
break;
default:
if (strncmp(uniforms[i].name, "gl_", 3) == 0) {
@@ -327,8 +284,8 @@ GetUniforms(GLuint program, struct uniform_info uniforms[])
{
GLint n, max, i;
- GetProgramiv(program, GL_ACTIVE_UNIFORMS, &n);
- GetProgramiv(program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &max);
+ glGetProgramiv(program, GL_ACTIVE_UNIFORMS, &n);
+ glGetProgramiv(program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &max);
for (i = 0; i < n; i++) {
GLint size, len;
@@ -377,20 +334,20 @@ GetAttribs(GLuint program, struct attrib_info attribs[])
{
GLint n, max, i;
- GetProgramiv(program, GL_ACTIVE_ATTRIBUTES, &n);
- GetProgramiv(program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &max);
+ glGetProgramiv(program, GL_ACTIVE_ATTRIBUTES, &n);
+ glGetProgramiv(program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &max);
for (i = 0; i < n; i++) {
GLint size, len;
GLenum type;
char name[100];
- GetActiveAttrib(program, i, 100, &len, &size, &type, name);
+ glGetActiveAttrib(program, i, 100, &len, &size, &type, name);
attribs[i].name = strdup(name);
attribs[i].size = size;
attribs[i].type = type;
- attribs[i].location = GetAttribLocation(program, name);
+ attribs[i].location = glGetAttribLocation(program, name);
}
attribs[i].name = NULL; /* end of list */
diff --git a/src/util/shaderutil.h b/src/util/shaderutil.h
index 300a35ba..08f86f5b 100644
--- a/src/util/shaderutil.h
+++ b/src/util/shaderutil.h
@@ -71,29 +71,6 @@ GetAttribs(GLuint program, struct attrib_info attribs[]);
extern void
PrintAttribs(const struct attrib_info attribs[]);
-/* These pointers are only valid after calling ShadersSupported.
- */
-extern PFNGLCREATESHADERPROC CreateShader;
-extern PFNGLDELETESHADERPROC DeleteShader;
-extern PFNGLSHADERSOURCEPROC ShaderSource;
-extern PFNGLGETSHADERIVPROC GetShaderiv;
-extern PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog;
-extern PFNGLCREATEPROGRAMPROC CreateProgram;
-extern PFNGLDELETEPROGRAMPROC DeleteProgram;
-extern PFNGLATTACHSHADERPROC AttachShader;
-extern PFNGLLINKPROGRAMPROC LinkProgram;
-extern PFNGLUSEPROGRAMPROC UseProgram;
-extern PFNGLGETPROGRAMIVPROC GetProgramiv;
-extern PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog;
-extern PFNGLVALIDATEPROGRAMARBPROC ValidateProgramARB;
-extern PFNGLUNIFORM1IPROC Uniform1i;
-extern PFNGLUNIFORM1FVPROC Uniform1fv;
-extern PFNGLUNIFORM2FVPROC Uniform2fv;
-extern PFNGLUNIFORM3FVPROC Uniform3fv;
-extern PFNGLUNIFORM4FVPROC Uniform4fv;
-extern PFNGLGETACTIVEATTRIBPROC GetActiveAttrib;
-extern PFNGLGETATTRIBLOCATIONPROC GetAttribLocation;
-
#ifdef __cplusplus
}
#endif