[yquake2] 01/06: New upstream version 7.01~dfsg1
Simon McVittie
smcv at debian.org
Mon Jun 26 07:35:47 UTC 2017
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to branch debian/master
in repository yquake2.
commit 27ee4fadde063d3e0d1010c4e878184cb3e7d5b1
Author: Simon McVittie <smcv at debian.org>
Date: Mon Jun 26 01:32:52 2017 +0100
New upstream version 7.01~dfsg1
---
CHANGELOG | 6 ++
CMakeLists.txt | 4 +-
Makefile | 16 +++--
src/backends/windows/system.c | 48 ++++++++++++++
src/client/menu/menu.c | 6 +-
src/client/refresh/files/pcx.c | 98 ++++++++++++++++++++++++++++
src/client/refresh/gl3/gl3_main.c | 11 +++-
src/client/refresh/gl3/gl3_shaders.c | 46 +++++++++++--
src/client/refresh/gl3/header/HandmadeMath.h | 38 ++++++++---
src/client/refresh/gl3/header/local.h | 2 +
src/common/header/common.h | 3 +-
stuff/cvarlist.md | 24 ++++---
12 files changed, 266 insertions(+), 36 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index 2469874..eff9381 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -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 --git a/CMakeLists.txt b/CMakeLists.txt
index 8e4a1b3..8d4f17b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -132,7 +132,7 @@ if(${OPENAL_SUPPORT})
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 @@ set(GL1-Source
${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 @@ set(GL3-Source
${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 --git a/Makefile b/Makefile
index 6d654bb..bd4b81a 100755
--- a/Makefile
+++ b/Makefile
@@ -243,7 +243,7 @@ LDFLAGS := -L/usr/local/lib -lm
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 @@ else
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 @@ REFGL1_OBJS_ := \
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 @@ REFGL3_OBJS_ := \
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 --git a/src/backends/windows/system.c b/src/backends/windows/system.c
index f219887..4302bc6 100644
--- a/src/backends/windows/system.c
+++ b/src/backends/windows/system.c
@@ -688,6 +688,50 @@ Sys_RedirectStdout(void)
/* ======================================================================= */
+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 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
/* 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 --git a/src/client/menu/menu.c b/src/client/menu/menu.c
index 1f8c3a3..c67256d 100644
--- a/src/client/menu/menu.c
+++ b/src/client/menu/menu.c
@@ -1509,7 +1509,7 @@ static const char *idcredits[] = {
"Tim Willits",
"American McGee",
"Christian Antkow",
- "Paul Jaquays",
+ "Jennell Jaquays",
"Brandon James",
"",
"+BIZ",
@@ -1667,7 +1667,7 @@ static const char *xatcredits[] =
"Paul Steed",
"Tim Willits",
"Christian Antkow",
- "Paul Jaquays",
+ "Jennell Jaquays",
"Brandon James",
"Todd Hollenshead",
"Barrett (Bear) Alexander",
@@ -1791,7 +1791,7 @@ static const char *roguecredits[] =
"Paul Steed",
"Tim Willits",
"Christian Antkow",
- "Paul Jaquays",
+ "Jennell Jaquays",
"Brandon James",
"Todd Hollenshead",
"Barrett (Bear) Alexander",
diff --git a/src/client/refresh/files/pcx.c b/src/client/refresh/files/pcx.c
index f511775..010a224 100644
--- a/src/client/refresh/files/pcx.c
+++ b/src/client/refresh/files/pcx.c
@@ -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 @@ LoadPCX(char *origname, byte **pic, byte **palette, int *width, int *height)
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 --git a/src/client/refresh/gl3/gl3_main.c b/src/client/refresh/gl3/gl3_main.c
index 8052243..a96103d 100644
--- a/src/client/refresh/gl3/gl3_main.c
+++ b/src/client/refresh/gl3/gl3_main.c
@@ -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_drawbuffer;
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 @@ GL3_Register(void)
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_BeginFrame(float camera_separation)
GL3_UpdateUBO3D();
}
+ if(gl3_particle_square->modified)
+ {
+ gl3_particle_square->modified = false;
+ GL3_RecreateShaders();
+ }
+
/* go into 2D mode */
diff --git a/src/client/refresh/gl3/gl3_shaders.c b/src/client/refresh/gl3/gl3_shaders.c
index 4346619..9e03442 100644
--- a/src/client/refresh/gl3/gl3_shaders.c
+++ b/src/client/refresh/gl3/gl3_shaders.c
@@ -689,6 +689,18 @@ static const char* fragmentSrcParticles = MULTILINE_STRING(
}
);
+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 @@ static void initUBOs(void)
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 @@ qboolean GL3_InitShaders(void)
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 @@ qboolean GL3_InitShaders(void)
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 @@ void GL3_ShutdownShaders(void)
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 @@ void GL3_ShutdownShaders(void)
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 --git a/src/client/refresh/gl3/header/HandmadeMath.h b/src/client/refresh/gl3/header/HandmadeMath.h
index 9bdc6fe..010dc82 100644
--- a/src/client/refresh/gl3/header/HandmadeMath.h
+++ b/src/client/refresh/gl3/header/HandmadeMath.h
@@ -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 @@ HMM_SquareRootF(float Value)
{
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 @@ HMM_RSquareRootF(float Value)
{
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 @@ HMM_NLerp(hmm_quaternion Left, float Time, hmm_quaternion Right)
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 --git a/src/client/refresh/gl3/header/local.h b/src/client/refresh/gl3/header/local.h
index 2e900b5..5b49be1 100644
--- a/src/client/refresh/gl3/header/local.h
+++ b/src/client/refresh/gl3/header/local.h
@@ -468,6 +468,7 @@ extern void GL3_ShutdownMeshes(void);
// 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_anisotropic;
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 --git a/src/common/header/common.h b/src/common/header/common.h
index 19767df..a54d1db 100644
--- a/src/common/header/common.h
+++ b/src/common/header/common.h
@@ -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 --git a/stuff/cvarlist.md b/stuff/cvarlist.md
index ef21d57..8383438 100644
--- a/stuff/cvarlist.md
+++ b/stuff/cvarlist.md
@@ -13,7 +13,8 @@ General:
* **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 @@ Graphics (all renderers):
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 @@ Graphics (all renderers):
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 @@ Graphics (all renderers):
* **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 @@ Graphics (GL3 only):
* **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`.
+
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/yquake2.git
More information about the Pkg-games-commits
mailing list