Commit Graph

195 Commits

Author SHA1 Message Date
Zack Middleton e21ff01946 Don't use memset with non-zero value to fill ints
Coverity reported using value -2 as a bad memset. Really doesn't make sense when filling ints and not bytes too.
2014-05-25 16:10:01 -05:00
Zack Middleton 3a7298d6ae Make R_LerpTag return qfalse if MDR tag does not exist
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.
2014-05-06 21:10:16 -05:00
SmileTheory 4fe69cb418 OpenGL2: Remove sRGB support, replace with gamma cvars. 2014-04-16 05:26:03 -07:00
Zack Middleton c55df2c9aa Merge branch 'master' into sdl2 2014-03-24 17:53:08 -05:00
Zack Middleton 73aa7ef2c7 Merge branch 'master' (early part) into sdl2 2014-03-24 17:51:57 -05:00
Zack Middleton 9f3fd12501 Remove unused extern qboolean charSet
No variable even exists.
2014-03-24 12:47:14 -05:00
SmileTheory b099255748 #6095: OpenGL2: Use areamask and leaf cluster for PVS when VIS is missing. 2014-03-19 17:59:07 -07:00
SmileTheory 375f6247d4 OpenGL2: Parallax corrected cubemap (cheaper trick) 2014-03-16 16:29:38 -07:00
Zack Middleton 07290a7d52 Fix typo in animMap and videoMap warnings 2014-03-10 19:58:55 -05:00
Zack Middleton c8c7bb1dc3 Fix R_GetEntityToken ending prematurely
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 "".
2014-03-10 16:27:31 -05:00
Zack Middleton 5a3e10d716 Don't say cubemap is outside lightgrid 6 times 2014-03-10 16:12:49 -05:00
Zack Middleton b98e6d5cc0 Fix error handling in R_ParseSpawnVars
When R_GetEntityToken returns qfalse it resets pointer for parsing, by
R_ParseSpawnVars not returning qfalse it could cause an infinite loop.

Also add newlines to printfs.
2014-03-10 15:57:26 -05:00
Zack Middleton 9ec7931c54 Merge branch 'master' into sdl2 2014-03-08 21:32:47 -06:00
Zack Middleton e7f43545ed Don't wash out HDR vertex lite surfaces in OpenGL2
Vertex lite surfaces being brighter than light maps looks bad,
they're meant to look the same. Especially in ET, which mixes
them fequently. It's noticeable in Q3 too though.

BSP lightmaps (i.e. not external HDR lightmaps) use
R_ColorShiftLightingBytes, now *Floats (used by vertex colors)
has the same behavior.

This may be a problem for HDR lightmaps, as the RGB will always be
scaled to 0.0 to 1.0 range.

I had enabled this for non-HDR before, but now HDR needs it too.
2014-03-08 12:30:47 -06:00
MAN-AT-ARMS 11ed883298 OpenGL2: Set default normal/specular in RE_RegisterShaderFromImage 2014-03-04 20:31:31 -05:00
SmileTheory ee67d0a981 OpenGL2: Add normalScale and parallaxDepth stage keywords and helper cvars. 2014-03-03 21:02:39 -08:00
SmileTheory ea2810c085 OpenGL2: Minor GLSL shader improvements. 2014-03-03 17:32:07 -08:00
MAN-AT-ARMS 71386beaac OpenGL2: Fix pshadows for MDR models 2014-02-22 18:09:48 -06:00
SmileTheory 3740c55dec OpenGL2: Remove and force r_softOverbright. 2014-02-20 17:01:50 -08:00
Tim Angus 1250b352be Merge branch 'master' into sdl2 2014-02-18 10:30:35 +00:00
SmileTheory 5fabc28dff OpenGL2: Fix rendering when r_hdr = 0 and r_floatLightmap = 1 2014-02-14 22:41:25 -08:00
SmileTheory 78f8100d74 OpenGL2: Oops, set lightmap alpha to 1. 2014-02-14 03:31:54 -08:00
SmileTheory 7a23bb1c59 OpenGL2: Fix bug in ColorToRGBM(). 2014-02-14 02:52:22 -08:00
SmileTheory 79e9baedf8 OpenGL2: Set RGBM to use a multiplier of 1, and only use it with HDR lightmaps. 2014-02-13 18:04:23 -08:00
Zack Middleton ed087bb89e Merge branch 'master' into sdl2 2014-02-07 23:24:12 -06:00
Zack Middleton cc9072d098 Check for buffer overflow for rail/lightning surfaces 2014-01-25 21:15:36 -06:00
Zack Middleton dde36d91ce Fix OpenGL2 non-HDR map surface over brighting
Vertex lit map surfaces were saturating to white when
r_mapOverBrightBits was increased and r_hdr was disabled.

