Commit graph

9071 commits

Author SHA1 Message Date
Bill Currie
02de92abb0 Use "return" strings instead of temp strings for qwe.
QF's temp strings have very different semantics. Return strings are the
ones with the same semantics (only 16 slots instead of 8 in mvdsv:)
2012-07-13 11:43:37 +09:00
Bill Currie
2dea74ce91 Get the client entnum from the right place.
When trying to get the client ent num from an entity's owner, it helps if
the owner field is used :P Fixes a segfault firing nails (and sometimes
rockets) in freewill's coop mod. Hopefully fixes his "trigger in clipping
list" bug.
2012-07-13 11:12:31 +09:00
Bill Currie
a9adc94aa8 Force builtin function descriptors to have a name.
That is, the descriptors loaded from the progs file. Some compilers (eg,
fteqcc :P) strip builtin names from the progs, which makes debugging
difficult.
2012-07-13 10:22:25 +09:00
Bill Currie
1100596431 Include the mdl import/export addon in the distribution.
A tad embarrasing...
2012-07-13 07:59:50 +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
4a9d18ae40 Slight rpm package cleanup to match debian. 2012-07-11 14:42:50 +09:00
Bill Currie
1369e9e158 Fix rpm package building. 2012-07-11 14:33:21 +09:00
Bill Currie
f467e2de54 Use sed's in-place option. 2012-07-11 13:38:27 +09:00
Bill Currie
00215f4cbd Debian package building fixes. 2012-07-11 13:37:57 +09:00
Bill Currie
086d811d72 Update for 0.6.99 beta1.
Yeah, I decided it's time to think about 0.7 :)
2012-07-11 10:34:30 +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
99e050e828 Found yet another build dependency (docs). 2012-07-09 15:10:27 +09:00
Bill Currie
6e0907a6b1 Delay the "too many entities" check.
Rather than checking the raw edict count in the entities file against the
progs' max_edicts, check the allocated entity's number. This allows loading
of sophisticated maps (eg, digs04) that prune many of their entities.
2012-07-09 15:07:34 +09:00
Bill Currie
ce16750b04 Cache the max_edicts value in the progs struct.
Makes checks a little easier.
2012-07-09 15:06:42 +09:00
Bill Currie
0aac004c98 Rearrange the edict related fields of progs_t. 2012-07-09 15:04:12 +09:00
Bill Currie
e91b06a144 Better name for the edict count parameter to PR_LoadProgsFile. 2012-07-09 15:02:49 +09:00
Bill Currie
fc88c829bc Disable fbdev for now.
By default, anyway. It doesn't work and only distracts users.
2012-07-09 12:06:59 +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
7b3242843f Add a missing dependency to INSTALL
The joys of building a fresh system... :)
2012-07-08 07:12:46 +00:00
Bill Currie
a6d9f5d931 Fix a parallel make issue. 2012-07-06 12:35:50 +09:00
Bill Currie
20ad50407d Correct the size adjustment for qwe's newstr.
It seems the correct interpretation is that the size parameter includes the
trailing 0 (going by mvdsv source).
2012-07-06 10:53:24 +09:00
Bill Currie
d4f4e450e6 Fix the bogus loading plaque when disconnected (nq). 2012-07-06 10:44:29 +09:00
Bill Currie
a558f1b0f4 Re-enable the location marker code.
Drawing is controlled via the cl_draw_locs command. Entities are still
drawn, but that might not be such a bad thing after all.
2012-07-06 10:39:28 +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
3519931b78 Limit beams to one per entity.
Note that this is only a soft-limit and prevents excessive beams when only
one is expected. If more beams are desirned, just use 0 for the entity
number.
2012-07-06 08:29:21 +09:00
Bill Currie
66ef8e16c1 Fix the ghost entities in demo playback.
Really, when cl_nodelta is in effect (eg, .qwd demo recording and thus
playback). QW now uses the new shared entity state block as I'd intended.
Thanks to the cleanup of ghost entities (ie, entities that have been
removed but continue to be rendered), glsl overkill has gone from 157 to
163 fps :)
2012-07-05 19:06:35 +09:00
Bill Currie
428d57b7e1 Don't attemt fullbright processing for an unavailable skin.
In the end, it turns out this is the correct fix for the gl seg on
overkill, because build_skin will correctly use the fully setup player skin
if the glskin doesn't have a texture associated with it.
2012-07-05 10:30:41 +09:00
Bill Currie
80bc0e9fb8 Make nq and qw use the new entity state struct.
This isn't really the best solution, but it does get things being shared
with the minimum of fuss.
2012-07-05 09:39:16 +09:00
Bill Currie
dea2f48477 Move entity_state_t into client/entities.h
Also, start working on the shared entity manager.
2012-07-05 09:39:16 +09:00
Bill Currie
b65c41efcb Move the colormod lookup table into a new lib.
libQFclient is now here :) The first shared code is the lookup table.
2012-07-05 09:39:16 +09:00
Bill Currie
49f7d1ad6d Fix the bogus entity scales in the gl render.
It seems none of the other renderers support entity scale...
2012-07-03 20:07:18 +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
1a1b406e5b Fix timedemo in qw.
td_lastframe needs to be a float in qw. It seems the meaning changed from
nq to qw, but that's rather bogus. I need to look further into juat what's
going on, but at least now timedemo works.
2012-07-02 20:59:03 +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
602cd84e21 FIx some player color issues found by valgrind. 2012-07-02 19:24:39 +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
3d56084f59 Fix a memory leak.
Entity/Edict leafs weren't being freed when the entity was freed.
2012-07-01 09:05:16 +09:00
Bill Currie
7573c38122 Create qfspritegen based on id's sprgen.
No guarantees it works, but it should be able to convert a bunch of pcx
images into a sprite.
2012-06-30 20:20:15 +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