Bill Currie
7e078c7f9c
Revamp cshifts and implement in glsl.
...
The renderer should now be free of any direct access to client code. Even
3d rendering is now done via a function pointer.
The cshift code is done as a 2d screen function.
2012-01-28 20:45:14 +09:00
Bill Currie
7739ba3ea9
Move the 2D set out of the 3D code.
...
It really belongs exclusively in the screen setup code.
2012-01-13 19:51:45 +09:00
Bill Currie
454047ab92
Make r_novis 0 take effect immediately.
2012-01-03 23:17:49 +09:00
Bill Currie
0797183201
Merge R_MarkLeaves from gl, sw, and sw32.
...
Other than novis, they're functionally identical. Now sw and sw32 have
novis as well.
2012-01-03 21:09:13 +09:00
Bill Currie
1437cbec91
Make the face culling a little more sensible.
...
GL Quake was weird, culling front faces. Partly understandable, since
Quake's front order is clockwise and GL's default order is
counter-clockwise. However, since the order can be specified, that should
be done instead. Thus, specify the winding order as clockwise (for quake's
data), set culling for back-face removal, and then mess with the winding
direction in the mirror and fish-eye code.
2012-01-03 18:06:26 +09:00
Bill Currie
20d93466c7
Frag some magic numbers.
...
More annoying than hipnotic's gremlins.
2011-12-30 21:07:35 +09:00
Bill Currie
53d89bf85a
Clean up the mess around D_FlushCaches.
...
Create an R_ClearState and call that from the clients. It calls any
necessary functions itself.
2011-12-23 12:51:47 +09:00
Bill Currie
52d9269867
Merge brush model with world model rendering.
...
With this, non-mtex global fog now works properly :).
2011-12-18 08:09:55 +09:00
Bill Currie
87b78e5533
Move the surface chain links out of the surfaces.
...
The links are now in "instance surfaces". For non-instanced models (world,
doors, plats etc (ie, world and its sub-models)), there will be one
instance surface per model surface. However, for instanced models (ammo
boxes etc), there will be many, dynamically allocated (not yet
implemented). This commit gets the static instance surfaces working.
2011-12-17 19:14:14 +09:00
Bill Currie
3eb859a88f
Move the entity transform setup into the clients.
...
This has several benifits:
o The silly issue with alias model pitches being backwards is kept out
of the renderer (it's a quakec thing: entites do their pitch
backwards, but originally, only alias models were rotated. Hipnotic
did brush entity rotations in the correct direction).
o Angle to frame vector conversions are done only when the entity's
angles vector changes, rather than every frame. This avoids a lot of
unnecessary trig function calls.
o Once transformed, an entity's frame vectors are always available.
However, the vectors are left handed rather than right handed (ie,
forward/left/up instead of forward/right/up): just a matter of
watching the sign. This avoids even more trig calls (flag models in
qw).
o This paves the way for merging brush entity surface rendering with the
world model surface rendering (the actual goal of this patch).
o This also paves the way for using quaternions to represent entity
orientation, as that would be a protocol change.
2011-12-15 17:09:01 +09:00
Bill Currie
91e65b6c80
Rename mplane_t to plane_t and clean up the mess.
...
I got rather tired of there being multiple definitions of mostly compatible
plane types (and I need a common type anyway). dplane_t still exists for
now because I want to be careful when messing with the actual bsp format.
2011-11-28 20:54:34 +09:00
Bill Currie
1c47f9e16d
Kill some magic numbers.
2011-09-04 09:58:12 +09:00
Bill Currie
efa0105748
Rename some headers to fix doxygen warnings.
2011-07-23 15:58:45 +09:00
Bill Currie
47e55fe1c6
Properly terminate each fisheye quad strip.
...
The horizontal quad strips need to be rendered individually rather than as
one single strip. The latter results in ugly triangles crossing the screen.
2011-04-17 13:03:22 +09:00
Bill Currie
14480fd1b4
Move the call to R_ClearEnts to the renderer.
...
This fixes the hang on certain maps in qw-client.
2010-12-25 19:59:34 +09:00
Bill Currie
8919aec663
Get global fog working in mtex mode.
2010-12-10 21:40:36 +09:00
Bill Currie
a6941e27ef
Eliminate MAX_VISEDICTS. Unlimited visible entities.
...
The renderer can now render as many entities as can be crammed into the
currently visible set of nodes.
2010-12-03 14:59:02 +09:00
Bill Currie
8c4fe2f844
Rename Sys_DPrintf to Sys_MaskPrintf.
...
We now have finer runtime control over what gets printed. Need to do a
SYS_DEV audit, creating new masks as apropriate.
2010-11-26 16:19:26 +09:00
Bill Currie
a5f0fbc821
Proper widescreen support. The GL renderer now respects the pixel aspect calculated by the vid init code. Also, a new cvar: vid_aspect. The format is width:height and the values may be any float greater than 0. The default is 4:3, but any units may be used.
2009-12-24 05:33:41 +00:00
Bill Currie
4b0320f341
glx, gly, glwidth and glheight are now gone too. also GL_BeginRendering
2009-12-23 08:20:29 +00:00
Bill Currie
ee0de1b4e1
got it right this time
2009-12-23 08:05:03 +00:00
Bill Currie
c2945605bc
oops
2009-12-23 07:57:07 +00:00
Bill Currie
8ddfdf03b2
with the changes in size handling, viewport setup becomes much simpler
2009-12-23 07:53:05 +00:00
Bill Currie
6d6dc27592
make startup and shutdown a little quieter
2007-11-06 10:39:49 +00:00
Bill Currie
d66934942d
nuke Con_Printf and Con_DPrintf and use Sys_* instead
2007-11-06 10:17:14 +00:00
Bill Currie
81a57bb3fa
patch from phrosty for vc2005 support. includes fixes for a bunch of gcc-isms that crept in over the years.
2007-03-22 23:20:57 +00:00
Bill Currie
99c0954b47
the big dso visibility patch :). Sure, we have to have unique names for static builds, but with controlled visibitly we should get faster program loads (although this isn't C++, so it's not as bad) and complex plugins are cleaner.
2007-03-10 12:00:59 +00:00
Bill Currie
7bca4cf8af
clean up the draw interface a bit
2006-12-02 10:07:08 +00:00
Bill Currie
3fb03fc2be
hah, should have been using __attribute__((used)) all that time (rather
...
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie
616f094369
don't mangle the angle. no idea why it was there and it shouldn't normally
...
get there /anyway/
2005-04-27 08:07:09 +00:00
Bill Currie
8a237169c3
patches to allow for multiple view ports
2004-05-07 03:54:35 +00:00
Bill Currie
57ffcae9fe
remove some dead code
2004-05-03 04:52:00 +00:00
Bill Currie
fc4211c257
the rest of Grievre's lighting tweaks
2004-05-02 21:21:00 +00:00
Bill Currie
1c0735d0c9
* taniwha mutters about end-runs (sorry, Grievre)
2004-04-28 04:07:50 +00:00
Bill Currie
785307fd9a
Grievre's lighting tweeks
2004-04-27 22:18:23 +00:00
Ragnvald Maartmann-Moe IV
29502c8f5a
Lots of optimizations, particularly for GL state changes, and tweak lighting a
...
bit more.
Also a cleanup from Grievre: Use VectorIsZero in two places in gl_mod_alias.c.
2004-03-15 21:32:19 +00:00
Ragnvald Maartmann-Moe IV
9cd16b8dfd
Grievre's lighting patch, plus some of my own changes.
...
My changes:
Emit normals if truform is enabled.
Attempt to avoid 0,0,0 normals (makes lighting & tesselation unhappy).
Fix some (ancient) apparent bugs in GetAliasFrameVerts16().
Clamp minlight, instead of adding it.
Apply colormod as glColor, rather than adding it to emission, to prevent QSG2
issues with fullbrights.
Rearrange init code, and don't go quite as wild with responsiveness to lights.
Material & lightmode settings will need tweaking & testing to work well on all
cards. Feedback needed there.
2004-03-10 08:14:38 +00:00
Ragnvald Maartmann-Moe IV
b7df0b5278
Remove gl_doublebright, remove fractional overbrights, clean up init a bit,
...
uglify init a bit. Stuff for taniwha to look at. Nothing to see here, move
along.
2004-03-07 23:51:29 +00:00
Ragnvald Maartmann-Moe IV
e29e469646
Multitexture state fix. Harmless so far, but testing carefully helps us avoid
...
state leak horrors.
2004-02-27 21:42:52 +00:00
Ragnvald Maartmann-Moe IV
44c89c1904
Optimize fullbright testing for brushes, assorted other cleanups, test for
...
functions built into current GL drivers, as well as the old extensions, and
add incorrectly rendering BGRA support.
Whee!
2004-02-24 20:50:55 +00:00
Ragnvald Maartmann-Moe IV
872498a1f0
Reorder a lot of code, removing tons of ifs. multitexture paths are a bit more
...
sane now. Also optimize QSG2 color handling, and fix some QSG2 bugs. Not that
anyone cares, nobody uses it anyways.
Should be faster, but isn't here. *grmbl*
2004-02-22 06:00:15 +00:00
Chris Ison
ca6112767c
Grievres' water HOM and mtex FB only rendering FB texture fix
2004-02-21 09:04:52 +00:00
Ragnvald Maartmann-Moe IV
5157f668ad
Fix a bunch of state leaks that made multitextured fullbrights smear the world.
...
Now just have one (known) issue with bmodels with fullbright textures not
rendering their base texture. Floating fullbrights are nifty!
Also a number of optimizations, which need wider performance testing.
2004-02-21 05:36:19 +00:00
Ragnvald Maartmann-Moe IV
88c5d21ece
Whitespace, slight code reorder in gl_rmain.c
2004-02-09 04:13:44 +00:00
Ragnvald Maartmann-Moe IV
e1146a541c
TruForm support. Controlled by gl_tessellate
2004-01-26 00:13:47 +00:00
Bill Currie
6a94607d9d
rename VectorMA to VectorMultAdd, add VectorMultSub and use it in a few
...
places. Not certain how much speed difference it makes :/
2003-08-08 15:25:53 +00:00
Ragnvald Maartmann-Moe IV
6763d73f99
Make glError testing static, for now, to shut up compiler warnings.
2003-05-09 05:22:30 +00:00
Ragnvald Maartmann-Moe IV
f6b556a3a1
*beats CVS with the cluebat*
2003-05-09 01:41:56 +00:00
Ragnvald Maartmann-Moe IV
d68b4b6121
\n is nice occasionally.
2003-05-08 22:32:02 +00:00
Ragnvald Maartmann-Moe IV
28dd1612c3
Clean up glError handling.
2003-05-08 22:16:30 +00:00
Bill Currie
905f1826eb
temporarily remove location support from nq (and location markers from both)
...
until client code has been cleaned up more
2003-04-21 18:26:21 +00:00
Ragnvald Maartmann-Moe IV
3bfdf0aea3
Test for gl errors every frame.
2003-03-21 21:28:09 +00:00
Ragnvald Maartmann-Moe IV
88c2735d9c
Make sprite rendering use vertex arrays, as a test for detection of vertex array support (tests only for OpenGL 1.1 or better, at the moment, no driver blacklist yet).
2003-03-20 19:58:18 +00:00
Ragnvald Maartmann-Moe IV
83f0901c17
Cleaned up fisheye code which totally ignored QF coding style.
...
Also attempt to fix an init bug in R_InitFishEyeOnce (add gl_cube_map_capable = false to else).
2003-02-09 19:35:49 +00:00
Bill Currie
d63cde4103
import the GL_ARB_texture_cube_map defines
2003-01-15 18:26:58 +00:00
Bill Currie
0ea15c3f82
sw and gl fisheye patches from Arkadi Shishlov (arkadi@it.lv). I don't
...
think /I/ can play that way (dizzy:)
2003-01-15 16:53:34 +00:00
Bill Currie
761a7546dd
re-arrange things so __attribute__ and __builtin_expect are properly
...
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
71196fedf6
make gcc more anal about prototypes, string constants and function
...
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Bill Currie
ca4b3acd6c
big protototype cleanup. Now, except for a few cases, all non-static
...
prototypes are in headers files.
2002-11-05 19:12:51 +00:00
Ragnvald Maartmann-Moe IV
00b798c5b6
MORE whitespace. Will it never end?
2002-10-10 20:12:32 +00:00
Ragnvald Maartmann-Moe IV
32a85e7130
Clipping cleanups.
...
Calculate radius for alias models as well as brush.
Culling is no longer optional on alias models (was only ever disabled for viewmodel, which is a lot of extra effort to avoid clip testing 1 thing out of hundreds).
Clip QSG2 scaled alias models with a scaled bbox.
2002-08-20 00:48:59 +00:00
Ragnvald Maartmann-Moe IV
fd1ded5c4a
Add r_nearclip and r_particles_nearclip. Also put some limits on r_farclip. And fix id's insane max and min float, and some minor improvements in frustum setup in GL.
2002-06-26 22:20:12 +00:00
Ragnvald Maartmann-Moe IV
46949068a2
Check return value on R_AllocDlight. Small optimization, people cutting r_dlight_max heavily should like it.
2002-06-05 22:07:38 +00:00
Brian Koropoff
ee5d0b7a99
Added r_farclip to control the far clipping plane.
2002-05-20 05:11:12 +00:00
Chris Ison
347cdc5e33
some small performance optimizations with textures and animations
2002-04-15 03:26:08 +00:00
Bill Currie
51805ebd92
nothing much, just give wildcode a 30% speed boost. Basicly, stop binding
...
a texture for every single brush poly: due to texsort, they will come in
batches.
2002-03-16 09:25:06 +00:00
Ragnvald Maartmann-Moe IV
018481b1ac
Might as well allow gl_affinemodels to affect the viewmodel as well...
2001-12-19 20:15:38 +00:00
Ragnvald Maartmann-Moe IV
e78bdb3ea6
Fix failure to free cache for non-shadowed stuff (lightning, grenades, etc).
...
Also a minor speedup (only mess with glHints once per frame, instead of dozens of times).
2001-12-19 18:32:26 +00:00
Ragnvald Maartmann-Moe IV
f66b7a93e5
Major particle interface cleanup, several bugfixes, and minor performance improvements. Oh, check out "/help easter_eggs" (gl-only, at the moment).
2001-12-11 22:37:30 +00:00
Bill Currie
e99b422628
extinguish gl_fires. it's semi-broken, generally nasty (code wise) and
...
kinda tacky. also results in a slight speed boost:)
2001-11-25 06:24:26 +00:00
Ragnvald Maartmann-Moe IV
4d406337b6
Move gl_fires into gl, where it belongs.
...
Also some small cleanups in particles.
Brighten grenade smoke a tiny bit, so it's not so invisible in the typically dark quake areas.
And some minor cleanups to water rendering.
2001-11-24 08:21:07 +00:00
Ragnvald Maartmann-Moe IV
3f79367865
Minor rendering cleanup, also may help rendering speed when r_wateralpha = 1, by playing with draw order.
2001-11-20 09:41:15 +00:00
Ragnvald Maartmann-Moe IV
de0b4f65fa
modelalpha and currenentity cleanups.
2001-11-04 07:40:35 +00:00
Ragnvald Maartmann-Moe IV
e8b36b1a71
Remove unused R_CullBlocked.
2001-11-03 07:30:15 +00:00
Ragnvald Maartmann-Moe IV
d1c115da05
Whitespace.
2001-10-30 19:58:01 +00:00
Bill Currie
85c9e0ab1e
more externs cleaned up
2001-10-29 17:46:03 +00:00
Bill Currie
bf309fb554
split the sprite and alias model rendering code out from gl_rmain.c into
...
their own files.
2001-10-23 17:20:56 +00:00
Ragnvald Maartmann-Moe IV
db87121c2b
Whitespace.
2001-10-10 04:59:43 +00:00
Ragnvald Maartmann-Moe IV
9cc671e6d2
Try #2 .
...
Change r_maxparticles from short to unsigned int.
Make MAX_DLIGHTS into a cvar, r_dlight_max that sets the unsigned int r_maxdlights.
2001-10-09 20:35:17 +00:00
Ragnvald Maartmann-Moe IV
820fcbb8d2
R_Mirror-related cleanups, and some whitespace.
2001-10-02 06:13:22 +00:00
Ragnvald Maartmann-Moe IV
5e6f77cddb
Instead of glEnable/glDisable (GL_ALPHA_TEST) pairs for every sprite rendered, let's do it once for the entire sprite loop. Minor hit when there are no sprites, but 2+ it's a gain. Better worst case, rather than better peak performance.
2001-10-02 01:48:51 +00:00
Ragnvald Maartmann-Moe IV
63ac10dfde
Clean up glDepthFunc and glDepthRange so it's properly initted, and not set needlessly every frame.
2001-10-02 00:01:05 +00:00
Ragnvald Maartmann-Moe IV
4b3c4e1eaf
Whitespace.
2001-10-01 21:52:05 +00:00
Bill Currie
b1f4a778f9
the rcsid commit from hell }:>
2001-09-28 06:26:31 +00:00
Ragnvald Maartmann-Moe IV
a7d8e2c0ea
TE_EXPLOSION2 now does colored lighting. And spark showers brightened up a bit. Sparks all yellow now, none of the weird dingy grey ones. ;)
2001-09-16 20:07:28 +00:00
Ragnvald Maartmann-Moe IV
28fe1dc004
Tweak rocket trails. Uglier, but don't bog down rocket snipers. Also a couple tiny optimizations and cleanups.
2001-09-09 19:37:07 +00:00
Bill Currie
05f489735e
code cleanups and possibly minor optimisations
2001-09-07 21:15:08 +00:00
Ragnvald Maartmann-Moe IV
65c526c057
Some minor cleanups, and lots of particle effects tweaks.
...
Less blinding rocket trails is probably the most noticable change, other than a nice speedup in nq timedemos. Little change for overkill, though. Aw...
2001-09-04 10:32:51 +00:00
Ragnvald Maartmann-Moe IV
ed4de07e9a
Header and variable declaration cleanups, tiny bit of whitespace.
2001-09-01 08:57:04 +00:00
Bill Currie
ea614fc2c6
turns out the sprite models are /not/ relocatable, so back out that change
...
in favor of cleaning up the accessors
2001-08-31 17:33:25 +00:00
Adam Olsen
384dfb7b66
- partial work for putting sprites in the cache.
...
doesn't currently build.
2001-08-31 15:32:11 +00:00
Adam Olsen
f1a016c8a5
- Refine the Cache_Get callback, to use a void * instead of a char *
...
- Switch alias models over to Cache_Get/Cache_Release
2001-08-31 12:22:45 +00:00
Bill Currie
d81d7fd02c
glColor cleanup
2001-08-30 18:24:19 +00:00
Ragnvald Maartmann-Moe IV
793efd6976
Whitespace.
2001-08-27 01:00:03 +00:00
Ragnvald Maartmann-Moe IV
da1c680364
Whitespace.
2001-08-26 17:13:33 +00:00
Ragnvald Maartmann-Moe IV
e7fb6a1100
Whitespace, comment cleanups, and a very tiny cleanup/micro-optimization for R_AddDynamicLights.
2001-08-22 11:00:25 +00:00
Bill Currie
ec3eed4c7a
don't do the lerp calcs for blend == 0 or blend == 1
2001-08-21 05:46:55 +00:00
Bill Currie
0d82df96b0
ah, found the correct fix :)
2001-08-21 05:29:15 +00:00
Bill Currie
7ea46cf4ed
disable lerping of the shadedots. stops the flicker but some lighting will
...
probably be a little funny.
2001-08-21 05:16:30 +00:00
Bill Currie
9bad6b89bb
lerping works again. flames no longer flicker, but players do a /little/
2001-08-21 03:49:17 +00:00