116 const size_t maxLength = strlen(msg);
119 for (
int i = 0;
i < maxLength;
i +=
length) {
150 glEnable(GL_SCISSOR_TEST);
152 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
154 glDisable(GL_SCISSOR_TEST);
164 for (
i = 0;
i < 4;
i++) {
182 for (
i = 0;
i < 4;
i++) {
194 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
197 glClear(GL_STENCIL_BUFFER_BIT);
199 glDepthFunc(GL_LEQUAL);
202 glDepthRange(0.0f, 1.0f);
229 Com_Printf(
"Modified render related cvars\n");
240 Com_Printf(
"...max GL_EXT_texture_filter_anisotropic value is %i\n",
r_config.maxAnisotropic);
248#ifndef GL_VERSION_ES_CM_1_0
253 glDrawBuffer(GL_FRONT);
255 glDrawBuffer(GL_BACK);
300 static int lastFrame = 0;
301 int deltaMsec =
cl.time - lastFrame;
310 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
367 for (
i = 0;
i <
refdef.numStaticLights;
i++) {
371 for (
i = 0;
i <
refdef.numDynamicLights;
i++) {
389 glClear(GL_DEPTH_BUFFER_BIT);
424 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
457 SDL_SetWindowBrightness(
cls.window, g);
466 SDL_GL_SwapWindow(
cls.window);
470 {
"r_listimages",
R_ImageList_f,
"Show all loaded images on game console"},
473 {
"r_listmodels",
R_ModModellist_f,
"Show all loaded models on game console"},
474 {
"r_strings",
R_Strings_f,
"Print openGL vendor and other strings"},
477 {
nullptr,
nullptr,
nullptr}
485 Com_Printf(
"%s exceeded max supported texture size\n", cvar->
name);
501 float maxLights =
r_config.maxLights;
524 int glslVersionMajor, glslVersionMinor;
525 sscanf(cvar->
string,
"%d.%d", &glslVersionMajor, &glslVersionMinor);
526 if (glslVersionMajor >
r_config.glslVersionMajor) {
531 if (glslVersionMajor ==
r_config.glslVersionMajor && glslVersionMinor >
r_config.glslVersionMinor) {
573 r_nocull =
Cvar_Get(
"r_nocull",
"0", 0,
"Don't perform culling for brushes and entities");
593 r_wire =
Cvar_Get(
"r_wire",
"0", 0,
"Draw the scene in wireframe mode");
607 r_intel_hack =
Cvar_Get(
"r_intel_hack",
"1",
CVAR_ARCHIVE,
"Intel cards have no shaders until this is set to 0 - to it to a value > 1 to not limit the max texture resolution");
625 r_particles =
Cvar_Get(
"r_particles",
"1", 0,
"Activate or deactivate particle rendering");
645 viddef.context = *context;
668 float screenRatio = (float)
viddef.context.width / (
float)
viddef.context.height;
671 if (screenRatio > normRatio) {
675 }
else if (screenRatio < normRatio) {
725 Com_Printf(
"Failed to set video mode %dx%d %s.\n",
727 (newCtx.
fullscreen ?
"fullscreen" :
"windowed"));
750 return (uintptr_t)SDL_GL_GetProcAddress(functionName);
755 const char* s = strstr(functionName,
"###");
760 const char* replace[] = {
"EXT",
"OES",
"ARB"};
763 const size_t replaceNo =
lengthof(replace);
764 for (
size_t i = 0;
i < replaceNo;
i++) {
786#ifdef GL_VERSION_ES_CM_1_0
787 if(strcmp(extension,
"GL_ARB_texture_non_power_of_two") == 0) {
788 extension =
"GL_OES_texture_npot";
791 const char* s = strstr(extension,
"###");
793 found = strstr(
r_config.extensionsString, extension) !=
nullptr;
795 const char* replace[] = {
"ARB",
"EXT",
"OES"};
798 const size_t replaceNo =
lengthof(replace);
800 for (
i = 0;
i < replaceNo;
i++) {
802 if (strstr(
r_config.extensionsString, targetBuf) !=
nullptr) {
817#ifdef GL_VERSION_ES_CM_1_0
818 if (strcmp(extension,
"GL_ARB_multitexture") == 0 ||
819 strcmp(extension,
"GL_ARB_vertex_buffer_object") == 0) {
821 Com_Printf(
"Overriding %s - it is always present in GLES\n", extension);
828#define R_CheckGLVersion(max, min) (r_config.glVersionMajor > max || (r_config.glVersionMajor == max && r_config.glVersionMinor >= min))
841 const char* versionNumbers =
r_config.versionString;
842 while(*versionNumbers && strchr(
"0123456789", *versionNumbers) ==
nullptr) {
845 if( *versionNumbers )
846 sscanf(versionNumbers,
"%d.%d", &
r_config.glVersionMajor, &
r_config.glVersionMinor);
851 qglActiveTexture =
nullptr;
852 qglClientActiveTexture =
nullptr;
855 qglGenBuffers =
nullptr;
856 qglDeleteBuffers =
nullptr;
857 qglBindBuffer =
nullptr;
858 qglBufferData =
nullptr;
861 qglCreateShader =
nullptr;
862 qglDeleteShader =
nullptr;
863 qglShaderSource =
nullptr;
864 qglCompileShader =
nullptr;
865 qglGetShaderiv =
nullptr;
866 qglGetShaderInfoLog =
nullptr;
867 qglCreateProgram =
nullptr;
868 qglDeleteProgram =
nullptr;
869 qglAttachShader =
nullptr;
870 qglDetachShader =
nullptr;
871 qglLinkProgram =
nullptr;
872 qglUseProgram =
nullptr;
873 qglGetActiveUniform =
nullptr;
874 qglGetProgramiv =
nullptr;
875 qglGetProgramInfoLog =
nullptr;
876 qglGetUniformLocation =
nullptr;
877 qglUniform1i =
nullptr;
878 qglUniform1f =
nullptr;
879 qglUniform1fv =
nullptr;
880 qglUniform2fv =
nullptr;
881 qglUniform3fv =
nullptr;
882 qglUniform4fv =
nullptr;
883 qglGetAttribLocation =
nullptr;
884 qglUniformMatrix4fv =
nullptr;
887 qglEnableVertexAttribArray =
nullptr;
888 qglDisableVertexAttribArray =
nullptr;
889 qglVertexAttribPointer =
nullptr;
892 qglIsRenderbufferEXT =
nullptr;
893 qglBindRenderbufferEXT =
nullptr;
894 qglDeleteRenderbuffersEXT =
nullptr;
895 qglGenRenderbuffersEXT =
nullptr;
896 qglRenderbufferStorageEXT =
nullptr;
897 qglRenderbufferStorageMultisampleEXT =
nullptr;
898 qglGetRenderbufferParameterivEXT =
nullptr;
899 qglIsFramebufferEXT =
nullptr;
900 qglBindFramebufferEXT =
nullptr;
901 qglDeleteFramebuffersEXT =
nullptr;
902 qglGenFramebuffersEXT =
nullptr;
903 qglCheckFramebufferStatusEXT =
nullptr;
904 qglFramebufferTexture1DEXT =
nullptr;
905 qglFramebufferTexture2DEXT =
nullptr;
906 qglFramebufferTexture3DEXT =
nullptr;
907 qglFramebufferRenderbufferEXT =
nullptr;
908 qglGetFramebufferAttachmentParameterivEXT =
nullptr;
909 qglGenerateMipmapEXT =
nullptr;
910 qglDrawBuffers =
nullptr;
918#ifndef GL_VERSION_ES_CM_1_0
921 Com_Printf(
"using GL_ARB_texture_compression\n");
923 r_config.gl_compressed_solid_format = GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
924 r_config.gl_compressed_alpha_format = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
926 r_config.gl_compressed_solid_format = GL_COMPRESSED_RGB_ARB;
927 r_config.gl_compressed_alpha_format = GL_COMPRESSED_RGBA_ARB;
935 Com_Printf(
"using GL_ARB_texture_non_power_of_two\n");
939 Com_Printf(
"ignoring GL_ARB_texture_non_power_of_two\n");
952 glGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &
r_config.maxAnisotropic);
955 Com_Printf(
"max GL_EXT_texture_filter_anisotropic value is %i\n",
r_config.maxAnisotropic);
973 r_config.maxVertexBufferSize = 256 * 256 * 256;
974#ifndef GL_VERSION_ES_CM_1_0
975 glGetIntegerv(GL_MAX_ELEMENTS_VERTICES, &
r_config.maxVertexBufferSize);
977 Com_Printf(
"using GL_ARB_vertex_buffer_object\nmax vertex buffer size: %i\n",
r_config.maxVertexBufferSize);
1018 sscanf(shadingVersion,
"%d.%d", &
r_config.glslVersionMajor, &
r_config.glslVersionMinor);
1019 Com_Printf(
"GLSL version guaranteed to be supported by OpenGL implementation postfixed by vender supplied info: %i.%i\n",
1023 Com_Printf(
"GLSL shaders unsupported by OpenGL implementation.\n");
1049 if (qglDeleteRenderbuffersEXT && qglDeleteFramebuffersEXT && qglGenFramebuffersEXT && qglBindFramebufferEXT
1050 && qglFramebufferTexture2DEXT && qglBindRenderbufferEXT && qglRenderbufferStorageEXT && qglCheckFramebufferStatusEXT) {
1051#ifdef GL_VERSION_ES_CM_1_0
1055 glGetIntegerv(GL_MAX_DRAW_BUFFERS, &
r_config.maxDrawBuffers);
1056 glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &
r_config.maxColorAttachments);
1062 Com_Printf(
"using GL_ARB_framebuffer_object\n");
1067 Com_Printf(
"skipping GL_ARB_framebuffer_object - not every needed extension is supported\n");
1077 Com_Printf(
"Framebuffer objects unsupported by OpenGL implementation.\n");
1094 Com_Printf(
"max supported vertex texture units: %i\n",
r_config.maxVertexTextureImageUnits);
1096 glGetIntegerv(GL_MAX_LIGHTS, &
r_config.maxLights);
1102 glGetIntegerv(GL_MAX_TEXTURE_UNITS, &
r_config.maxTextureUnits);
1114#ifdef GL_VERSION_ES_CM_1_0
1116 Com_Printf(
"max varying floats: %i\n", tmpInteger * 4);
1118 Com_Printf(
"max fragment uniform components: %i\n", tmpInteger * 4);
1120 Com_Printf(
"max vertex uniform components: %i\n", tmpInteger * 4);
1122 glGetIntegerv(GL_MAX_VARYING_FLOATS, &tmpInteger);
1123 Com_Printf(
"max varying floats: %i\n", tmpInteger);
1124 glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, &tmpInteger);
1125 Com_Printf(
"max fragment uniform components: %i\n", tmpInteger);
1126 glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS, &tmpInteger);
1127 Com_Printf(
"max vertex uniform components: %i\n", tmpInteger);
1134 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &
r_config.maxTextureSize);
1154 if (
r_config.maxTextureSize > 4096 &&
R_ImageExists(
"pics/geoscape/%s/map_earth_season_00",
"high")) {
1156 Com_Printf(
"Using high resolution globe textures as requested.\n");
1157 }
else if (
r_config.maxTextureSize > 2048 &&
R_ImageExists(
"pics/geoscape/med/map_earth_season_00")) {
1158 if (
r_config.maxTextureSize > 4096) {
1159 Com_Printf(
"Warning: high resolution globe textures requested, but could not be found; falling back to medium resolution globe textures.\n");
1161 Com_Printf(
"Using medium resolution globe textures as requested.\n");
1165 if (
r_config.maxTextureSize > 2048) {
1166 Com_Printf(
"Warning: medium resolution globe textures requested, but could not be found; falling back to low resolution globe textures.\n");
1168 Com_Printf(
"Using low resolution globe textures as requested.\n");
1181 sscanf(
r_config.versionString,
"%d.%d.%d ", &maj, &min, &rel);
1183#ifndef GL_VERSION_ES_CM_1_0
1213#define INTEL_TEXTURE_RESOLUTION 1024
1221 if (!
Q_strcasecmp((
const char*)glGetString(GL_RENDERER),
"gdi generic"))
1223 "Update your graphic card drivers.");
1225 if (!
Q_strcasecmp((
const char*)glGetString(GL_RENDERER),
"Software Rasterizer"))
1227 "Update your graphic card drivers.");
1230 Com_Printf(
"You might want to activate texture compression if you have visual artifacts.\n");
1233 Com_Printf(
"Disabling shaders for Intel chips - see cvar r_intel_hack\n");
1255 Cvar_Set(
"r_vendor_non_intel",
"1");
1269 r_config.gl_alpha_format = GL_RGBA;
1270 r_config.gl_filter_min = GL_LINEAR_MIPMAP_LINEAR;
1271 r_config.gl_filter_max = GL_LINEAR;
1279 r_config.vendorString = (
const char*)glGetString(GL_VENDOR);
1280 r_config.rendererString = (
const char*)glGetString(GL_RENDERER);
1281 r_config.versionString = (
const char*)glGetString(GL_VERSION);
1282 r_config.extensionsString = (
const char*)glGetString(GL_EXTENSIONS);
renderer_threadstate_t r_threadstate
void R_FontShutdown(void)
frees the SDL_ttf fonts
void R_Color(const vec4_t rgba)
Change the color to given value.
bool VID_GetModeInfo(int modeIndex, vidmode_t *modeInfo)
Primary header for client.
void Cmd_TableAddList(const cmdList_t *cmdList)
void Cmd_TableRemoveList(const cmdList_t *cmdList)
void Com_Error(int code, const char *fmt,...)
void Com_Printf(const char *const fmt,...)
bool Cvar_PendingCvars(int flags)
Checks whether there are pending cvars for the given flags.
cvarChangeListener_t * Cvar_RegisterChangeListener(const char *varName, cvarChangeListenerFunc_t listenerFunc)
Registers a listener that is executed each time a cvar changed its value.
void Com_SetRenderModified(bool modified)
void Cvar_SetValue(const char *varName, float value)
Expands value to a string and calls Cvar_Set.
cvar_t * Cvar_Set(const char *varName, const char *value,...)
Sets a cvar value.
bool Cvar_SetCheckFunction(const char *varName, bool(*check)(cvar_t *cvar))
Set a checker function for cvar values.
int Cvar_GetInteger(const char *varName)
Returns the int value of a cvar.
bool Com_IsRenderModified(void)
bool Cvar_AssertValue(cvar_t *cvar, float minVal, float maxVal, bool shouldBeIntegral)
Checks cvar values.
void Cvar_Reset(cvar_t *cvar)
Sets the cvar value back to the old value.
void Cvar_ClearVars(int flags)
cvar_t * Cvar_Get(const char *var_name, const char *var_value, int flags, const char *desc)
Init or return a cvar.
void RotatePointAroundVector(vec3_t dst, const vec3_t dir, const vec3_t point, float degrees)
Rotate a point around a given vector.
bool Q_IsPowerOfTwo(int i)
Checks whether i is power of two value.
void AngleVectors(const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
Create the rotation matrix in order to rotate something.
void R_ResetArrayState(void)
void R_RenderBlendWarpBspRRefs(void)
Draw all warped translucent bsp surfaces via warp shader and with blend enabled.
void R_RenderOpaqueBspRRefs(void)
Draw all simple opaque bsp surfaces with multitexture enabled and light enabled.
void R_GetLevelSurfaceLists(void)
Fills the surface chains for the current worldlevel and hide other levels.
void R_RenderOpaqueWarpBspRRefs(void)
Draw all warped opaque bsp surfaces via warp shader.
void R_DrawBspNormals(int tile)
Developer tool for viewing BSP vertex normals. Only Phong interpolated surfaces show their normals wh...
void R_RenderMaterialBspRRefs(void)
void R_RenderBlendBspRRefs(void)
Draw all translucent bsp surfaces with multitexture enabled and blend enabled.
void R_AddBspRRef(const mBspModel_t *model, const vec3_t origin, const vec3_t angles, const bool forceVisibility)
Adds bsp render references.
void R_RenderAlphaTestBspRRefs(void)
void R_ClearBspRRefs(void)
void R_RenderFlareBspRRefs(void)
void R_AddCorona(const vec3_t org, float radius, const vec3_t color)
void R_DrawBoundingBoxes(void)
void R_DrawInitLocal(void)
Loads some textures and init the 3d globe.
void R_DrawSpecialEntities(const entity_t *ents)
entity_t * r_blend_mesh_entities
void R_DrawOpaqueMeshEntities(entity_t *ents)
void R_DrawBlendMeshEntities(entity_t *ents)
entity_t * r_null_entities
void R_GetEntityLists(void)
Primary entry point for drawing all entities.
void R_DrawEntityEffects(void)
Draws shadow and highlight effects for the entities (actors).
entity_t * r_special_entities
entity_t * r_opaque_mesh_entities
void R_DrawNullEntities(const entity_t *ents)
Draw entities which models couldn't be loaded.
#define MAX_ENTITY_LIGHTS
static const char * R_TranslateError(GLenum error)
void R_FontListCache_f(void)
Console command binding to show the font cache.
void R_InitFBObjects(void)
void R_ShutdownFBObjects(void)
Delete all registered framebuffer and render buffer objects, clear memory.
void R_DrawBloom(void)
handle post-processing bloom
void(APIENTRY * BlitFramebuffer_t)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum)
void(APIENTRY * Uniform1i_t)(GLint location, GLint i)
void(APIENTRY * Uniform4fv_t)(GLint location, int count, GLfloat *f)
void(APIENTRY * FramebufferRenderbufferEXT_t)(GLenum, GLenum, GLenum, GLuint)
void(APIENTRY * UseProgram_t)(GLuint id)
void(APIENTRY * GetProgramInfoLog_t)(GLuint id, GLuint maxlen, GLuint *len, GLchar *dest)
void(APIENTRY * Uniform1fv_t)(GLint location, int count, GLfloat *f)
void(APIENTRY * DrawBuffers_t)(GLsizei, const GLenum *)
GLboolean(APIENTRY * IsRenderbufferEXT_t)(GLuint)
void(APIENTRY * GetShaderiv_t)(GLuint id, GLenum field, GLuint *dest)
void(APIENTRY * GetShaderInfoLog_t)(GLuint id, GLuint maxlen, GLuint *len, GLchar *dest)
void(APIENTRY * LinkProgram_t)(GLuint id)
void(APIENTRY * EnableVertexAttribArray_t)(GLuint index)
GLuint(APIENTRY * CreateShader_t)(GLenum type)
void(APIENTRY * FramebufferTexture3DEXT_t)(GLenum, GLenum, GLenum, GLuint, GLint, GLint)
void(APIENTRY * FramebufferTexture1DEXT_t)(GLenum, GLenum, GLenum, GLuint, GLint)
void(APIENTRY * FramebufferTexture2DEXT_t)(GLenum, GLenum, GLenum, GLuint, GLint)
void(APIENTRY * DetachShader_t)(GLuint prog, GLuint shader)
void(APIENTRY * DeleteBuffers_t)(GLuint count, GLuint *id)
QGL_EXTERN GLsizei const GLvoid * data
void(APIENTRY * BindRenderbufferEXT_t)(GLenum, GLuint)
void(APIENTRY * GetActiveUniforms_t)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
void(APIENTRY * RenderbufferStorageMultisampleEXT_t)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)
QGL_EXTERN GLuint GLsizei GLsizei * length
void(APIENTRY * DeleteProgram_t)(GLuint id)
GLboolean(APIENTRY * IsFramebufferEXT_t)(GLuint)
void(APIENTRY * DeleteRenderbuffersEXT_t)(GLsizei, const GLuint *)
void(APIENTRY * Uniform3fv_t)(GLint location, int count, GLfloat *f)
void(APIENTRY * ShaderSource_t)(GLuint id, GLuint count, GLchar **sources, GLuint *len)
void(APIENTRY * GenBuffers_t)(GLuint count, GLuint *id)
void(APIENTRY * GenFramebuffersEXT_t)(GLsizei, GLuint *)
void(APIENTRY * VertexAttribPointer_t)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer)
void(APIENTRY * UniformMatrix4fv_t)(GLint location, int count, GLboolean transpose, GLfloat *v)
void(APIENTRY * GenerateMipmapEXT_t)(GLenum)
void(APIENTRY * DeleteShader_t)(GLuint id)
GLint(APIENTRY * GetAttribLocation_t)(GLuint id, const GLchar *name)
void(APIENTRY * Uniform2fv_t)(GLint location, int count, GLfloat *f)
void(APIENTRY * BufferData_t)(GLenum target, GLsizei size, const GLvoid *data, GLenum usage)
void(APIENTRY * DeleteFramebuffersEXT_t)(GLsizei, const GLuint *)
void(APIENTRY * RenderbufferStorageEXT_t)(GLenum, GLenum, GLsizei, GLsizei)
void(APIENTRY * ClientActiveTexture_t)(GLenum texture)
GLenum(APIENTRY * CheckFramebufferStatusEXT_t)(GLenum)
void(APIENTRY * BindFramebufferEXT_t)(GLenum, GLuint)
void(APIENTRY * ActiveTexture_t)(GLenum texture)
void(APIENTRY * CompileShader_t)(GLuint id)
GLuint(APIENTRY * CreateProgram_t)(void)
void(APIENTRY * GetRenderbufferParameterivEXT_t)(GLenum, GLenum, GLint *)
void(APIENTRY * Uniform1f_t)(GLint location, GLfloat f)
GLint(APIENTRY * GetUniformLocation_t)(GLuint id, const GLchar *name)
void(APIENTRY * GetProgramiv_t)(GLuint id, GLenum field, GLuint *dest)
void(APIENTRY * BindBuffer_t)(GLenum target, GLuint id)
void(APIENTRY * AttachShader_t)(GLuint prog, GLuint shader)
void(APIENTRY * GenRenderbuffersEXT_t)(GLsizei, GLuint *)
QGL_EXTERN const GLuint *QGL_EXTERN GLuint *QGL_EXTERN GLenum
void(APIENTRY * DisableVertexAttribArray_t)(GLuint index)
void(APIENTRY * GetFramebufferAttachmentParameterivEXT_t)(GLenum, GLenum, GLenum, GLint *)
#define GL_MAX_VARYING_VECTORS
#define GL_MAX_RENDERBUFFER_SIZE_EXT
#define GL_MAX_VERTEX_ATTRIBS
#define GL_MAX_TEXTURE_COORDS
#define GL_MAX_VERTEX_UNIFORM_VECTORS
#define GL_MAX_FRAGMENT_UNIFORM_VECTORS
#define GL_SHADING_LANGUAGE_VERSION
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
Pseudoinstanced grass generation and rendering.
void R_ImageList_f(void)
Shows all loaded images.
void R_TextureAlphaMode(const char *string)
void R_TextureSolidMode(const char *string)
void R_ShutdownImages(void)
bool R_ImageExists(const char *pname,...)
void R_TextureMode(const char *string)
void R_UpdateSustainedLights(void)
Updates state of sustained lights; should be called once per frame right before world rendering.
#define LIGHTMAP_MAX_PAGE_SIZE
#define LIGHTMAP_DEFAULT_PAGE_SIZE
local graphics definitions
cvar_t * r_default_hardness
cvar_t * r_screenshot_jpeg_quality
cvar_t * r_overridematerial
void R_DrawParticles(void)
cvar_t * r_screenshot_format
cvar_t * r_ext_texture_compression
bool R_InitGraphics(const viddefContext_t *context)
Init the SDL window.
cvar_t * r_default_specular
cvar_t * r_stencilshadows
cvar_t * r_dynamic_lights
cvar_t * r_glsl_version
The GLSL version being used (not necessarily a supported version by the OpenGL implementation)....
cvar_t * r_debug_tangents
static uintptr_t R_GetProcAddressExt(const char *functionName)
static void R_Strings_f(void)
Prints some OpenGL strings.
static cvar_t * r_texturesolidmode
static void R_VerifyDriver(void)
Checks whether we have hardware acceleration.
static void R_PrintInfo(const char *pre, const char *msg)
Weather r_battlescapeWeather
static bool R_CvarPrograms(cvar_t *cvar)
static cvar_t * r_texturemode
static void R_RegisterImageVars(void)
void R_SetupFrustum(void)
static cvar_t * r_maxtexres
static bool R_CvarCheckMaxLightmap(cvar_t *cvar)
static void R_ClearScene(void)
static bool R_CvarCheckMultisample(cvar_t *cvar)
static bool R_CvarGLSLVersionCheck(cvar_t *cvar)
Callback that is called when the r_glsl_version cvar is changed,.
#define R_CheckGLVersion(max, min)
static cvar_t * r_texturealphamode
static cvar_t * r_ext_s3tc_compression
static void R_EnforceVersion(void)
We need at least opengl version 1.2.1.
static void R_UpdateVidDef(const viddefContext_t *context)
static void R_UpdateWeather(const char *cvarName, const char *oldValue, const char *newValue, void *data)
static void R_RegisterSystemVars(void)
static bool R_SearchForVendor(const char *vendor)
Searches vendor and renderer GL strings for the given vendor id.
static const cmdList_t r_commands[]
static cvar_t * r_ext_nonpoweroftwo
static bool R_CheckExtension(const char *extension)
Checks for an OpenGL extension that was announced via the OpenGL ext string. If the given extension s...
static cvar_t * r_intel_hack
static void R_Clear(void)
Clears the screens color and depth buffer.
static bool R_CvarCheckDynamicLights(cvar_t *cvar)
static uintptr_t R_GetProcAddress(const char *functionName)
#define INTEL_TEXTURE_RESOLUTION
static bool R_CvarCheckWeather(cvar_t *cvar)
static bool R_CvarPostProcess(cvar_t *cvar)
static cvar_t * r_deluxemap
static void R_InitExtensions(void)
Check and load all needed and supported opengl extensions.
void R_UpdateDefaultMaterial(const char *cvarName, const char *oldValue, const char *newValue, void *data)
Change listener callback for material value cvars.
void R_InitMiscTexture(void)
void R_ScreenShot_f(void)
void R_ModModellist_f(void)
Prints all loaded models.
model_t * r_mapTiles[MAX_MAPTILES]
The world model(s).
void R_RestartPrograms_f(void)
Reloads the glsl shaders.
void R_InitPrograms(void)
void R_ShutdownPrograms(void)
void R_SphereInit(void)
Creates the spheres we need for rendering the 3d globe.
Functions to generate and render spheres.
void R_SetDefaultState(void)
void R_EnableMultisample(bool enable)
void R_EnableBlend(bool enable)
void R_EnableFog(bool enable)
void R_ShutdownThreads(void)
Weather effects rendering subsystem header file.
#define Q_strcasecmp(a, b)
void Q_strncpyz(char *dest, const char *src, size_t destsize)
Safe strncpy that ensures a trailing zero.
const char * Q_stristr(const char *str, const char *substr)
Checks in case insensitive manner whether str contains substr.
bool Q_strreplace(const char *source, const char *pattern, const char *replace, char *dest, size_t destsize)
Replaces the first occurence of the given pattern in the source string with the given replace string.
This is a cvar definition. Cvars can be user modified and used in our menus e.g.
Contains the game screen context, everything that is needed to create the graphic context....
void Sys_Sleep(int milliseconds)
Calls the win32 sleep function.
void UI_InvalidateStack(void)
Invalidate all windows of the current stack.
#define DotProduct(x, y)
Returns the distance between two 3-dimensional vectors.
#define VectorScale(in, scale, out)