Hello community, here is the log from the commit of package yamagi-quake2 for openSUSE:Factory checked in at 2017-07-08 12:33:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yamagi-quake2 (Old) and /work/SRC/openSUSE:Factory/.yamagi-quake2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yamagi-quake2" Sat Jul 8 12:33:24 2017 rev:6 rq:506594 version:7.01 Changes: -------- --- /work/SRC/openSUSE:Factory/yamagi-quake2/yamagi-quake2.changes 2017-06-22 10:40:03.112508390 +0200 +++ /work/SRC/openSUSE:Factory/.yamagi-quake2.new/yamagi-quake2.changes 2017-07-08 12:33:27.670394531 +0200 @@ -1,0 +2,12 @@ +Tue Jun 27 23:23:58 UTC 2017 - [email protected] + +- Fix broken appdata xml + +------------------------------------------------------------------- +Sat Jun 24 18:56:57 UTC 2017 - [email protected] + +- Update to version 7.0.1 + + Fix build of GL3 for platforms without SSE. + + Fix Jennel Jaquays name in credits and quit screen. + +------------------------------------------------------------------- Old: ---- quake2-7.00.tar.xz New: ---- quake2-7.01.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yamagi-quake2.spec ++++++ --- /var/tmp/diff_new_pack.805iiv/_old 2017-07-08 12:33:28.210318374 +0200 +++ /var/tmp/diff_new_pack.805iiv/_new 2017-07-08 12:33:28.210318374 +0200 @@ -18,7 +18,7 @@ Name: yamagi-quake2 -Version: 7.00 +Version: 7.01 Release: 0 Summary: Enhanced Quake 2 Source Port License: GPL-2.0 ++++++ quake2-7.00.tar.xz -> quake2-7.01.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/CHANGELOG new/quake2-7.01/CHANGELOG --- old/quake2-7.00/CHANGELOG 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/CHANGELOG 2017-06-23 15:46:41.000000000 +0200 @@ -1,3 +1,9 @@ +Quake II 7.00 to 7.01: +- Fix build of GL3 for platforms without SSE. +- Fix Jennel Jaquays name in credits and quit screen. +- Make Quake II high DPI aware on Window Vista and above. +- Fix some problems with loading dependend librarys on Windows. + Quake II 6.00 to 7.00: - Remove the broken multitexturing render path from the OpenGL 1.4 renderer. It was switched off by default in 6.00. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/CMakeLists.txt new/quake2-7.01/CMakeLists.txt --- old/quake2-7.00/CMakeLists.txt 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/CMakeLists.txt 2017-06-23 15:46:41.000000000 +0200 @@ -132,7 +132,7 @@ endif() if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - list(APPEND yquake2LinkerFlags "-lm") + list(APPEND yquake2LinkerFlags "-lm -static-libgcc") else() list(APPEND yquake2LinkerFlags "-lm -rdynamic") endif() @@ -431,6 +431,7 @@ ${GL_SRC_DIR}/files/stb.c ${GL_SRC_DIR}/files/wal.c ${COMMON_SRC_DIR}/shared/shared.c + ${COMMON_SRC_DIR}/md4.c ) set(GL1-Header @@ -465,6 +466,7 @@ ${GL_SRC_DIR}/files/stb.c ${GL_SRC_DIR}/files/wal.c ${COMMON_SRC_DIR}/shared/shared.c + ${COMMON_SRC_DIR}/md4.c ) set(GL3-Header diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/Makefile new/quake2-7.01/Makefile --- old/quake2-7.00/Makefile 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/Makefile 2017-06-23 15:46:41.000000000 +0200 @@ -243,7 +243,7 @@ else ifeq ($(YQ2_OSTYPE),OpenBSD) LDFLAGS := -L/usr/local/lib -lm else ifeq ($(YQ2_OSTYPE),Windows) -LDFLAGS := -L/usr/lib -lws2_32 -lwinmm +LDFLAGS := -L/usr/lib -lws2_32 -lwinmm -static-libgcc else ifeq ($(YQ2_OSTYPE), Darwin) LDFLAGS := $(OSX_ARCH) -lm endif @@ -430,8 +430,12 @@ release/quake2 : CFLAGS += -DUSE_OPENAL -DDEFAULT_OPENAL_DRIVER='"libopenal.so.1"' -DDLOPEN_OPENAL endif else # !DLOPEN_OPENAL -release/quake2 : CFLAGS += -DUSE_OPENAL -I/usr/local/opt/openal-soft/include -release/quake2 : LDFLAGS += -lopenal -L/usr/local/opt/openal-soft/lib +release/quake2 : CFLAGS += -DUSE_OPENAL +release/quake2 : LDFLAGS += -lopenal +ifeq ($(YQ2_OSTYPE), Darwin) +release/quake2 : CFLAGS += -I/usr/local/opt/openal-soft/include +release/quake2 : LDFLAGS += -L/usr/local/opt/openal-soft/lib +endif # Darwin endif # !DLOPEN_OPENAL endif # WITH_OPENAL @@ -816,7 +820,8 @@ src/client/refresh/files/pcx.o \ src/client/refresh/files/stb.o \ src/client/refresh/files/wal.o \ - src/common/shared/shared.o + src/common/shared/shared.o \ + src/common/md4.o ifeq ($(YQ2_OSTYPE), Windows) REFGL1_OBJS_ += \ @@ -847,7 +852,8 @@ src/client/refresh/files/pcx.o \ src/client/refresh/files/stb.o \ src/client/refresh/files/wal.o \ - src/common/shared/shared.o + src/common/shared/shared.o \ + src/common/md4.o ifeq ($(YQ2_OSTYPE), Windows) REFGL3_OBJS_ += \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/src/backends/windows/system.c new/quake2-7.01/src/backends/windows/system.c --- old/quake2-7.00/src/backends/windows/system.c 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/src/backends/windows/system.c 2017-06-23 15:46:41.000000000 +0200 @@ -688,6 +688,50 @@ /* ======================================================================= */ +typedef enum YQ2_PROCESS_DPI_AWARENESS { + YQ2_PROCESS_DPI_UNAWARE = 0, + YQ2_PROCESS_SYSTEM_DPI_AWARE = 1, + YQ2_PROCESS_PER_MONITOR_DPI_AWARE = 2 +} YQ2_PROCESS_DPI_AWARENESS; + +void +Sys_SetHighDPIMode(void) +{ + /* For Vista, Win7 and Win8 */ + BOOL(WINAPI *SetProcessDPIAware)(void) = NULL; + + /* Win8.1 and later */ + HRESULT(WINAPI *SetProcessDpiAwareness)(YQ2_PROCESS_DPI_AWARENESS dpiAwareness) = NULL; + + + HINSTANCE userDLL = LoadLibrary("USER32.DLL"); + + if (userDLL) + { + SetProcessDPIAware = (BOOL(WINAPI *)(void)) GetProcAddress(userDLL, + "SetProcessDPIAware"); + } + + + HINSTANCE shcoreDLL = LoadLibrary("SHCORE.DLL"); + + if (shcoreDLL) + { + SetProcessDpiAwareness = (HRESULT(WINAPI *)(YQ2_PROCESS_DPI_AWARENESS)) + GetProcAddress(shcoreDLL, "SetProcessDpiAwareness"); + } + + + if (SetProcessDpiAwareness) { + SetProcessDpiAwareness(YQ2_PROCESS_PER_MONITOR_DPI_AWARE); + } + else if (SetProcessDPIAware) { + SetProcessDPIAware(); + } +} + +/* ======================================================================= */ + /* * Windows main function. Containts the * initialization code and the main loop @@ -708,6 +752,10 @@ /* Make the current instance global */ global_hInstance = hInstance; + /* Force DPI awareness */ + Sys_SetHighDPIMode(); + + /* FIXME: No one can see this! */ printf("Yamagi Quake II v%s\n", YQ2VERSION); printf("=====================\n\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/src/client/menu/menu.c new/quake2-7.01/src/client/menu/menu.c --- old/quake2-7.00/src/client/menu/menu.c 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/src/client/menu/menu.c 2017-06-23 15:46:41.000000000 +0200 @@ -1509,7 +1509,7 @@ "Tim Willits", "American McGee", "Christian Antkow", - "Paul Jaquays", + "Jennell Jaquays", "Brandon James", "", "+BIZ", @@ -1667,7 +1667,7 @@ "Paul Steed", "Tim Willits", "Christian Antkow", - "Paul Jaquays", + "Jennell Jaquays", "Brandon James", "Todd Hollenshead", "Barrett (Bear) Alexander", @@ -1791,7 +1791,7 @@ "Paul Steed", "Tim Willits", "Christian Antkow", - "Paul Jaquays", + "Jennell Jaquays", "Brandon James", "Todd Hollenshead", "Barrett (Bear) Alexander", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/src/client/refresh/files/pcx.c new/quake2-7.01/src/client/refresh/files/pcx.c --- old/quake2-7.00/src/client/refresh/files/pcx.c 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/src/client/refresh/files/pcx.c 2017-06-23 15:46:41.000000000 +0200 @@ -26,6 +26,96 @@ #include "../ref_shared.h" +// Fix Jennell Jaquays' name in the Quitscreen +// this is 98x11 pixels, each value an index +// into the standard baseq2/pak0/pics/quit.pcx colormap +static unsigned char quitscreenfix[] = { + 191,191,191,47,28,39,4,4,39,1,47,28,47,28,29,1, + 28,28,47,31,31,1,29,31,1,28,47,47,47,47,29,28, + 47,31,30,28,40,40,4,28,28,40,39,40,29,102,102,245, + 28,39,4,4,39,103,40,40,1,1,102,94,47,47,1,94, + 94,94,94,47,102,245,103,103,103,47,1,102,1,102,29,29, + 29,29,47,28,245,31,31,31,47,1,28,1,28,47,1,102, 102,102, + 191,191,142,47,4,8,8,8,8,4,47,28,1,28,29,28, + 29,29,31,1,47,245,47,47,28,28,31,47,28,1,31,1, + 1,245,47,39,8,8,8,40,39,8,8,8,39,1,1,47, + 4,8,8,8,8,4,47,29,28,31,28,28,29,28,28,28, + 29,28,31,28,47,29,1,28,31,47,1,28,1,1,29,29, + 29,47,28,1,28,28,245,28,28,28,28,47,29,28,47,102,102,103, + 191,191,142,31,29,36,8,8,36,31,40,39,40,4,1,1, + 39,40,39,40,40,31,28,40,40,4,39,40,28,47,31,40, + 39,40,4,1,36,8,8,4,47,36,8,8,39,1,1,1, + 29,36,8,8,36,4,4,39,40,4,47,1,47,40,40,39, + 39,40,28,40,40,47,45,39,40,28,4,39,40,4,39,1, + 28,4,40,28,28,4,39,28,47,40,40,39,40,39,28,28,1,103, + 1,142,29,142,28,39,8,8,36,36,8,8,8,8,36,1, + 8,8,8,8,8,36,39,8,8,8,8,8,36,40,36,8, + 8,8,8,36,40,8,8,40,1,4,8,8,40,1,1,31, + 28,39,8,8,36,8,8,8,8,8,36,31,36,8,8,8, + 8,8,36,8,8,4,40,8,8,36,8,8,8,8,8,36, + 40,8,8,40,39,8,8,40,36,8,8,8,8,8,39,29,28,29, + 103,191,142,47,28,40,8,8,40,8,8,33,33,8,8,36, + 8,8,36,36,8,8,36,8,8,36,36,8,8,36,8,8, + 33,33,8,8,36,8,8,4,47,40,8,8,39,47,28,245, + 28,40,8,8,40,40,36,36,33,8,8,36,8,8,36,36, + 8,8,36,8,8,40,40,8,8,40,4,36,36,33,8,8, + 36,8,8,39,39,8,8,36,8,8,33,36,36,39,28,1,47,28, + 103,246,1,47,1,39,8,8,40,8,8,8,8,8,8,36, + 8,8,4,40,8,8,36,8,8,40,4,8,8,36,8,8, + 8,8,8,8,36,8,8,40,29,39,8,8,39,1,1,47, + 1,39,8,8,40,36,8,8,8,8,8,36,8,8,4,40, + 8,8,36,8,8,40,39,8,8,40,36,8,8,8,8,8, + 36,8,8,39,40,8,8,40,36,8,8,8,8,36,28,1,1,29, + 103,47,40,40,4,36,8,8,36,8,8,33,36,36,36,4, + 8,8,39,4,8,8,36,8,8,4,40,8,8,36,8,8, + 33,36,36,36,36,8,8,40,31,40,8,8,40,47,40,40, + 4,36,8,8,36,8,8,33,33,8,8,36,8,8,36,36, + 8,8,36,8,8,36,36,8,8,36,8,8,33,33,8,8, + 36,8,8,36,36,8,8,4,39,36,36,33,8,8,4,40,4,31, + 191,40,8,8,8,8,8,36,29,36,8,8,8,8,8,40, + 8,8,40,4,8,8,36,8,8,40,39,8,8,39,36,8, + 8,8,8,8,39,8,8,39,45,4,8,8,40,40,8,8, + 8,8,8,36,29,36,8,8,8,8,8,40,36,8,8,8, + 8,8,40,36,8,8,8,8,8,40,36,8,8,8,8,8, + 40,36,8,8,8,8,8,36,8,8,8,8,8,36,4,8,8,4, + 47,45,40,39,40,39,39,245,246,1,40,40,40,39,4,47, + 40,4,28,29,39,40,30,39,39,1,28,40,4,28,1,40, + 40,40,39,4,29,40,39,1,1,1,4,4,47,45,40,39, + 40,39,39,245,246,29,39,40,40,40,4,47,28,39,39,36, + 8,8,4,1,39,40,4,40,40,1,29,4,39,4,40,39, + 1,39,36,36,33,8,8,4,39,4,39,4,40,47,36,8,8,40, + 1,28,47,28,28,29,1,28,47,28,31,28,28,27,47,28, + 45,246,30,28,245,29,47,47,29,30,28,47,27,1,246,47, + 47,47,1,28,47,28,47,1,47,47,1,29,29,47,47,28, + 28,29,1,47,1,47,47,28,31,47,47,31,47,47,47,4, + 8,8,39,245,1,47,28,245,28,47,31,28,47,28,28,28, + 40,8,8,8,8,8,36,47,28,1,246,47,1,40,8,8,36,1, + 47,1,102,1,102,102,47,94,94,102,47,47,102,102,102,102, + 94,1,94,47,102,1,102,47,30,30,102,27,47,102,94,1, + 102,47,1,94,102,103,1,102,103,103,47,47,47,29,1,29, + 28,28,29,28,1,47,28,31,29,1,47,29,28,1,1,47, + 4,39,1,47,47,1,28,28,28,47,1,28,45,28,47,47, + 1,40,4,4,40,4,29,28,31,45,47,28,47,47,4,40,28,28 +}; + +static void +fixQuitScreen(byte* px) +{ + // overwrite 11 lines, 98 pixels each, from quitscreenfix[] + // starting at line 140, column 188 + // quitscreen is 320x240 px + int r, qsIdx = 0; + + px += 140*320; // go to line 140 + px += 188; // to colum 188 + for(r=0; r<11; ++r) + { + memcpy(px, quitscreenfix+qsIdx, 98); + qsIdx += 98; + px += 320; + } +} + void LoadPCX(char *origname, byte **pic, byte **palette, int *width, int *height) { @@ -134,6 +224,14 @@ free(*pic); *pic = NULL; } + else if(pcx->xmax == 319 && pcx->ymax == 239 + && Q_strcasecmp(origname, "pics/quit.pcx") == 0 + && Com_BlockChecksum(pcx, len) == 3329419434u) + { + // it's the quit screen, and the baseq2 one (identified by checksum) + // so fix it + fixQuitScreen(*pic); + } ri.FS_FreeFile(pcx); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/src/client/refresh/gl3/gl3_main.c new/quake2-7.01/src/client/refresh/gl3/gl3_main.c --- old/quake2-7.00/src/client/refresh/gl3/gl3_main.c 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/src/client/refresh/gl3/gl3_main.c 2017-06-23 15:46:41.000000000 +0200 @@ -29,9 +29,6 @@ #include "../../header/ref.h" #include "header/local.h" -#ifndef __SSE__ -#define HANDMADE_MATH_NO_SSE -#endif #define HANDMADE_MATH_IMPLEMENTATION #include "header/HandmadeMath.h" @@ -99,6 +96,7 @@ cvar_t *gl_clear; cvar_t *gl3_particle_size; cvar_t *gl3_particle_fade_factor; +cvar_t *gl3_particle_square; cvar_t *gl_lefthand; cvar_t *gl_farsee; @@ -211,6 +209,7 @@ gl_customheight = ri.Cvar_Get("gl_customheight", "768", CVAR_ARCHIVE); gl3_particle_size = ri.Cvar_Get("gl3_particle_size", "40", CVAR_ARCHIVE); gl3_particle_fade_factor = ri.Cvar_Get("gl3_particle_fade_factor", "1.2", CVAR_ARCHIVE); + gl3_particle_square = ri.Cvar_Get("gl3_particle_square", "0", CVAR_ARCHIVE); gl_norefresh = ri.Cvar_Get("gl_norefresh", "0", 0); gl_drawentities = ri.Cvar_Get("gl_drawentities", "1", 0); @@ -1658,6 +1657,12 @@ GL3_UpdateUBO3D(); } + if(gl3_particle_square->modified) + { + gl3_particle_square->modified = false; + GL3_RecreateShaders(); + } + /* go into 2D mode */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/src/client/refresh/gl3/gl3_shaders.c new/quake2-7.01/src/client/refresh/gl3/gl3_shaders.c --- old/quake2-7.00/src/client/refresh/gl3/gl3_shaders.c 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/src/client/refresh/gl3/gl3_shaders.c 2017-06-23 15:46:41.000000000 +0200 @@ -689,6 +689,18 @@ } ); +static const char* fragmentSrcParticlesSquare = MULTILINE_STRING( + + // it gets attributes and uniforms from fragmentCommon3D + + in vec4 passColor; + + void main() + { + outColor = passColor; + } +); + #undef MULTILINE_STRING @@ -977,10 +989,8 @@ gl3state.currentUBO = gl3state.uniLightsUBO; } -qboolean GL3_InitShaders(void) +static qboolean createShaders(void) { - initUBOs(); - if(!initShader2D(&gl3state.si2D, vertexSrc2D, fragmentSrc2D)) { R_Printf(PRINT_ALL, "WARNING: Failed to create shader program for textured 2D rendering!\n"); @@ -1053,7 +1063,14 @@ R_Printf(PRINT_ALL, "WARNING: Failed to create shader program for rendering flat-colored models!\n"); return false; } - if(!initShader3D(&gl3state.siParticle, vertexSrcParticles, fragmentSrcParticles)) + + const char* particleFrag = fragmentSrcParticles; + if(gl3_particle_square->value != 0.0f) + { + particleFrag = fragmentSrcParticlesSquare; + } + + if(!initShader3D(&gl3state.siParticle, vertexSrcParticles, particleFrag)) { R_Printf(PRINT_ALL, "WARNING: Failed to create shader program for rendering particles!\n"); return false; @@ -1064,7 +1081,14 @@ return true; } -void GL3_ShutdownShaders(void) +qboolean GL3_InitShaders(void) +{ + initUBOs(); + + return createShaders(); +} + +static void deleteShaders(void) { const gl3ShaderInfo_t siZero = {0}; for(gl3ShaderInfo_t* si = &gl3state.si2D; si <= &gl3state.siParticle; ++si) @@ -1072,6 +1096,11 @@ if(si->shaderProgram != 0) glDeleteProgram(si->shaderProgram); *si = siZero; } +} + +void GL3_ShutdownShaders(void) +{ + deleteShaders(); // let's (ab)use the fact that all 4 UBO handles are consecutive fields // of the gl3state struct @@ -1079,6 +1108,13 @@ gl3state.uniCommonUBO = gl3state.uni2DUBO = gl3state.uni3DUBO = gl3state.uniLightsUBO = 0; } +qboolean GL3_RecreateShaders(void) +{ + // delete and recreate the existing shaders (but not the UBOs) + deleteShaders(); + return createShaders(); +} + static inline void updateUBO(GLuint ubo, GLsizeiptr size, void* data) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/src/client/refresh/gl3/header/HandmadeMath.h new/quake2-7.01/src/client/refresh/gl3/header/HandmadeMath.h --- old/quake2-7.00/src/client/refresh/gl3/header/HandmadeMath.h 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/src/client/refresh/gl3/header/HandmadeMath.h 2017-06-23 15:46:41.000000000 +0200 @@ -173,6 +173,8 @@ (*) Resolved compiler warnings on gcc and g++ 1.1.2 (*) Fixed invalid HMMDEF's in the function definitions + 1.1.3 + (*) Fixed compile error in C mode LICENSE @@ -198,7 +200,27 @@ Insofaras (@insofaras) */ -#ifndef HANDMADE_NO_SSE + +// let's figure out if SSE is really available (unless disabled anyway) +// (it isn't on non-x86/x86_64 platforms or even x86 without explicit SSE support) +// => only use "#ifdef HANDMADE_MATH__USE_SSE" to check for SSE support below this block! +#ifndef HANDMADE_MATH_NO_SSE + +# ifdef _MSC_VER + // MSVC supports SSE in amd64 mode or _M_IX86_FP >= 1 (2 means SSE2) +# if defined(_M_AMD64) || ( defined(_M_IX86_FP) && _M_IX86_FP >= 1 ) +# define HANDMADE_MATH__USE_SSE 1 +# endif +# else // not MSVC, probably GCC, clang, icc or something that doesn't support SSE anyway +# ifdef __SSE__ // they #define __SSE__ if it's supported +# define HANDMADE_MATH__USE_SSE 1 +# endif // __SSE__ +# endif // not _MSC_VER + +#endif // #ifndef HANDMADE_MATH_NO_SSE + + +#ifdef HANDMADE_MATH__USE_SSE #include <xmmintrin.h> #endif @@ -755,12 +777,12 @@ { float Result = 0.0f; -#ifdef HANDMADE_MATH_NO_SSE - Result = sqrtf(Value); -#else +#ifdef HANDMADE_MATH__USE_SSE __m128 In = _mm_set_ss(Value); __m128 Out = _mm_sqrt_ss(In); Result = _mm_cvtss_f32(Out); +#else + Result = sqrtf(Value); #endif return(Result); @@ -771,12 +793,12 @@ { float Result = 0.0f; -#ifdef HANDMADE_MATH_NO_SSE - Result = 1.0f/HMM_SquareRootF(Value); -#else +#ifdef HANDMADE_MATH__USE_SSE __m128 In = _mm_set_ss(Value); __m128 Out = _mm_rsqrt_ss(In); Result = _mm_cvtss_f32(Out); +#else + Result = 1.0f/HMM_SquareRootF(Value); #endif return(Result); @@ -1692,7 +1714,7 @@ Result.Z = HMM_Lerp(Left.Z, Time, Right.Z); Result.W = HMM_Lerp(Left.W, Time, Right.W); - HMM_NormalizeQuaternion(Result); + Result = HMM_NormalizeQuaternion(Result); return(Result); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/src/client/refresh/gl3/header/local.h new/quake2-7.01/src/client/refresh/gl3/header/local.h --- old/quake2-7.00/src/client/refresh/gl3/header/local.h 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/src/client/refresh/gl3/header/local.h 2017-06-23 15:46:41.000000000 +0200 @@ -468,6 +468,7 @@ // gl3_shaders.c +extern qboolean GL3_RecreateShaders(void); extern qboolean GL3_InitShaders(void); extern void GL3_ShutdownShaders(void); extern void GL3_UpdateUBOCommon(void); @@ -507,6 +508,7 @@ extern cvar_t *gl_lightlevel; extern cvar_t *gl3_overbrightbits; extern cvar_t *gl3_particle_fade_factor; +extern cvar_t *gl3_particle_square; extern cvar_t *gl_modulate; extern cvar_t *gl_lightmap; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/src/common/header/common.h new/quake2-7.01/src/common/header/common.h --- old/quake2-7.00/src/common/header/common.h 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/src/common/header/common.h 2017-06-23 15:46:41.000000000 +0200 @@ -32,8 +32,7 @@ #include "shared.h" #include "crc.h" -/* Should have 4 characters. */ -#define YQ2VERSION "7.00" +#define YQ2VERSION "7.01" #define BASEDIRNAME "baseq2" #ifndef YQ2OSTYPE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quake2-7.00/stuff/cvarlist.md new/quake2-7.01/stuff/cvarlist.md --- old/quake2-7.00/stuff/cvarlist.md 2017-06-08 17:29:51.000000000 +0200 +++ new/quake2-7.01/stuff/cvarlist.md 2017-06-23 15:46:41.000000000 +0200 @@ -13,7 +13,8 @@ * **basedir**: Directory from which the game data is loaded. Can be used in startup scripts, to test binaries, etc. If not set, the directory - containing the binaries is used. + containing the binaries is used. + To use this cvar, set it at startup, like `./quake2 +set basedir /path/to/quake2` * **cl_async**: If set to `1` (the default) the client is asynchronous. The client framerate is fixed, the renderer framerate is variable. @@ -76,7 +77,7 @@ with an aspect ratio of 4:3, regardless what the actual windows size or resolution is. -* **cl_gun**: Decides weather the gun is drawn. If set to `0` the gun +* **cl_gun**: Decides whether the gun is drawn. If set to `0` the gun is omitted. If set to `1` the gun is only drawn if the FOV is equal or smaller than 90. This was the default with Vanilla Quake II. If set to `2` the gun is drawn regardless of the FOV. This is the default @@ -103,11 +104,11 @@ and `16`. Anisotropic filtering gives a huge improvement to texture quality by a negligible performance impact. -* **gl_consolescale** / **gl_hudscale** / **gl_menuscale**: Scale the - console, the HUD and the menu. The value given is the scale factor, a - factor of `1` means no scaling. Values greater `1` make the objects - bigger, values lower 1 smaller. The special value `-1` sets the optimal - scaling factor for the current resolution. +* **gl_consolescale** / **gl_hudscale** / **gl_menuscale**, **crosshair_scale**: + Scale the console, the HUD, the menu and the crosshair. The value given + is the scale factor, a factor of `1` means no scaling. Values greater + `1` make the objects bigger, values lower 1 smaller. The special value + `-1` sets the optimal scaling factor for the current resolution. * **gl_customheight** / **gl_customwidth**: Specifies a custom resolution, the windows will be *gl_customheight* pixels high and @@ -126,8 +127,8 @@ * **gl_msaa_samples**: Full scene anti aliasing samples. The number of samples depends on the GPU driver, most drivers support at least - `2`, `4` and `8` samples. If an invalid value is set the value is - reverted the highest number of samples supported. Especially on OpenGL + `2`, `4` and `8` samples. If an invalid value is set, the value is + reverted to the highest number of samples supported. Especially on OpenGL 3.2 anti aliasing is expensive and can lead to a huge performance hit, so try setting it to a lower value if your framerate is too low. @@ -192,3 +193,8 @@ * **gl3_particle_fade_factor**: "softness" of particles: higher values look less soft. Defaults to `1.2`. A value of `10` looks similar to the GL1 particles. + +* **gl3_particle_square**: If set to `1`, particles are rendered as squares, + like in the old software renderer or Quake1. Default is `0`. + + ++++++ yamagi-quake2.appdata.xml ++++++ --- /var/tmp/diff_new_pack.805iiv/_old 2017-07-08 12:33:28.658255192 +0200 +++ /var/tmp/diff_new_pack.805iiv/_new 2017-07-08 12:33:28.658255192 +0200 @@ -1,33 +1,28 @@ <?xml version="1.0" encoding="UTF-8"?> <component type="desktop"> - <id>yamagi-quake2.desktop</id> - <metadata_license>CC0</metadata_license> - <project_license>GPL-2.0+</project_license> - <name>Yamagi Quake 2</name> - <summary>Enhanced Quake 2 Source Port</summary> - - <description> - <p> - Yamagi Quake II is an enhanced client for id Software's Quake II. The + <id>yamagi-quake2.desktop</id> + <metadata_license>CC0</metadata_license> + <project_license>GPL-2.0+</project_license> + <name>Yamagi Quake 2</name> + <summary>Enhanced Quake 2 Source Port</summary> + <description> + <p> + Yamagi Quake II is an enhanced client for id Software's Quake II. The main focus is an unchanged single player experience; the gameplay and graphics are unaltered. It also features: anisotropic filtering and multi-sample anti-aliasing, widescreen aspect ratio and unlimited screen size, compatibility with most mods, optional support for retexturing packs and HUD scaling. </p> - </description> - - <screenshots> - <screenshot type="default"> + </description> + <screenshots> + <screenshot type="default"> <caption>Gameplay</caption> - <image>http://spawnhost.files.wordpress.com/2012/07/yamq2_linux_oss4.jpg</image> - </screenshot> - </screenshots> - - <url type="homepage">https://www.yamagi.org/quake2/</url> - - <provides> - <binary>yquake2</binary> - </provides> - -</component> + <image>http://spawnhost.files.wordpress.com/2012/07/yamq2_linux_oss4.jpg</image> + </screenshot> + </screenshots> + <url type="homepage">https://www.yamagi.org/quake2/</url> + <provides> + <binary>yquake2</binary> + </provides> +</component>
