Commit graph

1366 commits

Author SHA1 Message Date
Bill Currie
a37c5465e1 First step for BSP2 support. DOES NOT WORK!
All of the nastiness is hidden in bspfile.c (including the old bsp29
specific data types). However, the conversions between bsp29 and bsp2 are
implemented but not yet hooked up properly. This commit just gets the data
structures in place and the obvious changes necessary to the rest of the
engine to get it to compile, plus a few obvious "make it work" changes.
2012-09-07 16:09:24 +09:00
Bill Currie
d6a1daaf30 Force a refdef update when nearclip or farclip change. 2012-08-29 09:55:17 +09:00
Bill Currie
78f7604efc Evil hack to handle duplicated sdl key syms. 2012-08-18 21:44:51 +09:00
Bill Currie
9250eb83bf Yet more char index issues.
Should be getting near the end of these as qfcc tries to link in my hacked
up tree :)
2012-08-18 21:42:49 +09:00
Bill Currie
5b054dd98b Add "slow grav" for smoke.
Removes one more set of hard codings from particle types.
2012-08-12 11:42:18 +09:00
Bill Currie
5a5b31bae4 Correct the direction of pt_fire particles.
sub_grav() was accelerating the particle in the wrong direction. Down being
+ve gravity caused a bit of confusion (though it was a c&p error).
2012-08-10 13:56:01 +09:00
Bill Currie
372defc1be Support up to 128 dlights.
More or less as per MH's tut, but really just finishing something that
should have been done years ago.
2012-07-21 13:58:54 +09:00
Bill Currie
7d8b0f96d6 Correct the fog distance calculations.
It turns out the pixel's z coord is correctly obtailed by
gl_FragCoord.z/gl_FragCoord.w.
2012-07-17 19:10:10 +09:00
Bill Currie
c4309e7abc Correct the fog blend calculation for transparency.
The incoming pixel's alpha should not be affected by fog. This fixes the
ugly square smoke particles in foggy maps.
2012-07-17 19:08:36 +09:00
Bill Currie
a7327acb80 Set up shadevector for gl alias models.
The setup had been lost at some stage, thus shadows were always directly
under the entity. Unlike the original quake shadow code, the vector is
correctly transformed into the entity's space.
2012-07-17 17:10:48 +09:00
Bill Currie
fbc0ad59df Implement gl shadows for pure triangle alias models.
I finally found the cause of Despair's gl shadows non-rendering+segfault...
the shadow code expected triangle fans and strips but was getting simple
triangles. Oops.
2012-07-17 16:11:42 +09:00
Sander van Dijk
3c04de1116 Better default vid_gamma value. 2012-07-17 06:30:01 +09:00
Bill Currie
134f9b0e9e Force pr_keys.c to get linked in.
Nothing in the main program currently uses Key_Progs_Init, so the object
file wasn't getting pulled into the link. However, it's quite necessary for
the client console plugin :/
2012-07-16 18:18:13 +09:00
Bill Currie
8333e6578c Fix non-static sw renderer for 32bit x86.
Yet another undefined symbol caused by iqm support. This time caused by
asm/not asm.
2012-07-15 22:34:00 +09:00
Bill Currie
0f34ab8762 Move pr_keys.c from console to video/targets.
It wasn't very accessible/usable in the client console plugin.
2012-07-15 07:39:50 +09:00
Bill Currie
f9c6eacb84 Really fix sw32 renderer loading.
It seems I never tested the sw32 renderer in a non-static build since I put
in IQM support.
2012-07-15 07:30:17 +09:00
Bill Currie
fd6b5edb73 Don't set triangle draw type in sw32 iqm renderer.
It's not used and causes link errors (I never noticed on my system).
2012-07-14 19:48:57 +09:00
Bill Currie
fcf7150c62 Remove some old renderer specific files. 2012-07-14 07:32:53 +09:00
Bill Currie
6fe32103ea Do a bit of bound() usage auditing.
While these seem to be mostly harmless, having function calls in the
bounded value can be nasty.
2012-07-12 19:33:51 +09:00
Bill Currie
a822a683cd Fix the inverted lighting for sw32.
LordHavoc had made lighting positive for sw32, but I had done something in
the plugin code that broke that (probably something to do with the
colormap loading). Going back to id's original code fixes the issue.
2012-07-12 18:15:45 +09:00
Bill Currie
12319cfcdf Revert "Slightly reducde the number of calls to glUniformMatrix4fv."
This reverts commit e170f4ee75.

