mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-22 04:31:09 +00:00
opengl renders: support of gl_version_override cvar
Provides way to check render with lower officialy reported OpenGL version. Same as: * MESA_GL_VERSION_OVERRIDE=4.6 * MESA_GLSL_VERSION_OVERRIDE=460
This commit is contained in:
parent
5babb3b96a
commit
02b8e85c01
15 changed files with 173 additions and 21 deletions
2
Makefile
2
Makefile
|
@ -1115,6 +1115,7 @@ REFGL3_OBJS_ := \
|
||||||
src/client/refresh/gl3/gl3_surf.o \
|
src/client/refresh/gl3/gl3_surf.o \
|
||||||
src/client/refresh/gl3/gl3_warp.o \
|
src/client/refresh/gl3/gl3_warp.o \
|
||||||
src/client/refresh/gl3/gl3_shaders.o \
|
src/client/refresh/gl3/gl3_shaders.o \
|
||||||
|
src/client/refresh/files/glshaders.o \
|
||||||
src/client/refresh/files/mesh.o \
|
src/client/refresh/files/mesh.o \
|
||||||
src/client/refresh/files/light.o \
|
src/client/refresh/files/light.o \
|
||||||
src/client/refresh/files/surf.o \
|
src/client/refresh/files/surf.o \
|
||||||
|
@ -1160,6 +1161,7 @@ REFGL4_OBJS_ := \
|
||||||
src/client/refresh/gl4/gl4_surf.o \
|
src/client/refresh/gl4/gl4_surf.o \
|
||||||
src/client/refresh/gl4/gl4_warp.o \
|
src/client/refresh/gl4/gl4_warp.o \
|
||||||
src/client/refresh/gl4/gl4_shaders.o \
|
src/client/refresh/gl4/gl4_shaders.o \
|
||||||
|
src/client/refresh/files/glshaders.o \
|
||||||
src/client/refresh/files/mesh.o \
|
src/client/refresh/files/mesh.o \
|
||||||
src/client/refresh/files/light.o \
|
src/client/refresh/files/light.o \
|
||||||
src/client/refresh/files/surf.o \
|
src/client/refresh/files/surf.o \
|
||||||
|
|
|
@ -473,6 +473,14 @@ Set `0` by default.
|
||||||
Other supported values: `GL_NEAREST_MIPMAP_NEAREST`,
|
Other supported values: `GL_NEAREST_MIPMAP_NEAREST`,
|
||||||
`GL_NEAREST_MIPMAP_LINEAR`, `GL_LINEAR_MIPMAP_LINEAR`
|
`GL_NEAREST_MIPMAP_LINEAR`, `GL_LINEAR_MIPMAP_LINEAR`
|
||||||
|
|
||||||
|
* **gl_version_override**: Override required by render OpenGL version,
|
||||||
|
should be used only for debug purpose and useful if OpenGL implementation
|
||||||
|
does not report required version and implements required by render extensions.
|
||||||
|
- `0`: check required version of OpenGL,
|
||||||
|
- `1`: render will try to run with OpenGL 1.0,
|
||||||
|
- `2`: render will try to run with OpenGL 2.0,
|
||||||
|
- `3`: render will try to run with OpenGL 3.0,
|
||||||
|
- `4`: render will try to run with OpenGL 4.0.
|
||||||
|
|
||||||
## Graphics (OpenGL 1.4 only)
|
## Graphics (OpenGL 1.4 only)
|
||||||
|
|
||||||
|
|
86
src/client/refresh/files/glshaders.c
Normal file
86
src/client/refresh/files/glshaders.c
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 1997-2001 Id Software, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
* your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
* See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
* 02111-1307, USA.
|
||||||
|
*
|
||||||
|
* =======================================================================
|
||||||
|
*
|
||||||
|
* Shared code for generate GL shaders
|
||||||
|
*
|
||||||
|
* =======================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "../ref_shared.h"
|
||||||
|
|
||||||
|
const char*
|
||||||
|
glshader_version(int major_version, int minor_version)
|
||||||
|
{
|
||||||
|
#ifdef YQ2_GL3_GLES3
|
||||||
|
if (major_version == 2)
|
||||||
|
{
|
||||||
|
return "#version 100\nprecision mediump float;\n";
|
||||||
|
}
|
||||||
|
else if (major_version == 3)
|
||||||
|
{
|
||||||
|
switch(minor_version)
|
||||||
|
{
|
||||||
|
case 0: return "#version 300 es\nprecision mediump float;\n";
|
||||||
|
case 1: return "#version 310 es\nprecision mediump float;\n";
|
||||||
|
case 2: return "#version 320 es\nprecision mediump float;\n";
|
||||||
|
default: return "#version 320 es\nprecision mediump float;\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else // Desktop GL
|
||||||
|
if (major_version == 2)
|
||||||
|
{
|
||||||
|
switch(minor_version)
|
||||||
|
{
|
||||||
|
case 0: return "#version 110\n";
|
||||||
|
case 1: return "#version 120\n";
|
||||||
|
default: return "#version 120\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (major_version == 3)
|
||||||
|
{
|
||||||
|
switch(minor_version)
|
||||||
|
{
|
||||||
|
case 0: return "#version 130\n";
|
||||||
|
case 1: return "#version 140\n";
|
||||||
|
case 2: return "#version 150\n";
|
||||||
|
case 3: return "#version 330\n";
|
||||||
|
default: return "#version 330\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (major_version == 4)
|
||||||
|
{
|
||||||
|
switch(minor_version)
|
||||||
|
{
|
||||||
|
case 0: return "#version 400\n";
|
||||||
|
case 1: return "#version 410\n";
|
||||||
|
case 2: return "#version 420\n";
|
||||||
|
case 3: return "#version 430\n";
|
||||||
|
case 4: return "#version 440\n";
|
||||||
|
case 5: return "#version 450\n";
|
||||||
|
case 6: return "#version 460\n";
|
||||||
|
default: return "#version 460\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* some unknown version */
|
||||||
|
return "#version 100\nprecision mediump float;\n";
|
||||||
|
}
|
|
@ -79,6 +79,7 @@ cvar_t *r_validation;
|
||||||
|
|
||||||
cvar_t *r_lightlevel;
|
cvar_t *r_lightlevel;
|
||||||
cvar_t *gl1_overbrightbits;
|
cvar_t *gl1_overbrightbits;
|
||||||
|
cvar_t *gl_version_override;
|
||||||
|
|
||||||
cvar_t *gl1_particle_min_size;
|
cvar_t *gl1_particle_min_size;
|
||||||
cvar_t *gl1_particle_max_size;
|
cvar_t *gl1_particle_max_size;
|
||||||
|
@ -1196,6 +1197,7 @@ R_Register(void)
|
||||||
gl1_particle_att_c = ri.Cvar_Get("gl1_particle_att_c", "0.01", CVAR_ARCHIVE);
|
gl1_particle_att_c = ri.Cvar_Get("gl1_particle_att_c", "0.01", CVAR_ARCHIVE);
|
||||||
gl1_particle_square = ri.Cvar_Get("gl1_particle_square", "0", CVAR_ARCHIVE);
|
gl1_particle_square = ri.Cvar_Get("gl1_particle_square", "0", CVAR_ARCHIVE);
|
||||||
|
|
||||||
|
gl_version_override = ri.Cvar_Get("gl_version_override", "0", CVAR_ARCHIVE);
|
||||||
r_modulate = ri.Cvar_Get("r_modulate", "1", CVAR_ARCHIVE);
|
r_modulate = ri.Cvar_Get("r_modulate", "1", CVAR_ARCHIVE);
|
||||||
r_mode = ri.Cvar_Get("r_mode", "4", CVAR_ARCHIVE);
|
r_mode = ri.Cvar_Get("r_mode", "4", CVAR_ARCHIVE);
|
||||||
gl_lightmap = ri.Cvar_Get("r_lightmap", "0", 0);
|
gl_lightmap = ri.Cvar_Get("r_lightmap", "0", 0);
|
||||||
|
|
|
@ -233,10 +233,22 @@ int RI_InitContext(void* win)
|
||||||
|
|
||||||
if (gl_config.major_version < 1 || (gl_config.major_version == 1 && gl_config.minor_version < 4))
|
if (gl_config.major_version < 1 || (gl_config.major_version == 1 && gl_config.minor_version < 4))
|
||||||
{
|
{
|
||||||
R_Printf(PRINT_ALL, "%s(): Got an OpenGL version %d.%d context - need (at least) 1.4!\n",
|
if ((!gl_version_override->value) ||
|
||||||
__func__, gl_config.major_version, gl_config.minor_version);
|
(gl_config.major_version < gl_version_override->value))
|
||||||
|
{
|
||||||
|
R_Printf(PRINT_ALL, "%s(): Got an OpenGL version %d.%d context - need (at least) 1.4!\n",
|
||||||
|
__func__, gl_config.major_version, gl_config.minor_version);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
R_Printf(PRINT_ALL, "%s(): Warning: glad only got GL version %d.%d.\n"
|
||||||
|
"Some functionality could be broken.\n",
|
||||||
|
__func__, gl_config.major_version, gl_config.minor_version);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if we've got the requested MSAA.
|
// Check if we've got the requested MSAA.
|
||||||
|
|
|
@ -184,6 +184,7 @@ extern cvar_t *r_lerp_list;
|
||||||
extern cvar_t *r_2D_unfiltered;
|
extern cvar_t *r_2D_unfiltered;
|
||||||
extern cvar_t *r_videos_unfiltered;
|
extern cvar_t *r_videos_unfiltered;
|
||||||
|
|
||||||
|
extern cvar_t *gl_version_override;
|
||||||
extern cvar_t *gl_lightmap;
|
extern cvar_t *gl_lightmap;
|
||||||
extern cvar_t *gl_shadows;
|
extern cvar_t *gl_shadows;
|
||||||
extern cvar_t *gl1_stencilshadow;
|
extern cvar_t *gl1_stencilshadow;
|
||||||
|
|
|
@ -80,6 +80,7 @@ const hmm_mat4 gl3_identityMat4 = {{
|
||||||
}};
|
}};
|
||||||
|
|
||||||
cvar_t *gl_msaa_samples;
|
cvar_t *gl_msaa_samples;
|
||||||
|
cvar_t *gl_version_override;
|
||||||
cvar_t *r_vsync;
|
cvar_t *r_vsync;
|
||||||
cvar_t *r_retexturing;
|
cvar_t *r_retexturing;
|
||||||
cvar_t *r_maptype;
|
cvar_t *r_maptype;
|
||||||
|
@ -209,6 +210,7 @@ GL3_Register(void)
|
||||||
gl_drawbuffer = ri.Cvar_Get("gl_drawbuffer", "GL_BACK", 0);
|
gl_drawbuffer = ri.Cvar_Get("gl_drawbuffer", "GL_BACK", 0);
|
||||||
r_vsync = ri.Cvar_Get("r_vsync", "1", CVAR_ARCHIVE);
|
r_vsync = ri.Cvar_Get("r_vsync", "1", CVAR_ARCHIVE);
|
||||||
gl_msaa_samples = ri.Cvar_Get ( "r_msaa_samples", "0", CVAR_ARCHIVE );
|
gl_msaa_samples = ri.Cvar_Get ( "r_msaa_samples", "0", CVAR_ARCHIVE );
|
||||||
|
gl_version_override = ri.Cvar_Get ( "gl_version_override", "0", CVAR_ARCHIVE );
|
||||||
r_retexturing = ri.Cvar_Get("r_retexturing", "1", CVAR_ARCHIVE);
|
r_retexturing = ri.Cvar_Get("r_retexturing", "1", CVAR_ARCHIVE);
|
||||||
r_maptype = ri.Cvar_Get("maptype", "0", CVAR_ARCHIVE);
|
r_maptype = ri.Cvar_Get("maptype", "0", CVAR_ARCHIVE);
|
||||||
r_scale8bittextures = ri.Cvar_Get("r_scale8bittextures", "0", CVAR_ARCHIVE);
|
r_scale8bittextures = ri.Cvar_Get("r_scale8bittextures", "0", CVAR_ARCHIVE);
|
||||||
|
|
|
@ -250,8 +250,16 @@ int GL3_PrepareForWindow(void)
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
|
||||||
#else // Desktop GL
|
#else // Desktop GL
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
|
if (gl_version_override->value)
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
|
{
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, gl_version_override->value);
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
|
||||||
|
}
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -380,10 +388,21 @@ int GL3_InitContext(void* win)
|
||||||
else if (GLVersion.major < 3 || (GLVersion.major == 3 && GLVersion.minor < 2))
|
else if (GLVersion.major < 3 || (GLVersion.major == 3 && GLVersion.minor < 2))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
R_Printf(PRINT_ALL, "%s(): ERROR: glad only got GL version %d.%d!\n",
|
if ((!gl_version_override->value) ||
|
||||||
__func__, GLVersion.major, GLVersion.minor);
|
(GLVersion.major < gl_version_override->value))
|
||||||
|
{
|
||||||
|
R_Printf(PRINT_ALL, "%s(): ERROR: glad only got GL version %d.%d!\n",
|
||||||
|
__func__, GLVersion.major, GLVersion.minor);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
R_Printf(PRINT_ALL, "%s(): Warning: glad only got GL version %d.%d.\n"
|
||||||
|
"Some functionality could be broken.\n",
|
||||||
|
__func__, GLVersion.major, GLVersion.minor);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,12 +35,7 @@ static GLuint
|
||||||
CompileShader(GLenum shaderType, const char* shaderSrc, const char* shaderSrc2)
|
CompileShader(GLenum shaderType, const char* shaderSrc, const char* shaderSrc2)
|
||||||
{
|
{
|
||||||
GLuint shader = glCreateShader(shaderType);
|
GLuint shader = glCreateShader(shaderType);
|
||||||
|
const char* version = glshader_version(gl3config.major_version, gl3config.minor_version);
|
||||||
#ifdef YQ2_GL3_GLES3
|
|
||||||
const char* version = "#version 300 es\nprecision mediump float;\n";
|
|
||||||
#else // Desktop GL
|
|
||||||
const char* version = "#version 150\n";
|
|
||||||
#endif
|
|
||||||
const char* sources[3] = { version, shaderSrc, shaderSrc2 };
|
const char* sources[3] = { version, shaderSrc, shaderSrc2 };
|
||||||
int numSources = shaderSrc2 != NULL ? 3 : 2;
|
int numSources = shaderSrc2 != NULL ? 3 : 2;
|
||||||
|
|
||||||
|
|
|
@ -506,6 +506,7 @@ extern void GL3_UpdateUBOLights(void);
|
||||||
// ############ Cvars ###########
|
// ############ Cvars ###########
|
||||||
|
|
||||||
extern cvar_t *gl_msaa_samples;
|
extern cvar_t *gl_msaa_samples;
|
||||||
|
extern cvar_t *gl_version_override;
|
||||||
extern cvar_t *r_vsync;
|
extern cvar_t *r_vsync;
|
||||||
extern cvar_t *r_retexturing;
|
extern cvar_t *r_retexturing;
|
||||||
extern cvar_t *r_maptype;
|
extern cvar_t *r_maptype;
|
||||||
|
|
|
@ -76,6 +76,7 @@ const hmm_mat4 gl4_identityMat4 = {{
|
||||||
}};
|
}};
|
||||||
|
|
||||||
cvar_t *gl_msaa_samples;
|
cvar_t *gl_msaa_samples;
|
||||||
|
cvar_t *gl_version_override;
|
||||||
cvar_t *r_vsync;
|
cvar_t *r_vsync;
|
||||||
cvar_t *r_retexturing;
|
cvar_t *r_retexturing;
|
||||||
cvar_t *r_maptype;
|
cvar_t *r_maptype;
|
||||||
|
@ -205,6 +206,7 @@ GL4_Register(void)
|
||||||
gl_drawbuffer = ri.Cvar_Get("gl_drawbuffer", "GL_BACK", 0);
|
gl_drawbuffer = ri.Cvar_Get("gl_drawbuffer", "GL_BACK", 0);
|
||||||
r_vsync = ri.Cvar_Get("r_vsync", "1", CVAR_ARCHIVE);
|
r_vsync = ri.Cvar_Get("r_vsync", "1", CVAR_ARCHIVE);
|
||||||
gl_msaa_samples = ri.Cvar_Get ( "r_msaa_samples", "0", CVAR_ARCHIVE );
|
gl_msaa_samples = ri.Cvar_Get ( "r_msaa_samples", "0", CVAR_ARCHIVE );
|
||||||
|
gl_version_override = ri.Cvar_Get ( "gl_version_override", "0", CVAR_ARCHIVE );
|
||||||
r_retexturing = ri.Cvar_Get("r_retexturing", "1", CVAR_ARCHIVE);
|
r_retexturing = ri.Cvar_Get("r_retexturing", "1", CVAR_ARCHIVE);
|
||||||
r_maptype = ri.Cvar_Get("maptype", "0", CVAR_ARCHIVE);
|
r_maptype = ri.Cvar_Get("maptype", "0", CVAR_ARCHIVE);
|
||||||
r_scale8bittextures = ri.Cvar_Get("r_scale8bittextures", "0", CVAR_ARCHIVE);
|
r_scale8bittextures = ri.Cvar_Get("r_scale8bittextures", "0", CVAR_ARCHIVE);
|
||||||
|
|
|
@ -232,8 +232,16 @@ int GL4_PrepareForWindow(void)
|
||||||
gl4config.stencil = false;
|
gl4config.stencil = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4);
|
if (gl_version_override->value)
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 6);
|
{
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, gl_version_override->value);
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4);
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 6);
|
||||||
|
}
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
|
||||||
|
|
||||||
// Set GL context flags.
|
// Set GL context flags.
|
||||||
|
@ -351,10 +359,21 @@ int GL4_InitContext(void* win)
|
||||||
}
|
}
|
||||||
else if (GLVersion.major < 4 || (GLVersion.major == 4 && GLVersion.minor < 6))
|
else if (GLVersion.major < 4 || (GLVersion.major == 4 && GLVersion.minor < 6))
|
||||||
{
|
{
|
||||||
R_Printf(PRINT_ALL, "%s(): ERROR: glad only got GL version %d.%d!\n",
|
if ((!gl_version_override->value) ||
|
||||||
__func__, GLVersion.major, GLVersion.minor);
|
(GLVersion.major < gl_version_override->value))
|
||||||
|
{
|
||||||
|
R_Printf(PRINT_ALL, "%s(): ERROR: glad only got GL version %d.%d!\n",
|
||||||
|
__func__, GLVersion.major, GLVersion.minor);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
R_Printf(PRINT_ALL, "%s(): Warning: glad only got GL version %d.%d.\n"
|
||||||
|
"Some functionality could be broken.\n",
|
||||||
|
__func__, GLVersion.major, GLVersion.minor);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,8 +35,7 @@ static GLuint
|
||||||
CompileShader(GLenum shaderType, const char* shaderSrc, const char* shaderSrc2)
|
CompileShader(GLenum shaderType, const char* shaderSrc, const char* shaderSrc2)
|
||||||
{
|
{
|
||||||
GLuint shader = glCreateShader(shaderType);
|
GLuint shader = glCreateShader(shaderType);
|
||||||
|
const char* version = glshader_version(gl4config.major_version, gl4config.minor_version);
|
||||||
const char* version = "#version 460\n";
|
|
||||||
const char* sources[3] = { version, shaderSrc, shaderSrc2 };
|
const char* sources[3] = { version, shaderSrc, shaderSrc2 };
|
||||||
int numSources = shaderSrc2 != NULL ? 3 : 2;
|
int numSources = shaderSrc2 != NULL ? 3 : 2;
|
||||||
|
|
||||||
|
|
|
@ -496,6 +496,7 @@ extern void GL4_UpdateUBOLights(void);
|
||||||
// ############ Cvars ###########
|
// ############ Cvars ###########
|
||||||
|
|
||||||
extern cvar_t *gl_msaa_samples;
|
extern cvar_t *gl_msaa_samples;
|
||||||
|
extern cvar_t *gl_version_override;
|
||||||
extern cvar_t *r_vsync;
|
extern cvar_t *r_vsync;
|
||||||
extern cvar_t *r_retexturing;
|
extern cvar_t *r_retexturing;
|
||||||
extern cvar_t *r_maptype;
|
extern cvar_t *r_maptype;
|
||||||
|
|
|
@ -418,4 +418,7 @@ extern void R_ClearSkyBox(float skymins[2][6], float skymaxs[2][6]);
|
||||||
extern void R_MakeSkyVec(float s, float t, int axis, mvtx_t* vert,
|
extern void R_MakeSkyVec(float s, float t, int axis, mvtx_t* vert,
|
||||||
qboolean farsee, float sky_min, float sky_max);
|
qboolean farsee, float sky_min, float sky_max);
|
||||||
|
|
||||||
|
/* GL only code */
|
||||||
|
extern const char* glshader_version(int major_version, int minor_version);
|
||||||
|
|
||||||
#endif /* SRC_CLIENT_REFRESH_REF_SHARED_H_ */
|
#endif /* SRC_CLIENT_REFRESH_REF_SHARED_H_ */
|
||||||
|
|
Loading…
Reference in a new issue