From 22533dfab8a9f5c93536cd85213beb450f79a252 Mon Sep 17 00:00:00 2001 From: Shpoike Date: Sat, 11 Feb 2023 05:20:02 +0000 Subject: [PATCH] Fix up some minor portability issues. --- CMakeLists.txt | 5 ++++- engine/client/cl_parse.c | 6 +++--- engine/client/sys_linux.c | 8 ++++---- engine/common/bothdefs.h | 2 +- engine/common/net_ice.c | 2 +- engine/gl/gl_videgl.c | 4 ++-- engine/gl/gl_vidnt.c | 20 +++++++++++++++----- engine/gl/glquake.h | 2 +- engine/server/sv_sys_unix.c | 4 ++-- 9 files changed, 33 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 945076eb6..602fcb863 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,7 +131,10 @@ ELSE() SET(FTE_LIB_DEFINES ${FTE_LIB_DEFINES};NO_OPENGL) ENDIF() -FIND_PACKAGE(JPEG) +SET(FTE_DEP_JPEG true CACHE BOOL "Link against libjpeg.") +IF(FTE_DEP_JPEG) + FIND_PACKAGE(JPEG) +ENDIF() IF(JPEG_FOUND) INCLUDE_DIRECTORIES( ${JPEG_INCLUDE_DIRS} ) SET(FTE_LIB_DEFINES ${FTE_LIB_DEFINES};LIBJPEG_STATIC) diff --git a/engine/client/cl_parse.c b/engine/client/cl_parse.c index 3a40be6c1..199615283 100644 --- a/engine/client/cl_parse.c +++ b/engine/client/cl_parse.c @@ -1000,10 +1000,10 @@ qboolean CL_CheckOrEnqueDownloadFile (const char *filename, const char *localnam { char base[MAX_QPATH]; COM_FileBase(filename, base, sizeof(base)); -#ifndef FTE_TARGET_WEB - if (strncmp(cl_download_mapsrc.string, "http://", 7) && !strncmp(cl_download_mapsrc.string, "https://", 8)) +#ifndef FTE_TARGET_WEB //don't care about prefixes in the web build, for site-relative uris. + if (strncmp(cl_download_mapsrc.string, "http://", 7) && strncmp(cl_download_mapsrc.string, "https://", 8)) { - Con_Printf("%s: Scheme not specified.\n", cl_download_mapsrc.name); + Con_Printf("%s: Scheme not specified, assuming https.\n", cl_download_mapsrc.name); filename = va("https://%s/%s", cl_download_mapsrc.string, filename+5); } else diff --git a/engine/client/sys_linux.c b/engine/client/sys_linux.c index cb0eaa496..407afa06a 100644 --- a/engine/client/sys_linux.c +++ b/engine/client/sys_linux.c @@ -993,10 +993,10 @@ dllhandle_t *Sys_LoadLibrary(const char *name, dllfunction_t *funcs) lib = NULL; if (!lib) lib = dlopen (name, RTLD_LOCAL|RTLD_LAZY); - if (!lib && !strstr(name, ".so")) - lib = dlopen (va("%s.so", name), RTLD_LOCAL|RTLD_LAZY); - if (!lib && !strstr(name, ".so") && !strncmp(name, "./", 2) && host_parms.binarydir) - lib = dlopen (va("%s%s.so", host_parms.binarydir, name+2), RTLD_LOCAL|RTLD_LAZY); + if (!lib && !strstr(name, ARCH_DL_POSTFIX)) + lib = dlopen (va("%s"ARCH_DL_POSTFIX, name), RTLD_LOCAL|RTLD_LAZY); + if (!lib && !strstr(name, ARCH_DL_POSTFIX) && !strncmp(name, "./", 2) && host_parms.binarydir) + lib = dlopen (va("%s%s"ARCH_DL_POSTFIX, host_parms.binarydir, name+2), RTLD_LOCAL|RTLD_LAZY); if (!lib) { Con_DLPrintf(2,"%s\n", dlerror()); diff --git a/engine/common/bothdefs.h b/engine/common/bothdefs.h index 21564c3a1..1bf83805e 100644 --- a/engine/common/bothdefs.h +++ b/engine/common/bothdefs.h @@ -690,7 +690,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define ARCH_CPU_POSTFIX "x86" #elif defined(__powerpc__) || defined(__ppc__) #define ARCH_CPU_POSTFIX "ppc" - #elif defined(__aarch64__) + #elif defined(__aarch64__) || defined(__arm64__) #define ARCH_CPU_POSTFIX "arm64" #elif defined(__arm__) #ifdef __SOFTFP__ diff --git a/engine/common/net_ice.c b/engine/common/net_ice.c index 67d9fc632..78088baf5 100644 --- a/engine/common/net_ice.c +++ b/engine/common/net_ice.c @@ -1583,7 +1583,7 @@ static void MDNS_ProcessPacket(qbyte *inmsg, size_t inmsgsize, netadr_t *source) static void MDNS_ReadPackets(void) { qbyte inmsg[9000]; - ssize_t inmsgsize; + int inmsgsize; netadr_t adr; struct sockaddr_qstorage source; diff --git a/engine/gl/gl_videgl.c b/engine/gl/gl_videgl.c index 88bbae836..fdf2fa141 100644 --- a/engine/gl/gl_videgl.c +++ b/engine/gl/gl_videgl.c @@ -182,12 +182,12 @@ qboolean EGL_LoadLibrary(char *driver) #ifndef _WIN32 if (!eslibrary) { - eslibrary = dlopen("libGL.so.1.2", RTLD_NOW|RTLD_GLOBAL); + eslibrary = dlopen("libGL"ARCH_DL_POSTFIX".1.2", RTLD_NOW|RTLD_GLOBAL); if (eslibrary) Sys_Printf("Loaded libGL.so.1.2\n"); } if (!eslibrary) { - eslibrary = dlopen("libGL.so.1", RTLD_NOW|RTLD_GLOBAL); + eslibrary = dlopen("libGL"ARCH_DL_POSTFIX".1", RTLD_NOW|RTLD_GLOBAL); if (eslibrary) Sys_Printf("Loaded libGL.so.1\n"); } if (!eslibrary) diff --git a/engine/gl/gl_vidnt.c b/engine/gl/gl_vidnt.c index 71bcea473..6cfb54ae4 100644 --- a/engine/gl/gl_vidnt.c +++ b/engine/gl/gl_vidnt.c @@ -1562,12 +1562,22 @@ static int GLVID_SetMode (rendererstate_t *info, unsigned char *palette) stat = CreateMainWindow(info, true); if (stat) { + EGLConfig cfg; maindc = GetDC(mainwindow); - stat = EGL_Init (info, palette, EGL_PLATFORM_WIN32, mainwindow, maindc, (EGLNativeWindowType)mainwindow, (EGLNativeDisplayType)maindc); - if (stat) - if (!GL_Init(info, &EGL_Proc)) - return false; + if (!EGL_InitDisplay(info, EGL_PLATFORM_WIN32, maindc, (EGLNativeDisplayType)maindc, &cfg)) + { + Con_Printf("couldn't find suitable EGL config\n"); + return false; + } + if (!EGL_InitWindow(info, EGL_PLATFORM_WIN32, mainwindow, (EGLNativeWindowType)mainwindow, cfg)) + { + Con_Printf("couldn't initialise EGL context\n"); + return false; + } + + if (!GL_Init(info, &EGL_Proc)) + return false; } break; #endif @@ -3369,7 +3379,7 @@ rendererinfo_t eglrendererinfo = GLBE_Init, GLBE_GenBrushModelVBO, GLBE_ClearVBO, - GLBE_UploadAllLightmaps, + GLBE_UpdateLightmaps, GLBE_SelectEntity, GLBE_SelectDLight, GLBE_Scissor, diff --git a/engine/gl/glquake.h b/engine/gl/glquake.h index ae71db1e1..f3429a831 100644 --- a/engine/gl/glquake.h +++ b/engine/gl/glquake.h @@ -62,7 +62,7 @@ void ModBrush_LoadGLStuff(void *ctx, void *data, size_t a, size_t b); //data === #define GLdouble GLfloat #else #ifdef _WIN32 //windows might use the standard header filename, but it still requires that we manually include windows.h first. - #ifndef WIN32_BLOATED + #if !defined(WIN32_BLOATED) && !defined(WIN32_LEAN_AND_MEAN) #define WIN32_LEAN_AND_MEAN #endif #include diff --git a/engine/server/sv_sys_unix.c b/engine/server/sv_sys_unix.c index d817f6dd7..3f4267946 100644 --- a/engine/server/sv_sys_unix.c +++ b/engine/server/sv_sys_unix.c @@ -1271,8 +1271,8 @@ dllhandle_t *Sys_LoadLibrary(const char *name, dllfunction_t *funcs) dllhandle_t *lib; lib = dlopen (name, RTLD_LAZY); - if (!lib && !strstr(name, ".so")) - lib = dlopen (va("%s.so", name), RTLD_LAZY); + if (!lib && !strstr(name, ARCH_DL_POSTFIX)) + lib = dlopen (va("%s"ARCH_DL_POSTFIX, name), RTLD_LAZY); if (!lib) { const char *err = dlerror();