Age | Commit message (Collapse) | Author |
|
The number of draw surfaces was range checked against number of surfaces for
the current view but needs to check total for the frame otherwise can read
past the end of the tr.refdef.drawSurfs array when there are multiple views.
|
|
Reserve space for end of list and swap buffer commands. These are absolutely
required and cannot be dropped. Dropping swap buffer command causes screen
to not update and possible crash from drawsurf buffer overflow if not enough
cmd buffer space for many continous frames.
|
|
|
|
|
|
Found by Coverity.
|
|
Fixes possibly of reading memory past end of lightGridData or reading
wrong light grid data (wrapping around to next row).
|
|
Also change light grid bounds clamping to make it more clear what invalid
values are.
|
|
|
|
|
|
The functions themselves are in code/renderercommon/tr_image_*.c
|
|
let the cvars default to "0"; upon video startup, if any of these are non-positive, try to pick up the desktop's resolution, and update the cvars
|
|
Also, use the check overflow macro like everywhere else.
|
|
|
|
Stencil shadow is not drawn if a mesh, or multiple meshes with the same
entity and shader, have more than 500 vertexes. The issue is caused by storing
the projected positions in the tess vertex buffer. Use a new array instead.
|
|
GL1's R_CreateImage sets GL texture to 0 before it ends, so border color is not
applied to the fog image. GL_CLAMP is not used for fog image (in either renderer),
so it would presumably not be used even if applied to the fog image.
|
|
It seems unlikely anyone is going to do anything with this aside from stub
it out in OpenGLES ports.
|
|
Affectly no change for desktop OpenGL.
Use correct types for OpenGLES support.
|
|
Manually changing cull state can cause later GL_Cull calls to not change
the cull state.
|
|
|
|
|
|
|
|
|
|
If ParseVector fails, color isn't fully set.
|
|
|
|
Found by Coverity.
|
|
Elite Force SDK has trap_R_LerpTag return void, so this shouldn't cause issues for iostvef.
Allows new games to check if a tag exists in a MDR model.
|
|
No variable even exists.
|
|
|
|
Used for drawing sun, which is supported by both OpenGL1 and OpenGL2.
OpenGL2 already parses it.
|
|
|
|
If spawn var key or value is "" it caused R_GetEntityToken (available to
cgame, used by opengl2) to stop parsing, whereas game VM would continue.
Changed it to match parsing used for game VM
(see G_GET_ENTITY_TOKEN in code/server/sv_game.c).
The map poq3dm5 has a "wait" key with value "".
|
|
|
|
|
|
If you tried to draw the last loaded image, gl texture 0 (which is appearently white)
was used because renderer thought the image was already bound.
Why OpenGL1 renderer binds texture 0, I have no idea. It's been removed from OpenGL2.
|
|
|
|
|
|
Fixes drawing StretchPic *before* CIN_DrawCinematic resulting
in cinematic being drawn before the StretchPic.
|
|
flareCoeff was only set if r_flareCoeff cvar was set as modified.
Cvars are set as modified when created or changed.
|
|
|
|
|
|
|
|
|
|
|
|
Integer blend indices are converted to bytes at load, ioq3 doesn't allow more than 128 joints.
Heavily based on code by @zippers.
|
|
|
|
Calling glClear( any bits ) in GL_SetDefaultState makes connect screen black using the proprietary NVidia driver on Windows and GNU/Linux.
This reverts commit 92573270de98a20cd78842bd2043cfe07bc5b2e1.
|
|
|
|
Set the variables that use tess.numVertexes after calling RB_CHECKOVERFLOW() as it may set tess.numVertexes to 0!
Could cause visual issues and error "RB_EndSurface() - SHADER_MAX_VERTEXES hit".
|
|
The last index is used to check for buffer overflows. See RB_CheckOverflow and RB_EndSurface.
|
|
fogNum 0 means no fog. Shaders don't try to apply fog color if fogNum is 0.
This was done to make things more consistent and fix a crash in iortcw MP using a user made map on GNU/Linux x86_64.
|