From d7087c7405ca6d6105bc0d998949aea26fd2cd3b Mon Sep 17 00:00:00 2001 From: James R Date: Sun, 20 Feb 2022 03:22:25 -0800 Subject: [PATCH] pedantic: fix address loading function pointer casts --- src/hardware/r_opengl/r_opengl.c | 64 ++++++++++++++--------------- src/sdl/hwsym_sdl.c | 4 +- src/sdl/i_video.c | 70 ++++++++++++++++---------------- 3 files changed, 69 insertions(+), 69 deletions(-) diff --git a/src/hardware/r_opengl/r_opengl.c b/src/hardware/r_opengl/r_opengl.c index b2762dcbf..28dec4b08 100644 --- a/src/hardware/r_opengl/r_opengl.c +++ b/src/hardware/r_opengl/r_opengl.c @@ -457,7 +457,7 @@ boolean SetupGLfunc(void) { #ifndef STATIC_OPENGL #define GETOPENGLFUNC(func, proc) \ - func = GetGLFunc(#proc); \ + *(void**)&func = GetGLFunc(#proc); \ if (!func) \ { \ GL_MSG_Warning("failed to get OpenGL function: %s", #proc); \ @@ -900,46 +900,46 @@ static struct { void SetupGLFunc4(void) { - pglActiveTexture = GetGLFunc("glActiveTexture"); - pglMultiTexCoord2f = GetGLFunc("glMultiTexCoord2f"); - pglClientActiveTexture = GetGLFunc("glClientActiveTexture"); - pglMultiTexCoord2fv = GetGLFunc("glMultiTexCoord2fv"); + *(void**)&pglActiveTexture = GetGLFunc("glActiveTexture"); + *(void**)&pglMultiTexCoord2f = GetGLFunc("glMultiTexCoord2f"); + *(void**)&pglClientActiveTexture = GetGLFunc("glClientActiveTexture"); + *(void**)&pglMultiTexCoord2fv = GetGLFunc("glMultiTexCoord2fv"); /* 1.5 funcs */ - pglGenBuffers = GetGLFunc("glGenBuffers"); - pglBindBuffer = GetGLFunc("glBindBuffer"); - pglBufferData = GetGLFunc("glBufferData"); - pglDeleteBuffers = GetGLFunc("glDeleteBuffers"); + *(void**)&pglGenBuffers = GetGLFunc("glGenBuffers"); + *(void**)&pglBindBuffer = GetGLFunc("glBindBuffer"); + *(void**)&pglBufferData = GetGLFunc("glBufferData"); + *(void**)&pglDeleteBuffers = GetGLFunc("glDeleteBuffers"); /* 2.0 funcs */ - pglBlendEquation = GetGLFunc("glBlendEquation"); + *(void**)&pglBlendEquation = GetGLFunc("glBlendEquation"); #ifdef GL_SHADERS - pglCreateShader = GetGLFunc("glCreateShader"); - pglShaderSource = GetGLFunc("glShaderSource"); - pglCompileShader = GetGLFunc("glCompileShader"); - pglGetShaderiv = GetGLFunc("glGetShaderiv"); - pglGetShaderInfoLog = GetGLFunc("glGetShaderInfoLog"); - pglDeleteShader = GetGLFunc("glDeleteShader"); - pglCreateProgram = GetGLFunc("glCreateProgram"); - pglDeleteProgram = GetGLFunc("glDeleteProgram"); - pglAttachShader = GetGLFunc("glAttachShader"); - pglLinkProgram = GetGLFunc("glLinkProgram"); - pglGetProgramiv = GetGLFunc("glGetProgramiv"); - pglUseProgram = GetGLFunc("glUseProgram"); - pglUniform1i = GetGLFunc("glUniform1i"); - pglUniform1f = GetGLFunc("glUniform1f"); - pglUniform2f = GetGLFunc("glUniform2f"); - pglUniform3f = GetGLFunc("glUniform3f"); - pglUniform4f = GetGLFunc("glUniform4f"); - pglUniform1fv = GetGLFunc("glUniform1fv"); - pglUniform2fv = GetGLFunc("glUniform2fv"); - pglUniform3fv = GetGLFunc("glUniform3fv"); - pglGetUniformLocation = GetGLFunc("glGetUniformLocation"); + *(void**)&pglCreateShader = GetGLFunc("glCreateShader"); + *(void**)&pglShaderSource = GetGLFunc("glShaderSource"); + *(void**)&pglCompileShader = GetGLFunc("glCompileShader"); + *(void**)&pglGetShaderiv = GetGLFunc("glGetShaderiv"); + *(void**)&pglGetShaderInfoLog = GetGLFunc("glGetShaderInfoLog"); + *(void**)&pglDeleteShader = GetGLFunc("glDeleteShader"); + *(void**)&pglCreateProgram = GetGLFunc("glCreateProgram"); + *(void**)&pglDeleteProgram = GetGLFunc("glDeleteProgram"); + *(void**)&pglAttachShader = GetGLFunc("glAttachShader"); + *(void**)&pglLinkProgram = GetGLFunc("glLinkProgram"); + *(void**)&pglGetProgramiv = GetGLFunc("glGetProgramiv"); + *(void**)&pglUseProgram = GetGLFunc("glUseProgram"); + *(void**)&pglUniform1i = GetGLFunc("glUniform1i"); + *(void**)&pglUniform1f = GetGLFunc("glUniform1f"); + *(void**)&pglUniform2f = GetGLFunc("glUniform2f"); + *(void**)&pglUniform3f = GetGLFunc("glUniform3f"); + *(void**)&pglUniform4f = GetGLFunc("glUniform4f"); + *(void**)&pglUniform1fv = GetGLFunc("glUniform1fv"); + *(void**)&pglUniform2fv = GetGLFunc("glUniform2fv"); + *(void**)&pglUniform3fv = GetGLFunc("glUniform3fv"); + *(void**)&pglGetUniformLocation = GetGLFunc("glGetUniformLocation"); #endif // GLU - pgluBuild2DMipmaps = GetGLFunc("gluBuild2DMipmaps"); + *(void**)&pgluBuild2DMipmaps = GetGLFunc("gluBuild2DMipmaps"); } // jimita diff --git a/src/sdl/hwsym_sdl.c b/src/sdl/hwsym_sdl.c index 96e3d7d69..0baf05e86 100644 --- a/src/sdl/hwsym_sdl.c +++ b/src/sdl/hwsym_sdl.c @@ -57,7 +57,7 @@ #define GETFUNC(func) \ else if (0 == strcmp(#func, funcName)) \ - funcPointer = &func \ + funcPointer = FUNCPTRCAST(&func) \ // // /** \brief The *hwSym function @@ -75,7 +75,7 @@ void *hwSym(const char *funcName,void *handle) void *funcPointer = NULL; #ifdef HWRENDER if (0 == strcmp("SetPalette", funcName)) - funcPointer = &OglSdlSetPalette; + funcPointer = FUNCPTRCAST(&OglSdlSetPalette); GETFUNC(Init); GETFUNC(Draw2DLine); diff --git a/src/sdl/i_video.c b/src/sdl/i_video.c index c04eab8bc..02c75ebb8 100644 --- a/src/sdl/i_video.c +++ b/src/sdl/i_video.c @@ -1971,43 +1971,43 @@ void VID_StartupOpenGL(void) if (!glstartup) { CONS_Printf("VID_StartupOpenGL()...\n"); - HWD.pfnInit = hwSym("Init",NULL); - HWD.pfnFinishUpdate = NULL; - HWD.pfnDraw2DLine = hwSym("Draw2DLine",NULL); - HWD.pfnDrawPolygon = hwSym("DrawPolygon",NULL); - HWD.pfnDrawIndexedTriangles = hwSym("DrawIndexedTriangles",NULL); - HWD.pfnRenderSkyDome = hwSym("RenderSkyDome",NULL); - HWD.pfnSetBlend = hwSym("SetBlend",NULL); - HWD.pfnClearBuffer = hwSym("ClearBuffer",NULL); - HWD.pfnSetTexture = hwSym("SetTexture",NULL); - HWD.pfnUpdateTexture = hwSym("UpdateTexture",NULL); - HWD.pfnDeleteTexture = hwSym("DeleteTexture",NULL); - HWD.pfnReadRect = hwSym("ReadRect",NULL); - HWD.pfnGClipRect = hwSym("GClipRect",NULL); - HWD.pfnClearMipMapCache = hwSym("ClearMipMapCache",NULL); - HWD.pfnSetSpecialState = hwSym("SetSpecialState",NULL); - HWD.pfnSetPalette = hwSym("SetPalette",NULL); - HWD.pfnGetTextureUsed = hwSym("GetTextureUsed",NULL); - HWD.pfnDrawModel = hwSym("DrawModel",NULL); - HWD.pfnCreateModelVBOs = hwSym("CreateModelVBOs",NULL); - HWD.pfnSetTransform = hwSym("SetTransform",NULL); - HWD.pfnPostImgRedraw = hwSym("PostImgRedraw",NULL); - HWD.pfnFlushScreenTextures=hwSym("FlushScreenTextures",NULL); - HWD.pfnStartScreenWipe = hwSym("StartScreenWipe",NULL); - HWD.pfnEndScreenWipe = hwSym("EndScreenWipe",NULL); - HWD.pfnDoScreenWipe = hwSym("DoScreenWipe",NULL); - HWD.pfnDrawIntermissionBG=hwSym("DrawIntermissionBG",NULL); - HWD.pfnMakeScreenTexture= hwSym("MakeScreenTexture",NULL); - HWD.pfnMakeScreenFinalTexture=hwSym("MakeScreenFinalTexture",NULL); - HWD.pfnDrawScreenFinalTexture=hwSym("DrawScreenFinalTexture",NULL); + *(void**)&HWD.pfnInit = hwSym("Init",NULL); + *(void**)&HWD.pfnFinishUpdate = NULL; + *(void**)&HWD.pfnDraw2DLine = hwSym("Draw2DLine",NULL); + *(void**)&HWD.pfnDrawPolygon = hwSym("DrawPolygon",NULL); + *(void**)&HWD.pfnDrawIndexedTriangles = hwSym("DrawIndexedTriangles",NULL); + *(void**)&HWD.pfnRenderSkyDome = hwSym("RenderSkyDome",NULL); + *(void**)&HWD.pfnSetBlend = hwSym("SetBlend",NULL); + *(void**)&HWD.pfnClearBuffer = hwSym("ClearBuffer",NULL); + *(void**)&HWD.pfnSetTexture = hwSym("SetTexture",NULL); + *(void**)&HWD.pfnUpdateTexture = hwSym("UpdateTexture",NULL); + *(void**)&HWD.pfnDeleteTexture = hwSym("DeleteTexture",NULL); + *(void**)&HWD.pfnReadRect = hwSym("ReadRect",NULL); + *(void**)&HWD.pfnGClipRect = hwSym("GClipRect",NULL); + *(void**)&HWD.pfnClearMipMapCache = hwSym("ClearMipMapCache",NULL); + *(void**)&HWD.pfnSetSpecialState = hwSym("SetSpecialState",NULL); + *(void**)&HWD.pfnSetPalette = hwSym("SetPalette",NULL); + *(void**)&HWD.pfnGetTextureUsed = hwSym("GetTextureUsed",NULL); + *(void**)&HWD.pfnDrawModel = hwSym("DrawModel",NULL); + *(void**)&HWD.pfnCreateModelVBOs = hwSym("CreateModelVBOs",NULL); + *(void**)&HWD.pfnSetTransform = hwSym("SetTransform",NULL); + *(void**)&HWD.pfnPostImgRedraw = hwSym("PostImgRedraw",NULL); + *(void**)&HWD.pfnFlushScreenTextures=hwSym("FlushScreenTextures",NULL); + *(void**)&HWD.pfnStartScreenWipe = hwSym("StartScreenWipe",NULL); + *(void**)&HWD.pfnEndScreenWipe = hwSym("EndScreenWipe",NULL); + *(void**)&HWD.pfnDoScreenWipe = hwSym("DoScreenWipe",NULL); + *(void**)&HWD.pfnDrawIntermissionBG=hwSym("DrawIntermissionBG",NULL); + *(void**)&HWD.pfnMakeScreenTexture= hwSym("MakeScreenTexture",NULL); + *(void**)&HWD.pfnMakeScreenFinalTexture=hwSym("MakeScreenFinalTexture",NULL); + *(void**)&HWD.pfnDrawScreenFinalTexture=hwSym("DrawScreenFinalTexture",NULL); - HWD.pfnCompileShaders = hwSym("CompileShaders",NULL); - HWD.pfnCleanShaders = hwSym("CleanShaders",NULL); - HWD.pfnSetShader = hwSym("SetShader",NULL); - HWD.pfnUnSetShader = hwSym("UnSetShader",NULL); + *(void**)&HWD.pfnCompileShaders = hwSym("CompileShaders",NULL); + *(void**)&HWD.pfnCleanShaders = hwSym("CleanShaders",NULL); + *(void**)&HWD.pfnSetShader = hwSym("SetShader",NULL); + *(void**)&HWD.pfnUnSetShader = hwSym("UnSetShader",NULL); - HWD.pfnSetShaderInfo = hwSym("SetShaderInfo",NULL); - HWD.pfnLoadCustomShader = hwSym("LoadCustomShader",NULL); + *(void**)&HWD.pfnSetShaderInfo = hwSym("SetShaderInfo",NULL); + *(void**)&HWD.pfnLoadCustomShader = hwSym("LoadCustomShader",NULL); vid.glstate = HWD.pfnInit() ? VID_GL_LIBRARY_LOADED : VID_GL_LIBRARY_ERROR; // let load the OpenGL library