From 90e72bf4e2696229ffe09cd208d5420dcb9d089a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 30 Jan 2018 18:08:34 -0800 Subject: [PATCH] Fixed ISO C99 compatibility SDL now builds with gcc 7.2 with the following command line options: -Wall -pedantic-errors -Wno-deprecated-declarations -Wno-overlength-strings --std=c99 --- src/audio/SDL_audio.c | 10 ++-- src/audio/directsound/SDL_directsound.c | 2 +- src/audio/wasapi/SDL_wasapi_win32.c | 4 +- src/core/linux/SDL_dbus.c | 2 +- src/core/windows/SDL_xinput.c | 10 ++-- src/dynapi/SDL_dynapi.c | 2 +- src/events/SDL_quit.c | 4 +- src/filesystem/windows/SDL_sysfilesystem.c | 2 +- src/render/direct3d11/SDL_render_d3d11.c | 4 +- src/render/opengl/SDL_render_gl.c | 31 +++++------ src/render/opengl/SDL_shaders_gl.c | 28 +++++----- src/render/opengles/SDL_render_gles.c | 4 +- src/render/opengles2/SDL_render_gles2.c | 7 ++- src/thread/pthread/SDL_systhread.c | 6 +-- src/thread/windows/SDL_systhread.c | 2 +- src/video/SDL_blit.c | 4 +- src/video/SDL_egl.c | 4 +- src/video/SDL_sysvideo.h | 4 +- src/video/SDL_video.c | 21 ++++---- src/video/SDL_vulkan_internal.h | 3 ++ src/video/android/SDL_androidvulkan.c | 9 ++-- src/video/cocoa/SDL_cocoavulkan.m | 6 +-- src/video/mir/SDL_mirdyn.c | 2 +- src/video/mir/SDL_mirvideo.c | 5 +- src/video/mir/SDL_mirvulkan.c | 10 ++-- src/video/uikit/SDL_uikitvulkan.m | 3 +- src/video/wayland/SDL_waylanddatamanager.c | 6 +-- src/video/wayland/SDL_waylanddyn.c | 2 +- src/video/wayland/SDL_waylandopengles.h | 1 + src/video/wayland/SDL_waylandvulkan.c | 10 ++-- src/video/windows/SDL_windowsevents.c | 4 +- src/video/windows/SDL_windowskeyboard.c | 12 ++--- src/video/windows/SDL_windowsopengl.c | 29 +++++------ src/video/windows/SDL_windowsvideo.c | 16 +++--- src/video/windows/SDL_windowsvulkan.c | 6 +-- src/video/winrt/SDL_winrtopengles.cpp | 3 +- src/video/x11/SDL_x11dyn.c | 8 ++- src/video/x11/SDL_x11opengl.c | 60 ++++++++-------------- src/video/x11/SDL_x11vulkan.c | 16 +++--- src/video/yuv2rgb/yuv_rgb_sse_func.h | 10 ++-- 40 files changed, 176 insertions(+), 196 deletions(-) diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index dcaebea6d..caba53713 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -151,11 +151,11 @@ LoadLibSampleRate(void) return SDL_FALSE; } - SRC_src_new = (SRC_STATE* (*)(int converter_type, int channels, int *error))SDL_LoadFunction(SRC_lib, "src_new"); - SRC_src_process = (int (*)(SRC_STATE *state, SRC_DATA *data))SDL_LoadFunction(SRC_lib, "src_process"); - SRC_src_reset = (int(*)(SRC_STATE *state))SDL_LoadFunction(SRC_lib, "src_reset"); - SRC_src_delete = (SRC_STATE* (*)(SRC_STATE *state))SDL_LoadFunction(SRC_lib, "src_delete"); - SRC_src_strerror = (const char* (*)(int error))SDL_LoadFunction(SRC_lib, "src_strerror"); + *(void **)&SRC_src_new = SDL_LoadFunction(SRC_lib, "src_new"); + *(void **)&SRC_src_process = SDL_LoadFunction(SRC_lib, "src_process"); + *(void **)&SRC_src_reset = SDL_LoadFunction(SRC_lib, "src_reset"); + *(void **)&SRC_src_delete = SDL_LoadFunction(SRC_lib, "src_delete"); + *(void **)&SRC_src_strerror = SDL_LoadFunction(SRC_lib, "src_strerror"); if (!SRC_src_new || !SRC_src_process || !SRC_src_reset || !SRC_src_delete || !SRC_src_strerror) { SDL_UnloadObject(SRC_lib); diff --git a/src/audio/directsound/SDL_directsound.c b/src/audio/directsound/SDL_directsound.c index 09b83aedf..e81495630 100644 --- a/src/audio/directsound/SDL_directsound.c +++ b/src/audio/directsound/SDL_directsound.c @@ -74,7 +74,7 @@ DSOUND_Load(void) } else { /* Now make sure we have DirectX 8 or better... */ #define DSOUNDLOAD(f) { \ - p##f = (fn##f) SDL_LoadFunction(DSoundDLL, #f); \ + *(void**)&p##f = SDL_LoadFunction(DSoundDLL, #f); \ if (!p##f) loaded = 0; \ } loaded = 1; /* will reset if necessary. */ diff --git a/src/audio/wasapi/SDL_wasapi_win32.c b/src/audio/wasapi/SDL_wasapi_win32.c index 4b315ab5a..a368ee01a 100644 --- a/src/audio/wasapi/SDL_wasapi_win32.c +++ b/src/audio/wasapi/SDL_wasapi_win32.c @@ -256,8 +256,8 @@ WASAPI_PlatformInit(void) libavrt = LoadLibraryW(L"avrt.dll"); /* this library is available in Vista and later. No WinXP, so have to LoadLibrary to use it for now! */ if (libavrt) { - pAvSetMmThreadCharacteristicsW = (pfnAvSetMmThreadCharacteristicsW) GetProcAddress(libavrt, "AvSetMmThreadCharacteristicsW"); - pAvRevertMmThreadCharacteristics = (pfnAvRevertMmThreadCharacteristics) GetProcAddress(libavrt, "AvRevertMmThreadCharacteristics"); + *(void **)&pAvSetMmThreadCharacteristicsW = GetProcAddress(libavrt, "AvSetMmThreadCharacteristicsW"); + *(void **)&pAvRevertMmThreadCharacteristics = GetProcAddress(libavrt, "AvRevertMmThreadCharacteristics"); } return 0; diff --git a/src/core/linux/SDL_dbus.c b/src/core/linux/SDL_dbus.c index efa41dbca..8f3462fc2 100644 --- a/src/core/linux/SDL_dbus.c +++ b/src/core/linux/SDL_dbus.c @@ -33,7 +33,7 @@ static int LoadDBUSSyms(void) { #define SDL_DBUS_SYM2(x, y) \ - if (!(dbus.x = SDL_LoadFunction(dbus_handle, #y))) return -1 + if (!(*(void**)&dbus.x = SDL_LoadFunction(dbus_handle, #y))) return -1 #define SDL_DBUS_SYM(x) \ SDL_DBUS_SYM2(x, dbus_##x) diff --git a/src/core/windows/SDL_xinput.c b/src/core/windows/SDL_xinput.c index 75bf60003..a4318a05f 100644 --- a/src/core/windows/SDL_xinput.c +++ b/src/core/windows/SDL_xinput.c @@ -104,13 +104,13 @@ WIN_LoadXInputDLL(void) s_XInputDLLRefCount = 1; /* 100 is the ordinal for _XInputGetStateEx, which returns the same struct as XinputGetState, but with extra data in wButtons for the guide button, we think... */ - SDL_XInputGetState = (XInputGetState_t)GetProcAddress((HMODULE)s_pXInputDLL, (LPCSTR)100); + *(void**)&SDL_XInputGetState = GetProcAddress((HMODULE)s_pXInputDLL, (LPCSTR)100); if (!SDL_XInputGetState) { - SDL_XInputGetState = (XInputGetState_t)GetProcAddress((HMODULE)s_pXInputDLL, "XInputGetState"); + *(void**)&SDL_XInputGetState = GetProcAddress((HMODULE)s_pXInputDLL, "XInputGetState"); } - SDL_XInputSetState = (XInputSetState_t)GetProcAddress((HMODULE)s_pXInputDLL, "XInputSetState"); - SDL_XInputGetCapabilities = (XInputGetCapabilities_t)GetProcAddress((HMODULE)s_pXInputDLL, "XInputGetCapabilities"); - SDL_XInputGetBatteryInformation = (XInputGetBatteryInformation_t)GetProcAddress( (HMODULE)s_pXInputDLL, "XInputGetBatteryInformation" ); + *(void**)&SDL_XInputSetState = GetProcAddress((HMODULE)s_pXInputDLL, "XInputSetState"); + *(void**)&SDL_XInputGetCapabilities = GetProcAddress((HMODULE)s_pXInputDLL, "XInputGetCapabilities"); + *(void**)&SDL_XInputGetBatteryInformation = GetProcAddress( (HMODULE)s_pXInputDLL, "XInputGetBatteryInformation" ); if (!SDL_XInputGetState || !SDL_XInputSetState || !SDL_XInputGetCapabilities) { WIN_UnloadXInputDLL(); return -1; diff --git a/src/dynapi/SDL_dynapi.c b/src/dynapi/SDL_dynapi.c index b898826b2..a5f0a1c08 100644 --- a/src/dynapi/SDL_dynapi.c +++ b/src/dynapi/SDL_dynapi.c @@ -263,7 +263,7 @@ SDL_InitDynamicAPILocked(void) SDL_DYNAPI_ENTRYFN entry = SDL_DYNAPI_entry; /* funcs from here by default. */ if (libname) { - entry = (SDL_DYNAPI_ENTRYFN) get_sdlapi_entry(libname, "SDL_DYNAPI_entry"); + *(void **)&entry = get_sdlapi_entry(libname, "SDL_DYNAPI_entry"); if (!entry) { /* !!! FIXME: fail to startup here instead? */ /* !!! FIXME: definitely warn user. */ diff --git a/src/events/SDL_quit.c b/src/events/SDL_quit.c index 31b89a5e9..dc3467850 100644 --- a/src/events/SDL_quit.c +++ b/src/events/SDL_quit.c @@ -55,7 +55,7 @@ SDL_QuitInit_Internal(void) struct sigaction action; sigaction(SIGINT, NULL, &action); #ifdef HAVE_SA_SIGACTION - if ( action.sa_handler == SIG_DFL && action.sa_sigaction == (void*)SIG_DFL ) { + if ( action.sa_handler == SIG_DFL && (__sighandler_t)action.sa_sigaction == SIG_DFL ) { #else if ( action.sa_handler == SIG_DFL ) { #endif @@ -65,7 +65,7 @@ SDL_QuitInit_Internal(void) sigaction(SIGTERM, NULL, &action); #ifdef HAVE_SA_SIGACTION - if ( action.sa_handler == SIG_DFL && action.sa_sigaction == (void*)SIG_DFL ) { + if ( action.sa_handler == SIG_DFL && (__sighandler_t)action.sa_sigaction == SIG_DFL ) { #else if ( action.sa_handler == SIG_DFL ) { #endif diff --git a/src/filesystem/windows/SDL_sysfilesystem.c b/src/filesystem/windows/SDL_sysfilesystem.c index 52197891a..acc299d2d 100644 --- a/src/filesystem/windows/SDL_sysfilesystem.c +++ b/src/filesystem/windows/SDL_sysfilesystem.c @@ -50,7 +50,7 @@ SDL_GetBasePath(void) return NULL; } - pGetModuleFileNameExW = (GetModuleFileNameExW_t)GetProcAddress(psapi, "GetModuleFileNameExW"); + *(void**)&pGetModuleFileNameExW = GetProcAddress(psapi, "GetModuleFileNameExW"); if (!pGetModuleFileNameExW) { WIN_SetError("Couldn't find GetModuleFileNameExW"); FreeLibrary(psapi); diff --git a/src/render/direct3d11/SDL_render_d3d11.c b/src/render/direct3d11/SDL_render_d3d11.c index e0ccfc450..c8a0e7e89 100644 --- a/src/render/direct3d11/SDL_render_d3d11.c +++ b/src/render/direct3d11/SDL_render_d3d11.c @@ -568,7 +568,7 @@ D3D11_CreateDeviceResources(SDL_Renderer * renderer) goto done; } - CreateDXGIFactoryFunc = (PFN_CREATE_DXGI_FACTORY)SDL_LoadFunction(data->hDXGIMod, "CreateDXGIFactory"); + *(void**)&CreateDXGIFactoryFunc = SDL_LoadFunction(data->hDXGIMod, "CreateDXGIFactory"); if (!CreateDXGIFactoryFunc) { result = E_FAIL; goto done; @@ -580,7 +580,7 @@ D3D11_CreateDeviceResources(SDL_Renderer * renderer) goto done; } - D3D11CreateDeviceFunc = (PFN_D3D11_CREATE_DEVICE)SDL_LoadFunction(data->hD3D11Mod, "D3D11CreateDevice"); + *(void**)D3D11CreateDeviceFunc = SDL_LoadFunction(data->hD3D11Mod, "D3D11CreateDevice"); if (!D3D11CreateDeviceFunc) { result = E_FAIL; goto done; diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index ae8bca5b4..4bb3b08a5 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -260,10 +260,8 @@ GL_CheckAllErrors (const char *prefix, SDL_Renderer *renderer, const char *file, #if 0 #define GL_CheckError(prefix, renderer) -#elif defined(_MSC_VER) || defined(__WATCOMC__) -#define GL_CheckError(prefix, renderer) GL_CheckAllErrors(prefix, renderer, __FILE__, __LINE__, __FUNCTION__) #else -#define GL_CheckError(prefix, renderer) GL_CheckAllErrors(prefix, renderer, __FILE__, __LINE__, __PRETTY_FUNCTION__) +#define GL_CheckError(prefix, renderer) GL_CheckAllErrors(prefix, renderer, SDL_FILE, SDL_LINE, SDL_FUNCTION) #endif static int @@ -274,7 +272,7 @@ GL_LoadFunctions(GL_RenderData * data) #else #define SDL_PROC(ret,func,params) \ do { \ - data->func = SDL_GL_GetProcAddress(#func); \ + *(void **)&data->func = SDL_GL_GetProcAddress(#func); \ if ( ! data->func ) { \ return SDL_SetError("Couldn't load GL function %s: %s", #func, SDL_GetError()); \ } \ @@ -492,7 +490,9 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags) data->debug_enabled = SDL_TRUE; } if (data->debug_enabled && SDL_GL_ExtensionSupported("GL_ARB_debug_output")) { - PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARBFunc = (PFNGLDEBUGMESSAGECALLBACKARBPROC) SDL_GL_GetProcAddress("glDebugMessageCallbackARB"); + PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARBFunc; + + *(void **)&glDebugMessageCallbackARBFunc = SDL_GL_GetProcAddress("glDebugMessageCallbackARB"); data->GL_ARB_debug_output_supported = SDL_TRUE; data->glGetPointerv(GL_DEBUG_CALLBACK_FUNCTION_ARB, (GLvoid **)(char *)&data->next_error_callback); @@ -521,7 +521,7 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags) /* Check for multitexture support */ if (SDL_GL_ExtensionSupported("GL_ARB_multitexture")) { - data->glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC) SDL_GL_GetProcAddress("glActiveTextureARB"); + *(void **)&data->glActiveTextureARB = SDL_GL_GetProcAddress("glActiveTextureARB"); if (data->glActiveTextureARB) { data->GL_ARB_multitexture_supported = SDL_TRUE; data->glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &data->num_texture_units); @@ -549,16 +549,11 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags) if (SDL_GL_ExtensionSupported("GL_EXT_framebuffer_object")) { data->GL_EXT_framebuffer_object_supported = SDL_TRUE; - data->glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC) - SDL_GL_GetProcAddress("glGenFramebuffersEXT"); - data->glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC) - SDL_GL_GetProcAddress("glDeleteFramebuffersEXT"); - data->glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) - SDL_GL_GetProcAddress("glFramebufferTexture2DEXT"); - data->glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC) - SDL_GL_GetProcAddress("glBindFramebufferEXT"); - data->glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) - SDL_GL_GetProcAddress("glCheckFramebufferStatusEXT"); + *(void**)&data->glGenFramebuffersEXT = SDL_GL_GetProcAddress("glGenFramebuffersEXT"); + *(void**)&data->glDeleteFramebuffersEXT = SDL_GL_GetProcAddress("glDeleteFramebuffersEXT"); + *(void**)&data->glFramebufferTexture2DEXT = SDL_GL_GetProcAddress("glFramebufferTexture2DEXT"); + *(void**)&data->glBindFramebufferEXT = SDL_GL_GetProcAddress("glBindFramebufferEXT"); + *(void**)&data->glCheckFramebufferStatusEXT = SDL_GL_GetProcAddress("glCheckFramebufferStatusEXT"); renderer->info.flags |= SDL_RENDERER_TARGETTEXTURE; } data->framebuffers = NULL; @@ -1615,7 +1610,9 @@ GL_DestroyRenderer(SDL_Renderer * renderer) GL_ClearErrors(renderer); if (data->GL_ARB_debug_output_supported) { - PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARBFunc = (PFNGLDEBUGMESSAGECALLBACKARBPROC) SDL_GL_GetProcAddress("glDebugMessageCallbackARB"); + PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARBFunc; + + *(void **)&glDebugMessageCallbackARBFunc = SDL_GL_GetProcAddress("glDebugMessageCallbackARB"); /* Uh oh, we don't have a safe way of removing ourselves from the callback chain, if it changed after we set our callback. */ /* For now, just always replace the callback with the original one */ diff --git a/src/render/opengl/SDL_shaders_gl.c b/src/render/opengl/SDL_shaders_gl.c index 251b54d13..eb2d7e497 100644 --- a/src/render/opengl/SDL_shaders_gl.c +++ b/src/render/opengl/SDL_shaders_gl.c @@ -453,20 +453,20 @@ GL_CreateShaderContext(void) SDL_GL_ExtensionSupported("GL_ARB_shading_language_100") && SDL_GL_ExtensionSupported("GL_ARB_vertex_shader") && SDL_GL_ExtensionSupported("GL_ARB_fragment_shader")) { - ctx->glGetError = (GLenum (*)(void)) SDL_GL_GetProcAddress("glGetError"); - ctx->glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC) SDL_GL_GetProcAddress("glAttachObjectARB"); - ctx->glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC) SDL_GL_GetProcAddress("glCompileShaderARB"); - ctx->glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC) SDL_GL_GetProcAddress("glCreateProgramObjectARB"); - ctx->glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC) SDL_GL_GetProcAddress("glCreateShaderObjectARB"); - ctx->glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC) SDL_GL_GetProcAddress("glDeleteObjectARB"); - ctx->glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC) SDL_GL_GetProcAddress("glGetInfoLogARB"); - ctx->glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC) SDL_GL_GetProcAddress("glGetObjectParameterivARB"); - ctx->glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC) SDL_GL_GetProcAddress("glGetUniformLocationARB"); - ctx->glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC) SDL_GL_GetProcAddress("glLinkProgramARB"); - ctx->glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC) SDL_GL_GetProcAddress("glShaderSourceARB"); - ctx->glUniform1iARB = (PFNGLUNIFORM1IARBPROC) SDL_GL_GetProcAddress("glUniform1iARB"); - ctx->glUniform1fARB = (PFNGLUNIFORM1FARBPROC) SDL_GL_GetProcAddress("glUniform1fARB"); - ctx->glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC) SDL_GL_GetProcAddress("glUseProgramObjectARB"); + *(void**)&ctx->glGetError = SDL_GL_GetProcAddress("glGetError"); + *(void **)&ctx->glAttachObjectARB = SDL_GL_GetProcAddress("glAttachObjectARB"); + *(void **)&ctx->glCompileShaderARB = SDL_GL_GetProcAddress("glCompileShaderARB"); + *(void **)&ctx->glCreateProgramObjectARB = SDL_GL_GetProcAddress("glCreateProgramObjectARB"); + *(void **)&ctx->glCreateShaderObjectARB = SDL_GL_GetProcAddress("glCreateShaderObjectARB"); + *(void **)&ctx->glDeleteObjectARB = SDL_GL_GetProcAddress("glDeleteObjectARB"); + *(void **)&ctx->glGetInfoLogARB = SDL_GL_GetProcAddress("glGetInfoLogARB"); + *(void **)&ctx->glGetObjectParameterivARB = SDL_GL_GetProcAddress("glGetObjectParameterivARB"); + *(void **)&ctx->glGetUniformLocationARB = SDL_GL_GetProcAddress("glGetUniformLocationARB"); + *(void **)&ctx->glLinkProgramARB = SDL_GL_GetProcAddress("glLinkProgramARB"); + *(void **)&ctx->glShaderSourceARB = SDL_GL_GetProcAddress("glShaderSourceARB"); + *(void **)&ctx->glUniform1iARB = SDL_GL_GetProcAddress("glUniform1iARB"); + *(void **)&ctx->glUniform1fARB = SDL_GL_GetProcAddress("glUniform1fARB"); + *(void **)&ctx->glUseProgramObjectARB = SDL_GL_GetProcAddress("glUseProgramObjectARB"); if (ctx->glGetError && ctx->glAttachObjectARB && ctx->glCompileShaderARB && diff --git a/src/render/opengles/SDL_render_gles.c b/src/render/opengles/SDL_render_gles.c index d6bfca5d0..83b604683 100644 --- a/src/render/opengles/SDL_render_gles.c +++ b/src/render/opengles/SDL_render_gles.c @@ -198,14 +198,14 @@ static int GLES_LoadFunctions(GLES_RenderData * data) #else #define SDL_PROC(ret,func,params) \ do { \ - data->func = SDL_GL_GetProcAddress(#func); \ + *(void**)&data->func = SDL_GL_GetProcAddress(#func); \ if ( ! data->func ) { \ return SDL_SetError("Couldn't load GLES function %s: %s", #func, SDL_GetError()); \ } \ } while ( 0 ); #define SDL_PROC_OES(ret,func,params) \ do { \ - data->func = SDL_GL_GetProcAddress(#func); \ + *(void**)&data->func = SDL_GL_GetProcAddress(#func); \ } while ( 0 ); #endif /* __SDL_NOGETPROCADDR__ */ diff --git a/src/render/opengles2/SDL_render_gles2.c b/src/render/opengles2/SDL_render_gles2.c index 42d60bdbc..b548a6939 100644 --- a/src/render/opengles2/SDL_render_gles2.c +++ b/src/render/opengles2/SDL_render_gles2.c @@ -22,6 +22,7 @@ #if SDL_VIDEO_RENDER_OGL_ES2 && !SDL_RENDER_DISABLED +#include "SDL_assert.h" #include "SDL_hints.h" #include "SDL_opengles2.h" #include "../SDL_sysrender.h" @@ -259,10 +260,8 @@ GL_CheckAllErrors (const char *prefix, SDL_Renderer *renderer, const char *file, #if 0 #define GL_CheckError(prefix, renderer) -#elif defined(_MSC_VER) || defined(__WATCOMC__) -#define GL_CheckError(prefix, renderer) GL_CheckAllErrors(prefix, renderer, __FILE__, __LINE__, __FUNCTION__) #else -#define GL_CheckError(prefix, renderer) GL_CheckAllErrors(prefix, renderer, __FILE__, __LINE__, __PRETTY_FUNCTION__) +#define GL_CheckError(prefix, renderer) GL_CheckAllErrors(prefix, renderer, SDL_FILE, SDL_LINE, SDL_FUNCTION) #endif @@ -295,7 +294,7 @@ static int GLES2_LoadFunctions(GLES2_DriverContext * data) #else #define SDL_PROC(ret,func,params) \ do { \ - data->func = SDL_GL_GetProcAddress(#func); \ + *(void **)&data->func = SDL_GL_GetProcAddress(#func); \ if ( ! data->func ) { \ return SDL_SetError("Couldn't load GLES2 function %s: %s", #func, SDL_GetError()); \ } \ diff --git a/src/thread/pthread/SDL_systhread.c b/src/thread/pthread/SDL_systhread.c index 5539d7581..d3f772133 100644 --- a/src/thread/pthread/SDL_systhread.c +++ b/src/thread/pthread/SDL_systhread.c @@ -91,11 +91,7 @@ SDL_SYS_CreateThread(SDL_Thread * thread, void *args) #if defined(__MACOSX__) || defined(__IPHONEOS__) || defined(__LINUX__) if (!checked_setname) { void *fn = dlsym(RTLD_DEFAULT, "pthread_setname_np"); - #if defined(__MACOSX__) || defined(__IPHONEOS__) - ppthread_setname_np = (int(*)(const char*)) fn; - #elif defined(__LINUX__) - ppthread_setname_np = (int(*)(pthread_t, const char*)) fn; - #endif + *(void **)&ppthread_setname_np = fn; checked_setname = SDL_TRUE; } #endif diff --git a/src/thread/windows/SDL_systhread.c b/src/thread/windows/SDL_systhread.c index 90036c920..e44d5ea05 100644 --- a/src/thread/windows/SDL_systhread.c +++ b/src/thread/windows/SDL_systhread.c @@ -178,7 +178,7 @@ SDL_SYS_SetupThread(const char *name) if (!kernel32) { kernel32 = LoadLibraryW(L"kernel32.dll"); if (kernel32) { - pSetThreadDescription = (pfnSetThreadDescription) GetProcAddress(kernel32, "SetThreadDescription"); + *(void**)&pSetThreadDescription = GetProcAddress(kernel32, "SetThreadDescription"); } } diff --git a/src/video/SDL_blit.c b/src/video/SDL_blit.c index 0d4e2fdb9..3459bb0cb 100644 --- a/src/video/SDL_blit.c +++ b/src/video/SDL_blit.c @@ -82,7 +82,7 @@ SDL_SoftBlit(SDL_Surface * src, SDL_Rect * srcrect, info->dst_pitch = dst->pitch; info->dst_skip = info->dst_pitch - info->dst_w * info->dst_fmt->BytesPerPixel; - RunBlit = (SDL_BlitFunc) src->map->data; + *(void**)&RunBlit = src->map->data; /* Run the actual software blit */ RunBlit(info); @@ -282,7 +282,7 @@ SDL_CalculateBlit(SDL_Surface * surface) blit = SDL_Blit_Slow; } } - map->data = blit; + *(SDL_BlitFunc *)&map->data = blit; /* Make sure we have a blit function */ if (blit == NULL) { diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index 7308c15e6..3926d5b09 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -87,7 +87,7 @@ static const char g_rpi_opt_path[] = "/opt/vc/lib"; _this->egl_data->NAME = (void *)NAME; #else #define LOAD_FUNC(NAME) \ -_this->egl_data->NAME = SDL_LoadFunction(_this->egl_data->dll_handle, #NAME); \ +*(void**)&_this->egl_data->NAME = SDL_LoadFunction(_this->egl_data->dll_handle, #NAME); \ if (!_this->egl_data->NAME) \ { \ return SDL_SetError("Could not retrieve EGL function " #NAME); \ @@ -432,7 +432,7 @@ SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_displa _this->egl_data->egl_display = _this->egl_data->eglGetPlatformDisplay(platform, (void *)(size_t)native_display, NULL); } else { if (SDL_EGL_HasExtension(_this, SDL_EGL_CLIENT_EXTENSION, "EGL_EXT_platform_base")) { - _this->egl_data->eglGetPlatformDisplayEXT = SDL_EGL_GetProcAddress(_this, "eglGetPlatformDisplayEXT"); + *(void**)&_this->egl_data->eglGetPlatformDisplayEXT = SDL_EGL_GetProcAddress(_this, "eglGetPlatformDisplayEXT"); if (_this->egl_data->eglGetPlatformDisplayEXT) { _this->egl_data->egl_display = _this->egl_data->eglGetPlatformDisplayEXT(platform, (void *)(size_t)native_display, NULL); } diff --git a/src/video/SDL_sysvideo.h b/src/video/SDL_sysvideo.h index d1d35c2e5..9df71c9aa 100644 --- a/src/video/SDL_sysvideo.h +++ b/src/video/SDL_sysvideo.h @@ -365,8 +365,8 @@ struct SDL_VideoDevice /* Data used by the Vulkan drivers */ struct { - void *vkGetInstanceProcAddr; - void *vkEnumerateInstanceExtensionProperties; + PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; + PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; int loader_loaded; char loader_path[256]; void *loader_handle; diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index e04810bef..05623c60e 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -224,7 +224,7 @@ ShouldUseTextureFramebuffer() const GLubyte *(APIENTRY * glGetStringFunc) (GLenum); const char *vendor = NULL; - glGetStringFunc = SDL_GL_GetProcAddress("glGetString"); + *(void**)&glGetStringFunc = SDL_GL_GetProcAddress("glGetString"); if (glGetStringFunc) { vendor = (const char *) glGetStringFunc(GL_VENDOR); } @@ -2870,7 +2870,7 @@ SDL_GL_ExtensionSupported(const char *extension) /* Lookup the available extensions */ - glGetStringFunc = SDL_GL_GetProcAddress("glGetString"); + *(void**)&glGetStringFunc = SDL_GL_GetProcAddress("glGetString"); if (!glGetStringFunc) { return SDL_FALSE; } @@ -2881,8 +2881,8 @@ SDL_GL_ExtensionSupported(const char *extension) GLint num_exts = 0; GLint i; - glGetStringiFunc = SDL_GL_GetProcAddress("glGetStringi"); - glGetIntegervFunc = SDL_GL_GetProcAddress("glGetIntegerv"); + *(void**)&glGetStringiFunc = SDL_GL_GetProcAddress("glGetStringi"); + *(void**)&glGetIntegervFunc = SDL_GL_GetProcAddress("glGetIntegerv"); if ((!glGetStringiFunc) || (!glGetIntegervFunc)) { return SDL_FALSE; } @@ -3342,13 +3342,13 @@ SDL_GL_GetAttribute(SDL_GLattr attr, int *value) } #if SDL_VIDEO_OPENGL - glGetStringFunc = SDL_GL_GetProcAddress("glGetString"); + *(void**)&glGetStringFunc = SDL_GL_GetProcAddress("glGetString"); if (!glGetStringFunc) { return -1; } if (attachmentattrib && isAtLeastGL3((const char *) glGetStringFunc(GL_VERSION))) { - glGetFramebufferAttachmentParameterivFunc = SDL_GL_GetProcAddress("glGetFramebufferAttachmentParameteriv"); + *(void**)&glGetFramebufferAttachmentParameterivFunc = SDL_GL_GetProcAddress("glGetFramebufferAttachmentParameteriv"); if (glGetFramebufferAttachmentParameterivFunc) { glGetFramebufferAttachmentParameterivFunc(GL_FRAMEBUFFER, attachment, attachmentattrib, (GLint *) value); @@ -3359,7 +3359,7 @@ SDL_GL_GetAttribute(SDL_GLattr attr, int *value) #endif { void (APIENTRY *glGetIntegervFunc) (GLenum pname, GLint * params); - glGetIntegervFunc = SDL_GL_GetProcAddress("glGetIntegerv"); + *(void**)&glGetIntegervFunc = SDL_GL_GetProcAddress("glGetIntegerv"); if (glGetIntegervFunc) { glGetIntegervFunc(attrib, (GLint *) value); } else { @@ -3367,7 +3367,7 @@ SDL_GL_GetAttribute(SDL_GLattr attr, int *value) } } - glGetErrorFunc = SDL_GL_GetProcAddress("glGetError"); + *(void**)&glGetErrorFunc = SDL_GL_GetProcAddress("glGetError"); if (!glGetErrorFunc) { return -1; } @@ -3995,14 +3995,17 @@ int SDL_Vulkan_LoadLibrary(const char *path) void *SDL_Vulkan_GetVkGetInstanceProcAddr(void) { + void *func = NULL; if (!_this) { SDL_UninitializedVideo(); return NULL; } if (!_this->vulkan_config.loader_loaded) { SDL_SetError("No Vulkan loader has been loaded"); + return NULL; } - return _this->vulkan_config.vkGetInstanceProcAddr; + *(PFN_vkGetInstanceProcAddr*)&func = _this->vulkan_config.vkGetInstanceProcAddr; + return func; } void SDL_Vulkan_UnloadLibrary(void) diff --git a/src/video/SDL_vulkan_internal.h b/src/video/SDL_vulkan_internal.h index 98a3132eb..b48b1149e 100644 --- a/src/video/SDL_vulkan_internal.h +++ b/src/video/SDL_vulkan_internal.h @@ -81,6 +81,9 @@ extern SDL_bool SDL_Vulkan_GetInstanceExtensions_Helper(unsigned *userCount, /* No SDL Vulkan support, just include the header for typedefs */ #include "SDL_vulkan.h" +typedef void* PFN_vkGetInstanceProcAddr; +typedef void* PFN_vkEnumerateInstanceExtensionProperties; + #endif /* SDL_VIDEO_VULKAN */ #endif /* SDL_vulkan_internal_h_ */ diff --git a/src/video/android/SDL_androidvulkan.c b/src/video/android/SDL_androidvulkan.c index b497a543d..91d7dbb2f 100644 --- a/src/video/android/SDL_androidvulkan.c +++ b/src/video/android/SDL_androidvulkan.c @@ -56,13 +56,13 @@ int Android_Vulkan_LoadLibrary(_THIS, const char *path) return -1; SDL_strlcpy(_this->vulkan_config.loader_path, path, SDL_arraysize(_this->vulkan_config.loader_path)); - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)SDL_LoadFunction( + *(void**)&vkGetInstanceProcAddr = SDL_LoadFunction( _this->vulkan_config.loader_handle, "vkGetInstanceProcAddr"); if(!vkGetInstanceProcAddr) goto fail; - _this->vulkan_config.vkGetInstanceProcAddr = (void *)vkGetInstanceProcAddr; + _this->vulkan_config.vkGetInstanceProcAddr = vkGetInstanceProcAddr; _this->vulkan_config.vkEnumerateInstanceExtensionProperties = - (void *)((PFN_vkGetInstanceProcAddr)_this->vulkan_config.vkGetInstanceProcAddr)( + (PFN_vkEnumerateInstanceExtensionProperties)_this->vulkan_config.vkGetInstanceProcAddr( VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); if(!_this->vulkan_config.vkEnumerateInstanceExtensionProperties) goto fail; @@ -139,7 +139,7 @@ SDL_bool Android_Vulkan_CreateSurface(_THIS, (PFN_vkCreateAndroidSurfaceKHR)vkGetInstanceProcAddr( (VkInstance)instance, "vkCreateAndroidSurfaceKHR"); - VkAndroidSurfaceCreateInfoKHR createInfo = {}; + VkAndroidSurfaceCreateInfoKHR createInfo; VkResult result; if(!_this->vulkan_config.loader_handle) @@ -154,6 +154,7 @@ SDL_bool Android_Vulkan_CreateSurface(_THIS, " extension is not enabled in the Vulkan instance."); return SDL_FALSE; } + SDL_zero(createInfo); createInfo.sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR; createInfo.pNext = NULL; createInfo.flags = 0; diff --git a/src/video/cocoa/SDL_cocoavulkan.m b/src/video/cocoa/SDL_cocoavulkan.m index ce7277442..eb97fbe87 100644 --- a/src/video/cocoa/SDL_cocoavulkan.m +++ b/src/video/cocoa/SDL_cocoavulkan.m @@ -83,7 +83,7 @@ int Cocoa_Vulkan_LoadLibrary(_THIS, const char *path) } SDL_strlcpy(_this->vulkan_config.loader_path, path, SDL_arraysize(_this->vulkan_config.loader_path)); - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)SDL_LoadFunction( + *(void**)&vkGetInstanceProcAddr = SDL_LoadFunction( _this->vulkan_config.loader_handle, "vkGetInstanceProcAddr"); } @@ -95,9 +95,9 @@ int Cocoa_Vulkan_LoadLibrary(_THIS, const char *path) goto fail; } - _this->vulkan_config.vkGetInstanceProcAddr = (void *)vkGetInstanceProcAddr; + _this->vulkan_config.vkGetInstanceProcAddr = vkGetInstanceProcAddr; _this->vulkan_config.vkEnumerateInstanceExtensionProperties = - (void *)((PFN_vkGetInstanceProcAddr)_this->vulkan_config.vkGetInstanceProcAddr)( + (PFN_vkEnumerateInstanceExtensionProperties)_this->vulkan_config.vkGetInstanceProcAddr( VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); if (!_this->vulkan_config.vkEnumerateInstanceExtensionProperties) { goto fail; diff --git a/src/video/mir/SDL_mirdyn.c b/src/video/mir/SDL_mirdyn.c index 71dc73c8b..78e7b82df 100644 --- a/src/video/mir/SDL_mirdyn.c +++ b/src/video/mir/SDL_mirdyn.c @@ -139,7 +139,7 @@ SDL_MIR_LoadSymbols(void) #include "SDL_mirsym.h" #define SDL_MIR_MODULE(modname) thismod = &SDL_MIR_HAVE_##modname; -#define SDL_MIR_SYM(rc,fn,params) MIR_##fn = (SDL_DYNMIRFN_##fn) MIR_GetSym(#fn,thismod); +#define SDL_MIR_SYM(rc,fn,params) *(void**)&MIR_##fn = MIR_GetSym(#fn,thismod); #define SDL_MIR_SYM_CONST(type,name) MIR_##name = *(SDL_DYMMIRCONST_##name*) MIR_GetSym(#name,thismod); #include "SDL_mirsym.h" diff --git a/src/video/mir/SDL_mirvideo.c b/src/video/mir/SDL_mirvideo.c index cff278292..8f3a368cf 100644 --- a/src/video/mir/SDL_mirvideo.c +++ b/src/video/mir/SDL_mirvideo.c @@ -27,6 +27,7 @@ #if SDL_VIDEO_DRIVER_MIR +#include "SDL_assert.h" #include "SDL_log.h" #include "SDL_mirwindow.h" @@ -103,7 +104,7 @@ MIR_Available() if (SDL_MIR_LoadSymbols()) { /* Lets ensure we can connect to the mir server */ - MirConnection* connection = MIR_mir_connect_sync(NULL, __PRETTY_FUNCTION__); + MirConnection* connection = MIR_mir_connect_sync(NULL, SDL_FUNCTION); if (!MIR_mir_connection_is_valid(connection)) { SDL_LogWarn(SDL_LOG_CATEGORY_VIDEO, "Unable to connect to the mir server %s", @@ -319,7 +320,7 @@ MIR_VideoInit(_THIS) { MIR_Data* mir_data = _this->driverdata; - mir_data->connection = MIR_mir_connect_sync(NULL, __PRETTY_FUNCTION__); + mir_data->connection = MIR_mir_connect_sync(NULL, SDL_FUNCTION); mir_data->current_window = NULL; mir_data->software = SDL_FALSE; mir_data->pixel_format = mir_pixel_format_invalid; diff --git a/src/video/mir/SDL_mirvulkan.c b/src/video/mir/SDL_mirvulkan.c index d5b90be83..216f6ff5d 100644 --- a/src/video/mir/SDL_mirvulkan.c +++ b/src/video/mir/SDL_mirvulkan.c @@ -56,14 +56,13 @@ int MIR_Vulkan_LoadLibrary(_THIS, const char *path) return -1; SDL_strlcpy(_this->vulkan_config.loader_path, path, SDL_arraysize(_this->vulkan_config.loader_path)); - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)SDL_LoadFunction( + *(void**)&vkGetInstanceProcAddr = SDL_LoadFunction( _this->vulkan_config.loader_handle, "vkGetInstanceProcAddr"); if(!vkGetInstanceProcAddr) goto fail; - _this->vulkan_config.vkGetInstanceProcAddr = (void *)vkGetInstanceProcAddr; + _this->vulkan_config.vkGetInstanceProcAddr = vkGetInstanceProcAddr; _this->vulkan_config.vkEnumerateInstanceExtensionProperties = - (void *)((PFN_vkGetInstanceProcAddr)_this->vulkan_config.vkGetInstanceProcAddr)( - VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); + (PFN_vkEnumerateInstanceExtensionProperties)_this->vulkan_config.vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); if(!_this->vulkan_config.vkEnumerateInstanceExtensionProperties) goto fail; extensions = SDL_Vulkan_CreateInstanceExtensionsList( @@ -139,7 +138,7 @@ SDL_bool MIR_Vulkan_CreateSurface(_THIS, (PFN_vkCreateMirSurfaceKHR)vkGetInstanceProcAddr( (VkInstance)instance, "vkCreateMirSurfaceKHR"); - VkMirSurfaceCreateInfoKHR createInfo = {}; + VkMirSurfaceCreateInfoKHR createInfo; VkResult result; if(!_this->vulkan_config.loader_handle) @@ -154,6 +153,7 @@ SDL_bool MIR_Vulkan_CreateSurface(_THIS, " extension is not enabled in the Vulkan instance."); return SDL_FALSE; } + SDL_zero(createInfo); createInfo.sType = VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR; createInfo.pNext = NULL; createInfo.flags = 0; diff --git a/src/video/uikit/SDL_uikitvulkan.m b/src/video/uikit/SDL_uikitvulkan.m index 771c7a475..469a46445 100644 --- a/src/video/uikit/SDL_uikitvulkan.m +++ b/src/video/uikit/SDL_uikitvulkan.m @@ -84,8 +84,7 @@ int UIKit_Vulkan_LoadLibrary(_THIS, const char *path) } SDL_strlcpy(_this->vulkan_config.loader_path, path, SDL_arraysize(_this->vulkan_config.loader_path)); - vkGetInstanceProcAddr = - (PFN_vkGetInstanceProcAddr)SDL_LoadFunction( + *(void**)&vkGetInstanceProcAddr = SDL_LoadFunction( _this->vulkan_config.loader_handle, "vkGetInstanceProcAddr"); } diff --git a/src/video/wayland/SDL_waylanddatamanager.c b/src/video/wayland/SDL_waylanddatamanager.c index 1c8a7104c..f1b9742ce 100644 --- a/src/video/wayland/SDL_waylanddatamanager.c +++ b/src/video/wayland/SDL_waylanddatamanager.c @@ -61,7 +61,7 @@ write_pipe(int fd, const void* buffer, size_t total_length, size_t *pos) bytes_written = SDL_SetError("Pipe select error"); } else { if (length > 0) { - bytes_written = write(fd, buffer + *pos, SDL_min(length, PIPE_BUF)); + bytes_written = write(fd, (Uint8*)buffer + *pos, SDL_min(length, PIPE_BUF)); } if (bytes_written > 0) { @@ -114,10 +114,10 @@ read_pipe(int fd, void** buffer, size_t* total_length, SDL_bool null_terminate) if (output_buffer == NULL) { bytes_read = SDL_OutOfMemory(); } else { - SDL_memcpy(output_buffer + pos, temp, bytes_read); + SDL_memcpy((Uint8*)output_buffer + pos, temp, bytes_read); if (null_terminate == SDL_TRUE) { - SDL_memset(output_buffer + (new_buffer_length - 1), 0, 1); + SDL_memset((Uint8*)output_buffer + (new_buffer_length - 1), 0, 1); } *buffer = output_buffer; diff --git a/src/video/wayland/SDL_waylanddyn.c b/src/video/wayland/SDL_waylanddyn.c index 98cc51887..163337928 100644 --- a/src/video/wayland/SDL_waylanddyn.c +++ b/src/video/wayland/SDL_waylanddyn.c @@ -147,7 +147,7 @@ SDL_WAYLAND_LoadSymbols(void) #include "SDL_waylandsym.h" #define SDL_WAYLAND_MODULE(modname) thismod = &SDL_WAYLAND_HAVE_##modname; -#define SDL_WAYLAND_SYM(rc,fn,params) WAYLAND_##fn = (SDL_DYNWAYLANDFN_##fn) WAYLAND_GetSym(#fn,thismod); +#define SDL_WAYLAND_SYM(rc,fn,params) *(void**)&WAYLAND_##fn = WAYLAND_GetSym(#fn,thismod); #define SDL_WAYLAND_INTERFACE(iface) WAYLAND_##iface = (struct wl_interface *) WAYLAND_GetSym(#iface,thismod); #include "SDL_waylandsym.h" diff --git a/src/video/wayland/SDL_waylandopengles.h b/src/video/wayland/SDL_waylandopengles.h index 21479f566..58d7f9b08 100644 --- a/src/video/wayland/SDL_waylandopengles.h +++ b/src/video/wayland/SDL_waylandopengles.h @@ -28,6 +28,7 @@ typedef struct SDL_PrivateGLESData { + int dummy; } SDL_PrivateGLESData; /* OpenGLES functions */ diff --git a/src/video/wayland/SDL_waylandvulkan.c b/src/video/wayland/SDL_waylandvulkan.c index a29744ca9..fe021df1f 100644 --- a/src/video/wayland/SDL_waylandvulkan.c +++ b/src/video/wayland/SDL_waylandvulkan.c @@ -56,13 +56,12 @@ int Wayland_Vulkan_LoadLibrary(_THIS, const char *path) return -1; SDL_strlcpy(_this->vulkan_config.loader_path, path, SDL_arraysize(_this->vulkan_config.loader_path)); - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)SDL_LoadFunction( - _this->vulkan_config.loader_handle, "vkGetInstanceProcAddr"); + *(void**)&vkGetInstanceProcAddr = SDL_LoadFunction(_this->vulkan_config.loader_handle, "vkGetInstanceProcAddr"); if(!vkGetInstanceProcAddr) goto fail; - _this->vulkan_config.vkGetInstanceProcAddr = (void *)vkGetInstanceProcAddr; + _this->vulkan_config.vkGetInstanceProcAddr = vkGetInstanceProcAddr; _this->vulkan_config.vkEnumerateInstanceExtensionProperties = - (void *)((PFN_vkGetInstanceProcAddr)_this->vulkan_config.vkGetInstanceProcAddr)( + (PFN_vkEnumerateInstanceExtensionProperties)_this->vulkan_config.vkGetInstanceProcAddr( VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); if(!_this->vulkan_config.vkEnumerateInstanceExtensionProperties) goto fail; @@ -139,7 +138,7 @@ SDL_bool Wayland_Vulkan_CreateSurface(_THIS, (PFN_vkCreateWaylandSurfaceKHR)vkGetInstanceProcAddr( (VkInstance)instance, "vkCreateWaylandSurfaceKHR"); - VkWaylandSurfaceCreateInfoKHR createInfo = {}; + VkWaylandSurfaceCreateInfoKHR createInfo; VkResult result; if(!_this->vulkan_config.loader_handle) @@ -154,6 +153,7 @@ SDL_bool Wayland_Vulkan_CreateSurface(_THIS, " extension is not enabled in the Vulkan instance."); return SDL_FALSE; } + SDL_zero(createInfo); createInfo.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR; createInfo.pNext = NULL; createInfo.flags = 0; diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c index 4129e9a4f..d06ee208d 100644 --- a/src/video/windows/SDL_windowsevents.c +++ b/src/video/windows/SDL_windowsevents.c @@ -1086,7 +1086,9 @@ IsWin10FCUorNewer(void) HMODULE handle = GetModuleHandleW(L"ntdll.dll"); if (handle) { typedef LONG(WINAPI* RtlGetVersionPtr)(struct SDL_WIN_OSVERSIONINFOW*); - RtlGetVersionPtr getVersionPtr = (RtlGetVersionPtr)GetProcAddress(handle, "RtlGetVersion"); + RtlGetVersionPtr getVersionPtr; + + *(void**)&getVersionPtr = GetProcAddress(handle, "RtlGetVersion"); if (getVersionPtr != NULL) { struct SDL_WIN_OSVERSIONINFOW info; SDL_zero(info); diff --git a/src/video/windows/SDL_windowskeyboard.c b/src/video/windows/SDL_windowskeyboard.c index c7f357b59..ec3bf2300 100644 --- a/src/video/windows/SDL_windowskeyboard.c +++ b/src/video/windows/SDL_windowskeyboard.c @@ -354,10 +354,10 @@ IME_Init(SDL_VideoData *videodata, HWND hwnd) SDL_ClearError(); return; } - videodata->ImmLockIMC = (LPINPUTCONTEXT2 (WINAPI *)(HIMC))SDL_LoadFunction(videodata->ime_himm32, "ImmLockIMC"); - videodata->ImmUnlockIMC = (BOOL (WINAPI *)(HIMC))SDL_LoadFunction(videodata->ime_himm32, "ImmUnlockIMC"); - videodata->ImmLockIMCC = (LPVOID (WINAPI *)(HIMCC))SDL_LoadFunction(videodata->ime_himm32, "ImmLockIMCC"); - videodata->ImmUnlockIMCC = (BOOL (WINAPI *)(HIMCC))SDL_LoadFunction(videodata->ime_himm32, "ImmUnlockIMCC"); + *(void**)&videodata->ImmLockIMC = SDL_LoadFunction(videodata->ime_himm32, "ImmLockIMC"); + *(void**)&videodata->ImmUnlockIMC = SDL_LoadFunction(videodata->ime_himm32, "ImmUnlockIMC"); + *(void**)&videodata->ImmLockIMCC = SDL_LoadFunction(videodata->ime_himm32, "ImmLockIMCC"); + *(void**)&videodata->ImmUnlockIMCC = SDL_LoadFunction(videodata->ime_himm32, "ImmUnlockIMCC"); IME_SetWindow(videodata, hwnd); videodata->ime_himc = ImmGetContext(hwnd); @@ -654,9 +654,9 @@ IME_SetupAPI(SDL_VideoData *videodata) if (!hime) return; - videodata->GetReadingString = (UINT (WINAPI *)(HIMC, UINT, LPWSTR, PINT, BOOL*, PUINT)) + *(void**)&videodata->GetReadingString = SDL_LoadFunction(hime, "GetReadingString"); - videodata->ShowReadingWindow = (BOOL (WINAPI *)(HIMC, BOOL)) + *(void**)&videodata->ShowReadingWindow = SDL_LoadFunction(hime, "ShowReadingWindow"); if (videodata->ShowReadingWindow) { diff --git a/src/video/windows/SDL_windowsopengl.c b/src/video/windows/SDL_windowsopengl.c index c3ba56c0e..5513511a3 100644 --- a/src/video/windows/SDL_windowsopengl.c +++ b/src/video/windows/SDL_windowsopengl.c @@ -119,15 +119,15 @@ WIN_GL_LoadLibrary(_THIS, const char *path) /* Load function pointers */ handle = _this->gl_config.dll_handle; - _this->gl_data->wglGetProcAddress = (void *(WINAPI *) (const char *)) + *(void**)&_this->gl_data->wglGetProcAddress = SDL_LoadFunction(handle, "wglGetProcAddress"); - _this->gl_data->wglCreateContext = (HGLRC(WINAPI *) (HDC)) + *(void**)&_this->gl_data->wglCreateContext = SDL_LoadFunction(handle, "wglCreateContext"); - _this->gl_data->wglDeleteContext = (BOOL(WINAPI *) (HGLRC)) + *(void**)&_this->gl_data->wglDeleteContext = SDL_LoadFunction(handle, "wglDeleteContext"); - _this->gl_data->wglMakeCurrent = (BOOL(WINAPI *) (HDC, HGLRC)) + *(void**)&_this->gl_data->wglMakeCurrent = SDL_LoadFunction(handle, "wglMakeCurrent"); - _this->gl_data->wglShareLists = (BOOL(WINAPI *) (HGLRC, HGLRC)) + *(void**)&_this->gl_data->wglShareLists = SDL_LoadFunction(handle, "wglShareLists"); if (!_this->gl_data->wglGetProcAddress || @@ -409,7 +409,7 @@ WIN_GL_InitExtensions(_THIS) } _this->gl_data->wglMakeCurrent(hdc, hglrc); - wglGetExtensionsStringARB = (const char *(WINAPI *) (HDC)) + *(void**)&wglGetExtensionsStringARB = _this->gl_data->wglGetProcAddress("wglGetExtensionsStringARB"); if (wglGetExtensionsStringARB) { extensions = wglGetExtensionsStringARB(hdc); @@ -420,13 +420,9 @@ WIN_GL_InitExtensions(_THIS) /* Check for WGL_ARB_pixel_format */ _this->gl_data->HAS_WGL_ARB_pixel_format = SDL_FALSE; if (HasExtension("WGL_ARB_pixel_format", extensions)) { - _this->gl_data->wglChoosePixelFormatARB = (BOOL(WINAPI *) - (HDC, const int *, - const FLOAT *, UINT, - int *, UINT *)) + *(void**)&_this->gl_data->wglChoosePixelFormatARB = WIN_GL_GetProcAddress(_this, "wglChoosePixelFormatARB"); - _this->gl_data->wglGetPixelFormatAttribivARB = - (BOOL(WINAPI *) (HDC, int, int, UINT, const int *, int *)) + *(void**)&_this->gl_data->wglGetPixelFormatAttribivARB = WIN_GL_GetProcAddress(_this, "wglGetPixelFormatAttribivARB"); if ((_this->gl_data->wglChoosePixelFormatARB != NULL) && @@ -438,9 +434,9 @@ WIN_GL_InitExtensions(_THIS) /* Check for WGL_EXT_swap_control */ _this->gl_data->HAS_WGL_EXT_swap_control_tear = SDL_FALSE; if (HasExtension("WGL_EXT_swap_control", extensions)) { - _this->gl_data->wglSwapIntervalEXT = + *(void**)&_this->gl_data->wglSwapIntervalEXT = WIN_GL_GetProcAddress(_this, "wglSwapIntervalEXT"); - _this->gl_data->wglGetSwapIntervalEXT = + *(void**)&_this->gl_data->wglGetSwapIntervalEXT = WIN_GL_GetProcAddress(_this, "wglGetSwapIntervalEXT"); if (HasExtension("WGL_EXT_swap_control_tear", extensions)) { _this->gl_data->HAS_WGL_EXT_swap_control_tear = SDL_TRUE; @@ -721,9 +717,8 @@ WIN_GL_CreateContext(_THIS, SDL_Window * window) return NULL; } - wglCreateContextAttribsARB = - (PFNWGLCREATECONTEXTATTRIBSARBPROC) _this->gl_data-> - wglGetProcAddress("wglCreateContextAttribsARB"); + *(void**)&wglCreateContextAttribsARB = + _this->gl_data->wglGetProcAddress("wglCreateContextAttribsARB"); if (!wglCreateContextAttribsARB) { SDL_SetError("GL 3.x is not supported"); context = temp_context; diff --git a/src/video/windows/SDL_windowsvideo.c b/src/video/windows/SDL_windowsvideo.c index 8d45b721e..f2de03f0d 100644 --- a/src/video/windows/SDL_windowsvideo.c +++ b/src/video/windows/SDL_windowsvideo.c @@ -113,16 +113,16 @@ WIN_CreateDevice(int devindex) data->userDLL = SDL_LoadObject("USER32.DLL"); if (data->userDLL) { - data->CloseTouchInputHandle = (BOOL (WINAPI *)(HTOUCHINPUT)) SDL_LoadFunction(data->userDLL, "CloseTouchInputHandle"); - data->GetTouchInputInfo = (BOOL (WINAPI *)(HTOUCHINPUT, UINT, PTOUCHINPUT, int)) SDL_LoadFunction(data->userDLL, "GetTouchInputInfo"); - data->RegisterTouchWindow = (BOOL (WINAPI *)(HWND, ULONG)) SDL_LoadFunction(data->userDLL, "RegisterTouchWindow"); + *(void**)&data->CloseTouchInputHandle = SDL_LoadFunction(data->userDLL, "CloseTouchInputHandle"); + *(void**)&data->GetTouchInputInfo = SDL_LoadFunction(data->userDLL, "GetTouchInputInfo"); + *(void**)&data->RegisterTouchWindow = SDL_LoadFunction(data->userDLL, "RegisterTouchWindow"); } else { SDL_ClearError(); } data->shcoreDLL = SDL_LoadObject("SHCORE.DLL"); if (data->shcoreDLL) { - data->GetDpiForMonitor = (HRESULT (WINAPI *)(HMONITOR, MONITOR_DPI_TYPE, UINT *, UINT *)) SDL_LoadFunction(data->shcoreDLL, "GetDpiForMonitor"); + *(void**)&data->GetDpiForMonitor = SDL_LoadFunction(data->shcoreDLL, "GetDpiForMonitor"); } else { SDL_ClearError(); } @@ -256,7 +256,7 @@ D3D_LoadDLL(void **pD3DDLL, IDirect3D9 **pDirect3D9Interface) typedef HRESULT (WINAPI *Direct3DCreate9Ex_t)(UINT SDKVersion, IDirect3D9Ex **ppD3D); Direct3DCreate9Ex_t Direct3DCreate9ExFunc; - Direct3DCreate9ExFunc = (Direct3DCreate9Ex_t)SDL_LoadFunction(*pD3DDLL, "Direct3DCreate9Ex"); + *(void**)&Direct3DCreate9ExFunc = SDL_LoadFunction(*pD3DDLL, "Direct3DCreate9Ex"); if (Direct3DCreate9ExFunc) { IDirect3D9Ex *pDirect3D9ExInterface; HRESULT hr = Direct3DCreate9ExFunc(D3D_SDK_VERSION, &pDirect3D9ExInterface); @@ -271,7 +271,7 @@ D3D_LoadDLL(void **pD3DDLL, IDirect3D9 **pDirect3D9Interface) } #endif /* USE_D3D9EX */ - Direct3DCreate9Func = (Direct3DCreate9_t)SDL_LoadFunction(*pD3DDLL, "Direct3DCreate9"); + *(void**)&Direct3DCreate9Func = SDL_LoadFunction(*pD3DDLL, "Direct3DCreate9"); if (Direct3DCreate9Func) { *pDirect3D9Interface = Direct3DCreate9Func(D3D_SDK_VERSION); if (*pDirect3D9Interface) { @@ -338,9 +338,7 @@ DXGI_LoadDLL(void **pDXGIDLL, IDXGIFactory **pDXGIFactory) if (*pDXGIDLL) { HRESULT (WINAPI *CreateDXGI)(REFIID riid, void **ppFactory); - CreateDXGI = - (HRESULT (WINAPI *) (REFIID, void**)) SDL_LoadFunction(*pDXGIDLL, - "CreateDXGIFactory"); + *(void**)&CreateDXGI = SDL_LoadFunction(*pDXGIDLL, "CreateDXGIFactory"); if (CreateDXGI) { GUID dxgiGUID = {0x7b7166ec,0x21c7,0x44ae,{0xb2,0x1a,0xc9,0xae,0x32,0x1a,0xe3,0x69}}; if (!SUCCEEDED(CreateDXGI(&dxgiGUID, (void**)pDXGIFactory))) { diff --git a/src/video/windows/SDL_windowsvulkan.c b/src/video/windows/SDL_windowsvulkan.c index c4b34f0db..9fc1f01c3 100644 --- a/src/video/windows/SDL_windowsvulkan.c +++ b/src/video/windows/SDL_windowsvulkan.c @@ -57,13 +57,13 @@ int WIN_Vulkan_LoadLibrary(_THIS, const char *path) return -1; SDL_strlcpy(_this->vulkan_config.loader_path, path, SDL_arraysize(_this->vulkan_config.loader_path)); - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)SDL_LoadFunction( + *(void**)vkGetInstanceProcAddr = SDL_LoadFunction( _this->vulkan_config.loader_handle, "vkGetInstanceProcAddr"); if(!vkGetInstanceProcAddr) goto fail; - _this->vulkan_config.vkGetInstanceProcAddr = (void *)vkGetInstanceProcAddr; + _this->vulkan_config.vkGetInstanceProcAddr = vkGetInstanceProcAddr; _this->vulkan_config.vkEnumerateInstanceExtensionProperties = - (void *)((PFN_vkGetInstanceProcAddr)_this->vulkan_config.vkGetInstanceProcAddr)( + (PFN_vkEnumerateInstanceExtensionProperties)_this->vulkan_config.vkGetInstanceProcAddr( VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); if(!_this->vulkan_config.vkEnumerateInstanceExtensionProperties) goto fail; diff --git a/src/video/winrt/SDL_winrtopengles.cpp b/src/video/winrt/SDL_winrtopengles.cpp index 7874501e9..ef316c794 100644 --- a/src/video/winrt/SDL_winrtopengles.cpp +++ b/src/video/winrt/SDL_winrtopengles.cpp @@ -63,7 +63,8 @@ WINRT_GLES_LoadLibrary(_THIS, const char *path) } /* Load ANGLE/WinRT-specific functions */ - CreateWinrtEglWindow_Old_Function CreateWinrtEglWindow = (CreateWinrtEglWindow_Old_Function) SDL_LoadFunction(_this->egl_data->egl_dll_handle, "CreateWinrtEglWindow"); + CreateWinrtEglWindow_Old_Function CreateWinrtEglWindow; + *(void**)&CreateWinrtEglWindow = SDL_LoadFunction(_this->egl_data->egl_dll_handle, "CreateWinrtEglWindow"); if (CreateWinrtEglWindow) { /* 'CreateWinrtEglWindow' was found, which means that an an older * version of ANGLE/WinRT is being used. Continue setting up EGL, diff --git a/src/video/x11/SDL_x11dyn.c b/src/video/x11/SDL_x11dyn.c index 89f736acf..ada7b4dbd 100644 --- a/src/video/x11/SDL_x11dyn.c +++ b/src/video/x11/SDL_x11dyn.c @@ -172,14 +172,12 @@ SDL_X11_LoadSymbols(void) #include "SDL_x11sym.h" #define SDL_X11_MODULE(modname) thismod = &SDL_X11_HAVE_##modname; -#define SDL_X11_SYM(a,fn,x,y,z) X11_##fn = (SDL_DYNX11FN_##fn) X11_GetSym(#fn,thismod); +#define SDL_X11_SYM(a,fn,x,y,z) *(void**)&X11_##fn = X11_GetSym(#fn,thismod); #include "SDL_x11sym.h" #ifdef X_HAVE_UTF8_STRING - X11_XCreateIC = (SDL_DYNX11FN_XCreateIC) - X11_GetSym("XCreateIC", &SDL_X11_HAVE_UTF8); - X11_XGetICValues = (SDL_DYNX11FN_XGetICValues) - X11_GetSym("XGetICValues", &SDL_X11_HAVE_UTF8); + *(void**)&X11_XCreateIC = X11_GetSym("XCreateIC", &SDL_X11_HAVE_UTF8); + *(void**)&X11_XGetICValues = X11_GetSym("XGetICValues", &SDL_X11_HAVE_UTF8); #endif if (SDL_X11_HAVE_BASEXLIB) { diff --git a/src/video/x11/SDL_x11opengl.c b/src/video/x11/SDL_x11opengl.c index 7c3cb339d..9e04acf0d 100644 --- a/src/video/x11/SDL_x11opengl.c +++ b/src/video/x11/SDL_x11opengl.c @@ -189,29 +189,21 @@ X11_GL_LoadLibrary(_THIS, const char *path) /* Load function pointers */ handle = _this->gl_config.dll_handle; - _this->gl_data->glXQueryExtension = - (Bool (*)(Display *, int *, int *)) + *(void**)&_this->gl_data->glXQueryExtension = GL_LoadFunction(handle, "glXQueryExtension"); - _this->gl_data->glXGetProcAddress = - (void *(*)(const GLubyte *)) + *(void**)&_this->gl_data->glXGetProcAddress = GL_LoadFunction(handle, "glXGetProcAddressARB"); - _this->gl_data->glXChooseVisual = - (XVisualInfo * (*)(Display *, int, int *)) + *(void**)&_this->gl_data->glXChooseVisual = X11_GL_GetProcAddress(_this, "glXChooseVisual"); - _this->gl_data->glXCreateContext = - (GLXContext(*)(Display *, XVisualInfo *, GLXContext, int)) + *(void**)&_this->gl_data->glXCreateContext = X11_GL_GetProcAddress(_this, "glXCreateContext"); - _this->gl_data->glXDestroyContext = - (void (*)(Display *, GLXContext)) + *(void**)&_this->gl_data->glXDestroyContext = X11_GL_GetProcAddress(_this, "glXDestroyContext"); - _this->gl_data->glXMakeCurrent = - (int (*)(Display *, GLXDrawable, GLXContext)) + *(void**)&_this->gl_data->glXMakeCurrent = X11_GL_GetProcAddress(_this, "glXMakeCurrent"); - _this->gl_data->glXSwapBuffers = - (void (*)(Display *, GLXDrawable)) + *(void**)&_this->gl_data->glXSwapBuffers = X11_GL_GetProcAddress(_this, "glXSwapBuffers"); - _this->gl_data->glXQueryDrawable = - (void (*)(Display*,GLXDrawable,int,unsigned int*)) + *(void**)&_this->gl_data->glXQueryDrawable = X11_GL_GetProcAddress(_this, "glXQueryDrawable"); if (!_this->gl_data->glXQueryExtension || @@ -341,13 +333,11 @@ X11_GL_InitExtensions(_THIS) vinfo = X11_GL_GetVisual(_this, display, screen); if (vinfo) { - GLXContext (*glXGetCurrentContextFunc) (void) = - (GLXContext(*)(void)) - X11_GL_GetProcAddress(_this, "glXGetCurrentContext"); + GLXContext (*glXGetCurrentContextFunc)(void); + GLXDrawable (*glXGetCurrentDrawableFunc)(void); - GLXDrawable (*glXGetCurrentDrawableFunc) (void) = - (GLXDrawable(*)(void)) - X11_GL_GetProcAddress(_this, "glXGetCurrentDrawable"); + *(void**)&glXGetCurrentContextFunc = X11_GL_GetProcAddress(_this, "glXGetCurrentContext"); + *(void**)&glXGetCurrentDrawableFunc = X11_GL_GetProcAddress(_this, "glXGetCurrentDrawable"); if (glXGetCurrentContextFunc && glXGetCurrentDrawableFunc) { XSetWindowAttributes xattr; @@ -373,9 +363,7 @@ X11_GL_InitExtensions(_THIS) X11_XFree(vinfo); } - glXQueryExtensionsStringFunc = - (const char *(*)(Display *, int)) X11_GL_GetProcAddress(_this, - "glXQueryExtensionsString"); + *(void**)&glXQueryExtensionsStringFunc = X11_GL_GetProcAddress(_this, "glXQueryExtensionsString"); if (glXQueryExtensionsStringFunc) { extensions = glXQueryExtensionsStringFunc(display, screen); } else { @@ -385,8 +373,7 @@ X11_GL_InitExtensions(_THIS) /* Check for GLX_EXT_swap_control(_tear) */ _this->gl_data->HAS_GLX_EXT_swap_control_tear = SDL_FALSE; if (HasExtension("GLX_EXT_swap_control", extensions)) { - _this->gl_data->glXSwapIntervalEXT = - (void (*)(Display*,GLXDrawable,int)) + *(void**)&_this->gl_data->glXSwapIntervalEXT = X11_GL_GetProcAddress(_this, "glXSwapIntervalEXT"); if (HasExtension("GLX_EXT_swap_control_tear", extensions)) { _this->gl_data->HAS_GLX_EXT_swap_control_tear = SDL_TRUE; @@ -395,26 +382,23 @@ X11_GL_InitExtensions(_THIS) /* Check for GLX_MESA_swap_control */ if (HasExtension("GLX_MESA_swap_control", extensions)) { - _this->gl_data->glXSwapIntervalMESA = - (int(*)(int)) X11_GL_GetProcAddress(_this, "glXSwapIntervalMESA"); - _this->gl_data->glXGetSwapIntervalMESA = - (int(*)(void)) X11_GL_GetProcAddress(_this, - "glXGetSwapIntervalMESA"); + *(void**)&_this->gl_data->glXSwapIntervalMESA = + X11_GL_GetProcAddress(_this, "glXSwapIntervalMESA"); + *(void**)&_this->gl_data->glXGetSwapIntervalMESA = + X11_GL_GetProcAddress(_this, "glXGetSwapIntervalMESA"); } /* Check for GLX_SGI_swap_control */ if (HasExtension("GLX_SGI_swap_control", extensions)) { - _this->gl_data->glXSwapIntervalSGI = - (int (*)(int)) X11_GL_GetProcAddress(_this, "glXSwapIntervalSGI"); + *(void**)&_this->gl_data->glXSwapIntervalSGI = + X11_GL_GetProcAddress(_this, "glXSwapIntervalSGI"); } /* Check for GLX_ARB_create_context */ if (HasExtension("GLX_ARB_create_context", extensions)) { - _this->gl_data->glXCreateContextAttribsARB = - (GLXContext (*)(Display*,GLXFBConfig,GLXContext,Bool,const int *)) + *(void**)&_this->gl_data->glXCreateContextAttribsARB = X11_GL_GetProcAddress(_this, "glXCreateContextAttribsARB"); - _this->gl_data->glXChooseFBConfig = - (GLXFBConfig *(*)(Display *, int, const int *, int *)) + *(void**)&_this->gl_data->glXChooseFBConfig = X11_GL_GetProcAddress(_this, "glXChooseFBConfig"); } diff --git a/src/video/x11/SDL_x11vulkan.c b/src/video/x11/SDL_x11vulkan.c index a5896e08a..8f6552aa7 100644 --- a/src/video/x11/SDL_x11vulkan.c +++ b/src/video/x11/SDL_x11vulkan.c @@ -57,14 +57,14 @@ int X11_Vulkan_LoadLibrary(_THIS, const char *path) if(!_this->vulkan_config.loader_handle) return -1; SDL_strlcpy(_this->vulkan_config.loader_path, path, SDL_arraysize(_this->vulkan_config.loader_path)); - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)SDL_LoadFunction( + *(void**)&vkGetInstanceProcAddr = SDL_LoadFunction( _this->vulkan_config.loader_handle, "vkGetInstanceProcAddr"); if(!vkGetInstanceProcAddr) goto fail; - _this->vulkan_config.vkGetInstanceProcAddr = (void *)vkGetInstanceProcAddr; + _this->vulkan_config.vkGetInstanceProcAddr = vkGetInstanceProcAddr; _this->vulkan_config.vkEnumerateInstanceExtensionProperties = - (void *)((PFN_vkGetInstanceProcAddr)_this->vulkan_config.vkGetInstanceProcAddr)( - VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); + (PFN_vkEnumerateInstanceExtensionProperties) + _this->vulkan_config.vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceExtensionProperties"); if(!_this->vulkan_config.vkEnumerateInstanceExtensionProperties) goto fail; extensions = SDL_Vulkan_CreateInstanceExtensionsList( @@ -108,7 +108,7 @@ int X11_Vulkan_LoadLibrary(_THIS, const char *path) videoData->vulkan_xlib_xcb_library = SDL_LoadObject(libX11XCBLibraryName); if(!videoData->vulkan_xlib_xcb_library) goto fail; - videoData->vulkan_XGetXCBConnection = + *(void**)&videoData->vulkan_XGetXCBConnection = SDL_LoadFunction(videoData->vulkan_xlib_xcb_library, "XGetXCBConnection"); if(!videoData->vulkan_XGetXCBConnection) { @@ -184,7 +184,7 @@ SDL_bool X11_Vulkan_CreateSurface(_THIS, PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)vkGetInstanceProcAddr((VkInstance)instance, "vkCreateXcbSurfaceKHR"); - VkXcbSurfaceCreateInfoKHR createInfo = {}; + VkXcbSurfaceCreateInfoKHR createInfo; VkResult result; if(!vkCreateXcbSurfaceKHR) { @@ -192,6 +192,7 @@ SDL_bool X11_Vulkan_CreateSurface(_THIS, " extension is not enabled in the Vulkan instance."); return SDL_FALSE; } + SDL_zero(createInfo); createInfo.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR; createInfo.connection = videoData->vulkan_XGetXCBConnection(videoData->display); if(!createInfo.connection) @@ -214,7 +215,7 @@ SDL_bool X11_Vulkan_CreateSurface(_THIS, PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)vkGetInstanceProcAddr((VkInstance)instance, "vkCreateXlibSurfaceKHR"); - VkXlibSurfaceCreateInfoKHR createInfo = {}; + VkXlibSurfaceCreateInfoKHR createInfo; VkResult result; if(!vkCreateXlibSurfaceKHR) { @@ -222,6 +223,7 @@ SDL_bool X11_Vulkan_CreateSurface(_THIS, " extension is not enabled in the Vulkan instance."); return SDL_FALSE; } + SDL_zero(createInfo); createInfo.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR; createInfo.dpy = videoData->display; createInfo.window = (xcb_window_t)windowData->xwindow; diff --git a/src/video/yuv2rgb/yuv_rgb_sse_func.h b/src/video/yuv2rgb/yuv_rgb_sse_func.h index 0fe28a8ac..6872c0dfb 100644 --- a/src/video/yuv2rgb/yuv_rgb_sse_func.h +++ b/src/video/yuv2rgb/yuv_rgb_sse_func.h @@ -52,7 +52,7 @@ { \ __m128i red_mask, tmp1, tmp2, tmp3, tmp4; \ \ - red_mask = _mm_set1_epi16(0xF800); \ + red_mask = _mm_set1_epi16((short)0xF800); \ RGB1 = _mm_and_si128(_mm_unpacklo_epi8(_mm_setzero_si128(), R1), red_mask); \ RGB2 = _mm_and_si128(_mm_unpackhi_epi8(_mm_setzero_si128(), R1), red_mask); \ RGB3 = _mm_and_si128(_mm_unpacklo_epi8(_mm_setzero_si128(), R2), red_mask); \ @@ -145,7 +145,7 @@ PACK_RGB24_32_STEP1(R1, R2, G1, G2, B1, B2, RGB1, RGB2, RGB3, RGB4, RGB5, RGB6) #define PACK_PIXEL \ __m128i rgb_1, rgb_2, rgb_3, rgb_4, rgb_5, rgb_6, rgb_7, rgb_8; \ __m128i rgb_9, rgb_10, rgb_11, rgb_12, rgb_13, rgb_14, rgb_15, rgb_16; \ - __m128i a = _mm_set1_epi8( 0xFF ); \ + __m128i a = _mm_set1_epi8((char)0xFF); \ \ PACK_RGBA_32(r_8_11, r_8_12, g_8_11, g_8_12, b_8_11, b_8_12, a, a, rgb_1, rgb_2, rgb_3, rgb_4, rgb_5, rgb_6, rgb_7, rgb_8) \ \ @@ -156,7 +156,7 @@ PACK_RGB24_32_STEP1(R1, R2, G1, G2, B1, B2, RGB1, RGB2, RGB3, RGB4, RGB5, RGB6) #define PACK_PIXEL \ __m128i rgb_1, rgb_2, rgb_3, rgb_4, rgb_5, rgb_6, rgb_7, rgb_8; \ __m128i rgb_9, rgb_10, rgb_11, rgb_12, rgb_13, rgb_14, rgb_15, rgb_16; \ - __m128i a = _mm_set1_epi8( 0xFF ); \ + __m128i a = _mm_set1_epi8((char)0xFF); \ \ PACK_RGBA_32(b_8_11, b_8_12, g_8_11, g_8_12, r_8_11, r_8_12, a, a, rgb_1, rgb_2, rgb_3, rgb_4, rgb_5, rgb_6, rgb_7, rgb_8) \ \ @@ -167,7 +167,7 @@ PACK_RGB24_32_STEP1(R1, R2, G1, G2, B1, B2, RGB1, RGB2, RGB3, RGB4, RGB5, RGB6) #define PACK_PIXEL \ __m128i rgb_1, rgb_2, rgb_3, rgb_4, rgb_5, rgb_6, rgb_7, rgb_8; \ __m128i rgb_9, rgb_10, rgb_11, rgb_12, rgb_13, rgb_14, rgb_15, rgb_16; \ - __m128i a = _mm_set1_epi8( 0xFF ); \ + __m128i a = _mm_set1_epi8((char)0xFF); \ \ PACK_RGBA_32(a, a, r_8_11, r_8_12, g_8_11, g_8_12, b_8_11, b_8_12, rgb_1, rgb_2, rgb_3, rgb_4, rgb_5, rgb_6, rgb_7, rgb_8) \ \ @@ -178,7 +178,7 @@ PACK_RGB24_32_STEP1(R1, R2, G1, G2, B1, B2, RGB1, RGB2, RGB3, RGB4, RGB5, RGB6) #define PACK_PIXEL \ __m128i rgb_1, rgb_2, rgb_3, rgb_4, rgb_5, rgb_6, rgb_7, rgb_8; \ __m128i rgb_9, rgb_10, rgb_11, rgb_12, rgb_13, rgb_14, rgb_15, rgb_16; \ - __m128i a = _mm_set1_epi8( 0xFF ); \ + __m128i a = _mm_set1_epi8((char)0xFF); \ \ PACK_RGBA_32(a, a, b_8_11, b_8_12, g_8_11, g_8_12, r_8_11, r_8_12, rgb_1, rgb_2, rgb_3, rgb_4, rgb_5, rgb_6, rgb_7, rgb_8) \ \