Now the color is normalized like lightmaps and lightgrid
when r_hdr is disabled. Which is the same as OpenGL1.

Noticeable on misc_model trisoup.
2014-01-16 00:12:21 -06:00
Zack Middleton aa92f7e76a Merge pull request #30 from inolen/nova_fix
don't call va each frame in GLSL_VertexAttribPointers
2014-01-14 13:23:37 -08:00
Anthony Pesch 3603102088 don't call va each frame in GLSL_VertexAttribPointers 2014-01-14 13:19:15 -08:00
SmileTheory eea652f5c5 Don't create images/framebuffers that won't be used, and add checks before use. 2014-01-12 20:52:36 -08:00
Zack Middleton 581b6316b7 Fix GL2 deluxemap 0,0,0 to 127,127,127
Checked if first byte was 0 twice instead of checking second byte.
2014-01-12 17:02:21 -06:00
Anthony Pesch 25bde423b5 fixed formatting of a few GLSL float constants
remove unneeded version number from texturecolor shader
call GLSL_VertexAttribPointers after attribute arrays have been enabled
2014-01-11 17:43:19 -08:00
Zack Middleton 4520857fc9 Make GL2 MDR code use R_VboPackNormal for normal 2014-01-10 12:48:17 -06:00
SmileTheory bc2efc4870 #6077: OpenGL2: Add r_ignoreDstAlpha. 2013-12-17 04:08:25 -08:00
SmileTheory 623d107f42 OpenGL2: Small glsl shader optimizations, fixes, and cleanup. 2013-12-12 21:38:01 -08:00
SmileTheory f6f3a19f73 OpenGL2: Support GL_ARB_vertex_type_2_10_10_10_rev for normals/tangents/lightdirs 2013-12-09 17:33:54 -08:00
IR4T4 ca23b626a0 r_noborder changes require a restart 2013-12-06 23:29:47 -06:00
Zack Middleton 973a616061 Fix white flash levelshot bug in OpenGL1
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.
2013-12-06 23:06:52 -06:00
James Canete c02528cf1d Merge pull request #21 from cmf028/master
Fix glsl DEFORM_BULGE calculation
2013-12-01 19:33:51 -08:00
cmf028 e01b66aef5 Fix glsl DEFORM_BULGE calculation 2013-12-01 21:19:26 -06:00
Zack Middleton 0a4da32d62 Remove R_AddAnimSurfaces and R_MakeAnimModel prototypes 2013-11-30 03:16:05 -06:00
SmileTheory ecc1f23b1d OpenGL2: Remove redundant GLS_* enum.
Thanks Xycaleth for pointing out.
2013-11-29 23:40:48 -08:00
SmileTheory 6f3edb20b8 #6069: Remove md4 model support. 2013-11-29 16:13:47 -08:00
Zack Middleton ad514c9689 Merge branch 'master' into sdl2 2013-11-26 16:57:10 -06:00
Zack Middleton 2044bcb12d Silence warnings about unused static functions in opengl2 2013-11-25 15:27:09 -06:00
Zack Middleton 8af9516e88 End current draw surface before drawing cinematic
Fixes drawing StretchPic *before* CIN_DrawCinematic resulting
in cinematic being drawn before the StretchPic.
2013-11-20 21:37:17 -06:00
SmileTheory d63d7ba6bf OpenGL2: Use RGBA16F format for HDR.
RGB16F is not 4-byte aligned and not supported by certain hardware.
2013-11-20 00:48:18 -08:00
SmileTheory e686010d73 #6059: OpenGL2: Read depths from resolve fbo when msaa is on in RB_TestFlare(). 2013-11-20 00:45:08 -08:00
SmileTheory c350963bf2 OpenGL2: Match glsl data type names: matrix_t -> mat4_t, vec*i_t -> ivec*_t 2013-11-19 03:23:50 -08:00
Zack Middleton 3736968943 Merge branch 'master' into sdl2 2013-11-17 19:01:35 -06:00
SmileTheory 6e5f8cc918 OpenGL2: Calculate bitangent in shader, and store normal/tangent as normalized byte arrays. 2013-11-12 19:21:51 -08:00
Zack Middleton a53e7c3074 Fix comparing unsigned values to < 0 in gl2 2013-11-11 01:12:42 -06:00
Zack Middleton d526eacd10 Fix flares being invisible after vid_restart
flareCoeff was only set if r_flareCoeff cvar was set as modified.
Cvars are set as modified when created or changed.
2013-11-09 16:57:58 -06:00
SmileTheory ae57eebf52 Merge branch 'glindex_size_fixes' of https://github.com/inolen/ioq3 into inolen-glindex_size_fixes 2013-11-08 22:19:32 -08:00
SmileTheory ef9fe17dd5 OpenGL2: Remove srfTriangle_t, and use glIndex_t instead. 2013-11-08 01:46:17 -08:00
SmileTheory d295db747c OpenGL2: Small optimizations and comments in world VBO creation and surface merging. 2013-11-07 04:03:52 -08:00
SmileTheory 7672533e8f OpenGL2: Prefer VBO/IBO sizes of around 4MB. 2013-11-05 20:07:10 -08:00
SmileTheory 8c3ae8d7d2 OpenGL2: Reimplement soft overbright to avoid a framebuffer blit. 2013-11-05 00:08:59 -08:00
SmileTheory a7c5fc0ee7 OpenGL2: Some small shader optimizations. 2013-11-04 22:50:53 -08:00
SmileTheory 0e25d0357b OpenGL2: Revisit fragment tangent space calculation, and remove tangent space lighting. 2013-11-04 21:53:05 -08:00
SmileTheory 3846c115e6 OpenGL2: Reduce glsl shader count by using a uniform to disable textures. 2013-11-03 19:34:22 -08:00
Tim Angus 779ebfacfd Merge branch 'master' into sdl2 2013-11-02 19:12:52 +00:00
Zack Middleton ae0e09aba9 Remove vertexLightmap from textureBundle_t, it's never qtrue 2013-11-02 02:59:31 -05:00
Zack Middleton 6bd52de44e Remove unused shader state code from tr_local.h 2013-11-02 02:35:59 -05:00
Zack Middleton 0f30dad10a Merge last two commits into renderergl2 2013-10-29 23:22:02 -05:00
Zack Middleton c28fabf505 IQM int/float vertex arrays were already swapped 2013-10-29 23:07:15 -05:00
Zack Middleton 0bf1f3d0ba Add support for IQM int blend indices and float blend weights
Integer blend indices are converted to bytes at load, ioq3 doesn't allow more than 128 joints.

