Commit graph

51 commits

Author SHA1 Message Date
Bill Currie
5aa74df922 [renderer] Add a default 8x8 font
It is not compatible with the quake charset (it's the IBM charset). The
data is a simple bitmap but a converter to quake pic format is provided.
2021-01-08 14:37:52 +09:00
Bill Currie
34bcf7faab Do a pure/const/noreturn/format attribute pass.
I always wanted these, but as gcc now provides warnings for functions that
could do with such attributes, finding all the functions is much easier.
2018-10-09 12:42:21 +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
0fbaa2a88a Add sw32 support for iqm models.
That was easy :)
2012-05-20 14:23:41 +09:00
Bill Currie
c0517b1d97 Factor out the blend palette creation.
gl, sw and sw32 use blend palettes, so share the code. This also abandons
the optimization for transforming verts in sw (had all sorts of problems
anyway). sw still doesn't work, though.
2012-05-19 00:34:15 +09:00
Bill Currie
fb10f38fd4 SW now tries (but fails miserably) to render iqm models.
Something seems to be very wrong with the transforms.
2012-05-18 23:31:14 +09:00
Bill Currie
da87ac0ce5 Remove some unused parameters. 2012-05-17 21:33:22 +09:00
Bill Currie
f958afad53 Optionally allocate extra data for iqm blend frames.
Also, correct the blend parameter type (int->float. oops).
2012-05-17 15:57:07 +09:00
Bill Currie
041d63c828 Move the frame blending into common code. 2012-05-16 17:44:18 +09:00
Bill Currie
c2e0674d50 Implement R_IQMGetLerpedFrames().
Like R_AliasGetLerpedFrames, but for IQM. It calcualtes the current frame
number and blend between the previous and current frames.
2012-05-15 21:08:46 +09:00
Bill Currie
bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie
f7007825e4 Run the vacuum cleaner over sw32's global variables.
This seems to be everything that can be made static.
2012-04-11 14:58:54 +09:00
Bill Currie
a4c280f2b2 Take the first step towards render plugins.
No clients link. Even if they did, nothing would work.
2012-04-11 14:58:53 +09:00
Bill Currie
72fb96245f Cleanup global symbols for the sw and sw32 renderers.
Names not mangled, but those symbols that could be made static have been.
Also, many dead variables have been removed.
2012-02-18 14:34:14 +09:00
Bill Currie
447ff2f2f5 Clean up global symbols for the gl renderer.
Where possible, symbols have been made static, prefixed with gl_/GL_ or
moved into the code shared by all renderers. This will make doing plugins
easier but done now for link testing.
2012-02-18 11:48:52 +09:00
Bill Currie
4955caafe5 Make the dynamic textures more readily available.
I want to get QF style particles going in glsl (since id style is currently
stuck at one pixel), but I don't want multiple copies of the texture code.
2012-01-21 19:13:01 +09:00
Bill Currie
6050901e0e Break out the entity blend calculations.
This allows alias and sprite model lerping to share the code.
2012-01-04 18:30:47 +09:00
Bill Currie
f0e88bbe85 Rip out the duplicate lerp code and merge it.
While the vertex lerping needs to be duplicated in the current GL code,
there's no need for the setup code to be duplicated. Also, I want it for
GLSL.
2012-01-04 16:26:52 +09:00
Bill Currie
454047ab92 Make r_novis 0 take effect immediately. 2012-01-03 23:17:49 +09:00
Bill Currie
72e3a8d507 Merge sw and sw32 alias frame selection.
I'm leaving GL for later because lerping complicates things. I'll sort it
out when I implement lerping in GLSL.
2012-01-02 17:47:22 +09:00
Bill Currie
1c480bf75e Merge the alias skin selection code.
We really don't need 4 copies of identical code when 1 will do :P
2012-01-02 15:57:43 +09:00
Bill Currie
718595db45 Implement sprite rendering.
Sprite interpolation seems to work, even :) (maybe)
2011-12-31 14:39:33 +09:00
Bill Currie
55e53b796d Make a start on getting sprites rendering.
The plan is to do interpolated sprites based on a discussion I had with
LordHavoc about them: blending between the two sprite frames. He didn't
mention it, but it looks like blending between the sprite frames' verts is
necessary too.
2011-12-30 21:11:59 +09:00
Bill Currie
db8573b774 Make the cross-hair data sharable between renderers. 2011-12-26 21:43:15 +09:00
Bill Currie
33c5320c0e Create stubs for most of the required render functions.
nq-glslx almost links. Just some suspicious references in host.c I want to
check before doing anything more.
2011-12-23 12:19:50 +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
962451e2fe Create a list of texture chains.
This moves the texture chains out of the world model and into a separate
list, allowing other brush models to registter their textures.
2011-12-15 17:09:02 +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
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
f98b002f9e Make R_StoreEfrags const-correct.
R_StoreEfrags does not need to modify its parameter or anything to which
it directly refers, so make the pointer single-level and constant.
2010-12-03 13:30:49 +09:00
Bill Currie
085b0f4448 Remove R_SplitEntityOnNode2
When R_AddEfrags is used (as is the case in nq), this function is
redundant. Brush models in qw are currently broken (invisible), but that's
just a matter of getting qw to use R_AddEfrags instead of R_NewEntity.

