Bill Currie
8de5c9ae3f
Do a final cleanup before doing the big rename.
2012-04-11 14:58:54 +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
db4a463727
Remove VISIBLE from the files that will go into the plugins.
2012-04-11 14:58:54 +09:00
Bill Currie
eb536dc995
Remove D_BeginDirectRect and D_EndDirectRect from gl/glsl.
...
They were never really needed anyway (they're for the sw renderer).
2012-04-11 14:58:54 +09:00
Bill Currie
e991c1fed3
Make a bit of progress cleaning up vid for plugins.
2012-04-11 14:58:54 +09:00
Bill Currie
80f5cc59e9
Plug a memory leak.
...
Allocating (and not freeing) rects every frame... ouch.
2012-04-11 14:58:54 +09:00
Bill Currie
96b80433d8
Make some progress in getting static plugins to link.
...
Still many redefined symbols (and I expect more to come), and many
undefined symbols too.
2012-04-11 14:58:54 +09:00
Bill Currie
5f5305d61d
Map vr_data/funcs to vid_render_data/funcs.
2012-04-11 14:58:54 +09:00
Bill Currie
ad61c7a30c
Start working on creating the render plugins.
...
Things blow up quite nicely. :)
2012-04-11 14:58:53 +09:00
Bill Currie
8530959752
Link the model libs to the render plugins.
2012-04-11 14:58:53 +09:00
Bill Currie
8e91fb7bc1
Get the basics linking.
...
Still, nothing will work: no plugins are loaded and they're all broken
anyway.
glx, sgl, glslx etc are going away, just the basics will be built: fbdev
(probably go away eventually), sdl, x11 and hopefully someday win. That's
actually the only reason anything links.
2012-04-11 14:58:53 +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
1cbabf72c9
Fix a buffer overflow.
...
gcc 4.7 found it :)
2012-04-11 14:56:49 +09:00
Bill Currie
39e1ccc506
Don't try to process skins in GL without a player model.
...
If the client receives a skin updated message from the server before having
loaded the player model (shouldn't happen, but some servers have very
strange programmers), no skin data is avaible for updating, so just bail
out.
2012-03-14 16:08:48 +09:00
Bill Currie
82679066cc
Run a vacuum cleaner over the diffs between x11 and glx init.
...
X11 and GLX init are nowhere near as scary as I thought they were, once
they've been tidied up.
2012-02-18 21:33:54 +09:00
Bill Currie
eff8ebd9ba
Fix a snafu.
...
In all that, I forgot to test non-asm builds.
2012-02-18 14:54:20 +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
ef37ed39a9
Clean up global symbols for the glsl renderer.
...
Where possible, symbols have been made static, prefixed with glsl_/GLSL_ or
moved into the code shared by all renderers. This will make doing plugins
easier but done now for link testing. The moving was done via the gl
commit.
2012-02-18 11:48:52 +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
057da55385
Fix the incorrect linkage of libQFrenderer*
...
They're now currently not installed, but they were still building as shared
libs, and thus the installed bins were broken.
2012-02-18 11:46:46 +09:00
Bill Currie
78789a6833
Add support for blender's environment maps.
...
QF will now load a single image with (${skyname}_map.*) using blender's
layout. That is, 3x2 with the top row being back, right, front and the
bottom row being bottom, top, left.
2012-02-16 20:47:38 +09:00
Bill Currie
bfdb2b20d5
Clearify skybox layout.
...
Turns out quake skynames have left and right backwards.
2012-02-16 20:42:49 +09:00
Bill Currie
ce6ab908a5
Don't include the specific plugin headers in plugin.h.
...
This lets files that use plugins not depend on plugins they don't use.
2012-02-13 22:02:07 +09:00
Bill Currie
699ab70482
Fix audio again.
...
Bah, even though audio no longer needs models, it was still linking with
it :P
2012-02-13 16:44:30 +09:00
Bill Currie
2ab1367245
Update to reflect the new dependency status.
2012-02-13 16:25:22 +09:00
Bill Currie
3cb4cb59b5
Link QFgamecode directly into QFruamoko.
...
First step in the library "merge down".
QFgamecode is now a convenience library. The only things that mention it
directly now are ruamoko and qfcc.
2012-02-13 15:05:31 +09:00
Bill Currie
9a91aff93c
Move the ambient level check out of the sound renderer.
...
Instead, the client gets the current leaf and passes ambient_sound_level
from the leaf to S_Update.
2012-02-13 13:44:29 +09:00
Bill Currie
d8a37bc791
Correct the usage of gzFile.
...
Thanks to spirit for pointing that QF wasn't compiling with zlib 1.2.6
(archlinux, not yet in debian).
I was using gzFile as "gzFile *gzfile", but gzFile is already a pointer. In
older versions of zlib (including the 1.2.3 that's in debian), gzFile is
declared as a void *, and it seems that gcc is happy with assigning void **
to void *. However, in recent zlib, gzFile is now struct gzFile_s *, which
gcc is most definitely unhappy about assigning to struct gzFile **.
I just hope that either I had misread the type back when I wrote quakeio,
or that nobody is using such an ancient zlib.
2012-02-13 09:00:31 +09:00
Bill Currie
02d24189ef
Use QF_NEED for plugins.
...
At the moment, the selection of the default sound driver etc is broken.
2012-02-12 11:37:25 +09:00
Bill Currie
4707706f5d
Use QF_NEED for the renderer and model libraries.
...
This breaks RPM building, but I can fix that later.
2012-02-10 13:29:45 +09:00
Bill Currie
7a8f91edda
Move bi_gib.c from ruamoko to gib.
...
This makes gib depend on gamecode, but removes the dependency on gib from
ruamoko. Unfortunately, carne now needs to be linked against gamecode even
though it never uses it.
2012-02-09 10:00:54 +09:00
Bill Currie
da4fb6178c
Correct the client console plugin's dependencies.
2012-02-09 09:51:50 +09:00
Bill Currie
e34f0178b6
Build GLSL clients for SDL.
...
Just about to do a release, and I realized windows users wouldn't have any
way of checking out the new renderer. I'll add wglsl when I get a chance to
do some testing.
2012-02-08 22:05:58 +09:00
Bill Currie
fe3f0fa7ce
Remove snax' object module.
...
We don't use it for anything. If we ever want it again, we can just pull
it from history.
2012-02-08 15:21:57 +09:00
Bill Currie
b59ffd4cf1
Fix win32 (mingw) builds.
2012-02-07 20:18:23 +09:00
Bill Currie
0a277376ed
Fix static builds.
2012-02-07 20:17:32 +09:00
Bill Currie
8ecf74753c
Refer to local libs without a path.
...
I'm sure I've been here before... Anyway, using $(top_builddir)/... to
refer to a local lib confuses make and breaks parallel builds.
2012-02-07 18:45:55 +09:00
Bill Currie
9fbff2f4d5
Do an audit of the Makefile.am files.
...
o All instances of LIBADD/LDADD have a corresponding DEPENDENCIES
specificatiion.
o libraries now use a lib_ldflags macro to keep things consistent
o duplication of source/lib names has been minimized (particularly in
the libraries; more work needs to be done for the executables)
o automake spec blocks have been organized (again, more work needs to be
done for the executables)
2012-02-07 16:04:19 +09:00
Bill Currie
b5019c8e33
Nuke the engine dicrectory from gamecode.
...
Not the contents, of course :) Anyway, finally, that totally useless
directory is gone.
2012-02-06 23:44:52 +09:00
Bill Currie
a694eed968
Add Draw_Picf to allow smooth placement on low-res consoles.
2012-02-06 19:32:30 +09:00
Bill Currie
14c0e22494
Tweak Draw_MakePic to be a little more usable.
2012-02-06 15:50:32 +09:00
Bill Currie
c98ffa4eda
Create a message buffer API for Ruamoko
...
The api hides all the gory details of message buffer setup and usage
(particularly the differences between writing and reading). Most
importantly, the api provides a safe way to read and write binary data
(always little endian).
2012-02-06 15:50:32 +09:00
Bill Currie
042f310ed7
Add MSG_WriteBytes to match MSG_ReadBytes.
2012-02-06 15:04:01 +09:00
Bill Currie
42b87ee80c
Fix the memory leak in rua Draw_CachePic.
2012-02-06 12:49:57 +09:00
Bill Currie
be9f05ea14
Catch progs zone errors and give a stack dump.
2012-02-06 12:48:22 +09:00
Bill Currie
cef004fc15
Fix a type mismatch on android.
2012-02-05 14:28:23 +09:00
Bill Currie
4bd6bca6f2
Fix a prototype/definition mismatch.
2012-02-05 14:27:48 +09:00
Bill Currie
8c3db9a10d
Fix regex.c for android.
...
Android's headers declare bcmp etc in strings.h, but don't the functions
don't exist in the libs.
2012-02-05 14:26:23 +09:00
Bill Currie
201532ea7e
Fix missing library references when linking.
2012-02-05 14:25:22 +09:00
Bill Currie
3bd75cefd8
Autoconfiscate log2f.
...
Android doesn't supply log2f for us (though it does have all the other
float calls ruamoko wants).
2012-02-05 14:23:33 +09:00
Bill Currie
6f10f0cea6
Fix the x86 sw renderer (intel asm).
...
I'd forgotten about assembly code versions when I was doing my testing
when I redid skins. Thanks to Sander for pointing it out.
2012-02-02 17:32:27 +09:00
Sander van Dijk
49453b690f
glsl_main.c: initialize t[] to silence compiler warning.
2012-02-02 16:55:33 +09:00
Sander van Dijk
82adc67a67
glsl_bsp.c: __builtin_expect() to avoid compiler warnings.
2012-02-02 16:55:25 +09:00
Bill Currie
f800e79a38
Make the init process more dependency based.
...
Most subsystems that depend on other subsystems now call the init functions
themselves. This makes for much cleaner client initialization (more work
needs to be done for the server).
2012-02-01 21:52:47 +09:00
Bill Currie
b9bb7d95bb
Remove calls to Sbar_Changed from the libraries.
...
If this breaks things, we'll have to sort something out, but again, no libs
reaching into the exe.
2012-02-01 20:06:14 +09:00
Bill Currie
5efc78b920
Move the call to R_Particles_Init_Cvars into R_Init_Cvars.
2012-02-01 20:05:11 +09:00
Bill Currie
4b390909f2
Move r_gravity to it's rightful home.
...
r_part.c makes much more sense.
2012-02-01 20:03:16 +09:00
Bill Currie
fa0ff96533
Clean up the mess with host_basepal and vid_colormap.
...
Libs should not be reaching into the exe :P
2012-02-01 19:52:13 +09:00
Bill Currie
d76e4608ab
Rewrite the ruamoko draw api internals.
...
Update for using resources, and add wrappers for Draw_MakePic and
Draw_DestroyPic/Draw_UncachePic.
2012-02-01 18:19:54 +09:00
Bill Currie
bc2aca53c3
Add functions to create/destroy qpics.
...
The creation uses raw 8-bit data (and the system palette). Destroying a
qpic loaded via other means will probably produce nasal demons.
2012-02-01 17:46:15 +09:00
Bill Currie
2b6adaa2d4
Do some more const correctness.
2012-02-01 17:44:55 +09:00
Bill Currie
7e406c20e5
Allow uncaching of qpics.
...
qpics loaded via Draw_CachePic can now be uncached via Draw_UncachePic.
2012-02-01 16:55:35 +09:00
Bill Currie
a849cf7698
Fix a stale include problem.
...
Thanks to iku for pointing it out.
2012-02-01 14:13:00 +09:00
Bill Currie
a131a7ab9d
Fix the gl test... again :/
...
Actually, it probably doesn't make any difference, but making it look
right is still important.
2012-02-01 13:01:24 +09:00
Bill Currie
706f09b247
Put the transparent surfaces on the water chain.
...
I'd actually done this the first time, but then got confused and forgot the
waterchain works with multiple textures. This is actually the right place
as all transparent surfaces need to be sorted irrespective to their
textures. Really, waterchain needs to be renamed.
2012-01-31 18:08:06 +09:00
Bill Currie
b286a35281
Sort transparent surfaces back to front.
...
This allows overlapping transparent surfaces to look like they are
overlapping each other rather than only the nearest one showing.
2012-01-31 16:17:09 +09:00
Bill Currie
1052bd2624
Fix the segfault on leaving e1m2.
...
Problem and solution found by Deek, reason by me.
2012-01-31 09:51:44 +09:00
Bill Currie
c3d2365bd8
Fix a missed default_color init.
...
Wish I'd caught this earlier :/
2012-01-30 21:02:13 +09:00
Bill Currie
c01255a387
Fix a case&paste error.
...
Doesn't fix the color problem for water surfaces on my eeepc, though :(
2012-01-30 20:31:58 +09:00
Bill Currie
8f0ce733ff
Sanitize color handling a little.
2012-01-30 20:31:37 +09:00
Bill Currie
4b948de225
Ensure the lightmap gets rebuilt when the dlights disappear.
...
I didn't realize what that line was for when I copied the code from GL :/
2012-01-30 18:41:27 +09:00
Bill Currie
e4f63fba6c
Fix some integer shift overflows.
...
Thanks to Ozkan Sezer for pointing them out.
2012-01-30 09:13:06 +09:00
Bill Currie
f8dfee6de7
Merge branch 'master' into glsl
2012-01-29 22:36:35 +09:00
Bill Currie
497718cc40
Plug the memory/texture/vbo leaks.
...
QF still leaks about 3MB/run on demo1, but even 100 runs didn't show any
render issues.
2012-01-29 22:32:35 +09:00
Bill Currie
b03e937b67
Implement brush entity alpha.
...
http://www.celephais.net/board/view_thread.php?id=60157& has a good map for
testing (you see an example straight away if you look up). (+set max_edicts
2048)
2012-01-29 16:56:50 +09:00
Bill Currie
8f869c001b
Fix the missing world on map reload.
...
If the map got reloaded but the current leaf didn't change the world (and
most entities) didn't get drawn. Forcing a vis update by first setting
r_viewleaf to null and marking surfaces does the trick :)
2012-01-29 16:09:35 +09:00
Bill Currie
462a9047c6
Fix the missing fog on particles and sprites.
...
Bah, definitely need a metter method of parameter interrogation.
2012-01-29 10:35:23 +09:00
Bill Currie
731236ee07
Implement global fog.
...
Sprites and particles don't seem to be getting fogged correctly, but bsp
and alias models are working.
2012-01-29 10:27:28 +09:00
Bill Currie
4734c5b64a
Implement water alpha.
2012-01-28 21:20:34 +09:00
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
315db554b5
Add some instrumentation to check render speeds.
2012-01-28 14:10:47 +09:00
Bill Currie
2595251162
Do not update every visible lightmap every frame.
...
This takes nq from ~25fps to 65-72 fps on Unforgiven's start map.
2012-01-27 21:48:25 +09:00
Bill Currie
d18aa2fe3e
Do not try to unregister ports with a lost jackd.
...
libjack seems to get stuck when unregistering ports with a broken
connection.
2012-01-27 19:58:03 +09:00
Bill Currie
8ac9ff0134
Link libQFmodels* agains libQFimage.
...
This is the correct fix for server linking wrt LoadPCX. Sort of. Really, it
would be better to disconnect the dependencies.
2012-01-27 19:55:30 +09:00
Bill Currie
03c7441265
Fix server linking wrt skin stuff.
2012-01-27 17:37:52 +09:00
Bill Currie
ca2c861671
Fix team colors in GL NQ.
2012-01-26 13:53:52 +09:00
Bill Currie
5dcaeae97b
Fix custom skins in GL for QW.
2012-01-26 12:50:37 +09:00
Bill Currie
df87cffe15
Start working on the new GL skin code.
2012-01-24 23:06:07 +09:00
Bill Currie
695b38e5e5
Fix a segfault when merging rects.
2012-01-24 19:56:59 +09:00
Bill Currie
d8d21b00f4
Fix some issues found found by valgrind.
...
Buffer underflow and though strcpy has always been safe there, change to
memmove. Had the added benefit of helping me create more test cases for
better coverage.
2012-01-24 19:54:21 +09:00
Bill Currie
6104db50e1
Fix a gl matrix stack overflow.
...
I'd missed a couple of places for glPopMatrix (worse, one was push!).
2012-01-24 12:10:37 +09:00
Bill Currie
1ef24e0404
Fix a gl matrix stack overflow.
...
I'd missed a couple of places for glPopMatrix (worse, one was push!).
2012-01-24 12:08:12 +09:00
Bill Currie
6df8867d69
Implement custom skins for glsl.
2012-01-24 10:27:05 +09:00
Bill Currie
d6683711f4
Clean up some redundant defines.
2012-01-24 09:37:46 +09:00
Bill Currie
19dc579a5a
Fix custom player skins for the sw renderers.
2012-01-23 23:38:32 +09:00
Bill Currie
3dbb5724db
Rename Skin_SetColormap_ to Skin_SetupSkin.
2012-01-23 21:40:12 +09:00
Bill Currie
08990ebb5a
Make top/bottom color work for GLSL.
...
Works quite nicely (love those colormaps).
2012-01-23 19:24:12 +09:00
Bill Currie
9a4b065eaf
Fix top/bottom colors for the SW renderers.
2012-01-23 17:33:19 +09:00
Bill Currie
e3f76de898
Avoid a division by zero.
...
Doing a cache profile on an unused cache wasn't nice.
2012-01-23 16:46:52 +09:00
Bill Currie
7bfddd7ffe
Gut most of the old skin code.
...
Custom skins are smashed on most targets. Player colors don't work, etc.
However, this will let me do a much cleaner implementation.
2012-01-23 16:16:30 +09:00