Heavily based on code by @zippers.
2013-10-29 22:09:06 -05:00
Zack Middleton 1515841b38 Support IQMs with joints and no poses 2013-10-29 20:47:33 -05:00
SmileTheory 535d0ea70e OpenGL2: Merge bsp surface structs into a single struct, and more cleanup. 2013-10-15 01:19:16 -07:00
SmileTheory 01efe4a538 OpenGL2: Use an idea from ETXreal and separate world VBO into separate VBOs by shader. 2013-10-14 03:58:13 -07:00
SmileTheory 08fcecc829 OpenGL2: Clean up texmod calculations, and improve vertex animation handling. 2013-10-14 01:55:54 -07:00
SmileTheory f8355ba2fb OpenGL2: Fix TCGEN_ENVIRONMENT stages not rendering correctly. 2013-10-10 03:41:31 -07:00
Zack Middleton e4227d1cd5 Revert "5097 - Menu corrupted on start (on IRIX)"
Calling glClear( any bits ) in GL_SetDefaultState makes connect screen black using the proprietary NVidia driver on Windows and GNU/Linux.

This reverts commit 92573270de.
2013-10-08 08:01:00 -05:00
SmileTheory c6774cf113 OpenGL2: default to RGBM lightmap, and add r_floatLightmap for old behaviour. 2013-10-07 01:46:50 -07:00
SmileTheory acbeca6042 OpenGL2: Remove AGEN_FRESNEL(superceded by cubemap patch), and some small fixes and optimizations. 2013-09-24 03:29:49 -07:00
SmileTheory 82be4e667f OpenGL2: Disable GL_ARB_seamless_cube_map by default, caused huge frame drops on some hardware 2013-09-20 17:20:36 -07:00
SmileTheory 3ab895d1cd OpenGL2: reduce varying usage in lightall shader. 2013-09-17 23:52:40 -07:00
SmileTheory cbd05da5d1 OpenGL2: Fix for "unsupported framebuffer format" bug 2013-09-17 15:33:46 -07:00
SmileTheory 42501db862 OpenGL2: Some shader cleanup 2013-09-16 23:41:04 -07:00
SmileTheory 5985cca2e6 OpenGL2: Speed up fog shader slightly. 2013-09-16 23:20:44 -07:00
Tim Angus 76e49b668e Merge branch 'master' into sdl2 2013-09-16 22:34:51 +01:00
SmileTheory a408a2bdae OpenGL2: Fix inaccurate RGBM calculation. 2013-09-16 14:26:42 -07:00
SmileTheory e80faf812e OpenGL2: Use RGBM instead of RGBE encoding for lightmaps. 2013-09-16 05:57:14 -07:00
SmileTheory 7e875c6941 #5979: Cubemap support for opengl2. 2013-09-16 00:54:26 -07:00
Zack Middleton 27ddba9c2e Fix crash caused by too many surfaces in skin 2013-09-04 20:36:45 -05:00
SmileTheory 311376af8a Fix upside-down SSAO. 2013-08-23 01:51:58 -07:00
SmileTheory d46916082d #5999: OpenGL2: Don't use lightall shader with deforms or adjustColorsForFog. 2013-08-23 01:35:17 -07:00
SmileTheory ebd164deaf #6004: OpenGL2: Make any CGEN_LIGHTING_DIFFUSE stages use lightall shader. 2013-08-23 00:55:28 -07:00
Tim Angus bde7665462 Merge branch 'master' into sdl2
Conflicts:
	code/sdl/sdl_input.c