This removal should speed up the software renderers a little bit.
2010-12-02 08:31:48 +09:00
Bill Currie
23f71485d1 more tree recovering. This includes Despair's anisotropy support work. 2005-01-02 14:23:20 +00:00
Ragnvald Maartmann-Moe IV
c2053fbfb1 Prettier particles! Renderer is now informed of sv_gravity changes in qw. Not
supportable without protocol changes in nq.
2003-08-27 22:20:03 +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
Bill Currie
6ce0abe536 more alpha compile fixes. Closes: #60 because while it started out for
0.1.1 it developed into an alpha compile issue for 0.5.2
2002-11-13 20:20:50 +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
Bill Currie
ebfdbd9285 the fpu manipulation stuff seems to be better off in the one place that
actually uses it...
2002-06-07 15:09:20 +00:00
Jeff Teunissen
5b069de40c Redo r_wateralpha so that it doesn't force its value based on the watervis
serverinfo. Instead, create a new cl_wateralpha float variable that is set to
r_wateralpha->value in Host_Frame, and use that float during rendering.
2002-04-25 12:51:04 +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
Seth Galbraith
42456845f0 high precision software mdl rendering 2002-01-05 03:21:02 +00:00
Bill Currie
013f503738 start getting const-correct on vec3_t params 2002-01-03 05:29:38 +00:00
Bill Currie
0be2a31f2e lots of code cleanup. Merge Mod_LoadAllSkins, merge the sw32 model loading
code into the sw model loading code, remove all refs to r_pixbytes from the
sw renderer (it was never anything but 1), kill libQFmodels_sw32, remove
all the 16 bit code from the 8 bit sw renderer.
2001-11-21 19:13:53 +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
Bill Currie
8883bbb369 some lighting fixes. not quite there yet 2001-08-05 05:07:49 +00:00
Bill Currie
647d38fa40 Make R_MarkLights use the vis info to speed things up. Oddly, even though
R_MarkLights is now about 3% instead of about 15%, I've lost 8 fps on my
null GL speed test. However, R_AddDynamicLights has jumped up a bit, so I'm
wording if maybe more surfaces are being lit.
2001-08-05 04:01:45 +00:00
Bill Currie
6bf58ab1af no header includes cvar.h now 2001-05-31 03:41:35 +00:00
Bill Currie
4a80639556 sw and gl rmisc are now client clean. the graphing functions ahve been pulled
out into r_graph.c (Time and Z graph), cl_ngraph.c (Net graph), and
{gl,sw}_graph.c (R_LineGraph). gl_ngraph.c is gone. Unfortunatly, something
is rather wrong with NetGraph in gl (probably R_LineGraph).
2001-05-22 06:00:38 +00:00
Bill Currie
d360b01827 move dlight stuff out of cl_* into r_main.c. nq dlights seem to be broken,
but that seems to have been from before this work
2001-05-20 05:42:52 +00:00
Bill Currie
d1c2b0ec52 r_efrag.c no longer relies on cl*.h 2001-05-20 02:39:56 +00:00
Ragnvald Maartmann-Moe IV
56f76e8192 More cleanups. 2001-05-14 01:22:58 +00:00