It turns out I messed up something in the patch. I noticed the problem
while playing digs04.bsp: many sub-model surfaces, particularly those with
animated textures, were not being transformed correctly. As this patch did
not make a large performance difference, it's probably better to just
revert it. I might revisit it later.
2012-07-11 08:12:57 +09:00
Bill Currie
ede65fb28c Use the correct source for the backtile width/height.
Yay, no more garbage on the screen :)
2012-07-09 15:56:51 +09:00
Bill Currie
5014825b39 Fix the backtile for glsl.
Since the backtile is loaded into a scrap and used as a subtexture, we
can't use GL's texture wrapping, thus do the wrapping ourselves. There are
some minor issues with the wrong part of the scrap being drawn: need to
investigate where the bug is (vrect, make_quad, etc).
2012-07-09 15:11:03 +09:00
Bill Currie
37260018a2 Acutally use the vertex colors for alias models.
Thanks to Spirit trying QF on nvidia drivers, the missing attributes were
found. Now he shouldn't get gl errors :)
2012-07-08 16:52:13 +09:00
Bill Currie
a6d9f5d931 Fix a parallel make issue. 2012-07-06 12:35:50 +09:00
Bill Currie
dbbd6f4535 Fix a couple of missing particle function pointers.
Discovered while getting the location markers working again.
2012-07-06 10:18:05 +09:00
Bill Currie
ef9e8d05c4 Avoid some unnecessary state changes.
Doesn't make much difference but it doesn't hurt.
2012-07-03 18:20:32 +09:00
Bill Currie
ee1cb24e3d Move the call to R_SetFrustum to gl_R_SetupFrame.
This was meant to be part of the previous commit, but I forgot to write the
file :P
2012-07-03 16:08:12 +09:00
Bill Currie
a8e0bcabf9 Call R_SetFrustum in all renderers.
It turns out glsl, sw and sw32 weren't getting any benefit from R_CullBox
because the frustum wasn't setup :P. Get another 8% out of bigass1
(174->184fps). bigass1 now runs 2x as fast as it did before I started this
optimisation run :)
2012-07-03 15:57:33 +09:00
Bill Currie
e58cd75660 Bound r_maxdlights properly.
QF's implementation doesn't support more than 32 dlights (32 bit int).
2012-07-03 15:27:48 +09:00
Bill Currie
eefefb79b0 Rename char_queue to draw_queue. 2012-07-03 14:45:16 +09:00
Bill Currie
b25de4d995 Rewrite the 2d code to use a scrap.
This severely reduces the calles to BindTexture, and more importantly,
glUseProgram, EnableVertexAttribArray etc. The biggest changes are:

 o  icons and text are all in the one giant texture
 o  icons and text are mixed in the one queue

This gave ~9% speedup for bigass1 (159->174fps).
2012-07-03 13:38:35 +09:00
Bill Currie
df35b22af4 Parameterize the linear filtering of scrap textures. 2012-07-03 12:10:24 +09:00
Bill Currie
e170f4ee75 Slightly reducde the number of calls to glUniformMatrix4fv.
It doesn't make a big difference to bigass1 (yet ?), but it does clean up
apitrace a little.
2012-07-03 10:57:35 +09:00
Bill Currie
1a6b56b0a2 Call glTexSubImage2D only once per frame.
Instead of once per surface... ouch. Gives about 20% speed boost on demo1
(154.7->185.7)
2012-07-02 20:01:28 +09:00
Bill Currie
8fa92bf206 Add 32 button support to sdl and win as well.
The world isn't x11 (much as I'd like it to be)
2012-07-02 16:51:14 +09:00
Bill Currie
7cd8806ec0 Add support for up to 32 mouse buttons.
My new mouse reports only up to 9 (skipping 6 and 9, it seems), but I
/have/ seen 32 button mice...
2012-07-02 16:33:57 +09:00
Bill Currie
4da3be5cd6 Get a minor speed gain in glsl bsp rendering.
About 4% (99.5 to 104.4) from not calling VertexAttrib4fv or BindTexture
when not necessary.
2012-06-29 22:13:20 +09:00
Bill Currie
603fe92cba Add a callback for when key_dest is set. 2012-06-29 18:00:21 +09:00
Bill Currie
3406cad99a Many distcheck fixes.
Yay, bitrot :P
2012-06-29 10:49:21 +09:00
Bill Currie
aa2a8e8909 Mostly "merge" cl_screen.c.
Down to protocol/networking differences.
2012-06-15 22:02:17 +09:00
Bill Currie
b2290d92c9 Nuke UNALIGNED_OK.
It's not really necessary (and was effectively dead anyway).
2012-06-15 22:02:17 +09:00
Bill Currie
e730608dd7 Implement r_flatlightstyles from fitzquake. 2012-06-15 22:02:14 +09:00
Bill Currie
dbc203b625 And a few more bits of whitespace. 2012-05-23 08:21:27 +09:00
Bill Currie
23a38738fc Massive whitespace cleanup.
Lots of trailing whitespace and otherwise blank lines.
2012-05-22 08:23:22 +09:00
Bill Currie
85da69a96a Transform normals wrt bones in sw and sw32.
Better lighting :), though any scaling/shearing will produce funny results,
and sw32's lighting is broken in general.
2012-05-20 15:21:25 +09:00
Bill Currie
0fbaa2a88a Add sw32 support for iqm models.
That was easy :)
2012-05-20 14:23:41 +09:00
Bill Currie
e2db2dcb63 Support static iqm models.
Segging on a model with no animations is not nice :P
2012-05-19 21:26:11 +09:00
Bill Currie
d25f39cc7d Remove pskindesc from affinetridesc_t.
It's never used after being set.
2012-05-19 09:29:05 +09:00
Bill Currie
be9c0697a2 Give sw iqm its own transform setup.
IQMs don't need to be scaled or offset. This fixes iqms not rendering,
though they actually were: just super tiny.
2012-05-19 00:43:26 +09:00