2013-08-16 23:34:08 +01:00
Henry Stratmann III db85b61e94 Add assignment below declarations otherwise compiling fails with msvc
Signed-off-by: Zack Middleton <zturtleman@gmail.com>
2013-07-21 19:15:24 -05:00
Anthony Pesch b0f0376a4f Misc fixes to IBO code to correctly use sizeof(glIndex_t) 2013-07-19 14:16:49 -07:00
Zack Middleton d79fe65878 Fix r_mergeLightmaps 0 crashing OpenGL2 renderer
tr.fatLightmapStep was 0 and caused modulus division by 0.
2013-06-20 21:56:04 -05:00
Zack Middleton 872465500e Fix r_nocurves in OpenGL2 renderer
Check r_nocurves in surface cull.
While r_nocurves is enabled, don't use merged surfaces because merged curves would be renderer. (note: surface merging is enabled by r_mergeLeafSurfaces)
2013-06-20 16:27:00 -05:00
Zack Middleton 323e8b9921 Fix r_speeds 4 in OpenGL2 renderer 2013-06-20 16:21:26 -05:00
Zack Middleton aa2ea68741 Fix IQM tess buffer overflow
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".
2013-06-18 18:00:45 -05:00
Zack Middleton cb2fa48d65 Only allow model meshes to have SHADER_MAX_VERTEXES - 1 vertexes
The last index is used to check for buffer overflows. See RB_CheckOverflow and RB_EndSurface.
2013-06-18 17:02:47 -05:00
Zack Middleton 00c1831edb Don't try to fog flares with fogNum 0
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.
2013-06-11 15:47:00 -05:00
Zack Middleton d4f785c465 Improve warning for shader missing opening brace 2013-06-02 21:59:01 -05:00
Zack Middleton 3ec2b02dce Check for shaders without closing brace
Shaders without closing brace can eat shaders in other files.
Pass depth to SkipBracedSection instead of reparsing text as it messed up parse line numbers.
2013-06-02 21:55:19 -05:00
Zack Middleton 6c4d010f29 Fix null model axis disappearing if sky is in view 2013-05-31 01:07:49 -05:00