Commit graph

3364 commits

Author SHA1 Message Date
Bill Currie
525dbcc13e Ensure code paths stay within the one renderer.
The gl renderer calling sw functions is bad news. Still all black, but I
think that's because palette setting is disabled.
2012-04-11 22:45:23 +09:00
Bill Currie
898bfa5e5f Split up the vid plugin init sequence.
This gets gl so it no longer segs. However, the screen remains black
(expect for cshifts).
2012-04-11 16:44:38 +09:00
Bill Currie
6ff658afe4 Use r_funcs in the client console plugin.
Getting the sw renderer's functions when running gl was nasty.
2012-04-11 16:38:15 +09:00
Bill Currie
d62772e9cc Separate render module loading from initialization.
This allows the vid module to load the render module and access render
specific functions before the renderer initializes, which happens to need
an initialized vid module...
2012-04-11 14:58:56 +09:00
Bill Currie
799a0ae018 Fix a bogus cshift calculation in sw32.
Found via valgrind and gammatable having become malloced instead of static.
2012-04-11 14:58:55 +09:00
Bill Currie
07ab5600c9 Recache viddef in *D_InitCaches.
sw32 now at least doesn't seg, but doesn't draw any 3d. sw renderer seems
to work.
2012-04-11 14:58:55 +09:00
Bill Currie
42868d308e Initialize the skins and particles subsystems. 2012-04-11 14:58:55 +09:00
Bill Currie
6ea4e6617a Connect up viddef properly.
Or mostly so, anyway. sw32 is actually putting stuff on the screen.
2012-04-11 14:58:55 +09:00
Bill Currie
4d9c3408a1 Start putting the pieces back together.
The renderer now gets initialized and things sort of work (qw-client will
idle, though nothing is displayed). However, as the viddef stuff is broken,
it segs on trying to run the overkill demo.
2012-04-11 14:58:55 +09:00
Bill Currie
1d864521e9 Fix the sprite model loader for plugins. 2012-04-11 14:58:55 +09:00
Bill Currie
cbdbfdd12f Fix the alias model loader for plugins. 2012-04-11 14:58:55 +09:00
Bill Currie
52e518bb1b Fix skin functions for plugins. 2012-04-11 14:58:55 +09:00
Bill Currie
f5d6959f4b Copy out the model functions pointer. 2012-04-11 14:58:55 +09:00
Bill Currie
6f7b4276e9 Move VID_InitBuffers back from the renderer to targets.
First, it was nearly identical between sw and sw32 (one paranoia line in
sw32), and second, it's common enough.
2012-04-11 14:58:55 +09:00
Bill Currie
a093e6af97 Move palette setting into viddef_t. 2012-04-11 14:58:55 +09:00
Bill Currie
e08d5ccb41 Move the gl util functions into viddef_t.
Static plugins almost link now, just two more symbols to sort out.
2012-04-11 14:58:55 +09:00
Bill Currie
7ed33f6345 Hide D_FlushCaches.
There'd been a way to do so all along :/ There might be some issues with
this, but those will be easy to fix :)
2012-04-11 14:58:55 +09:00
Bill Currie
7865f6afe1 Rename sw's R_Init to sw_R_Init.
For now, the only symbol I'll bother messing with in the sw renderer.
2012-04-11 14:58:54 +09:00
Bill Currie
1dd1aec48f Make libgl_handle static.
This will make life interesting for getting the final stages working, but
it helps for now.
2012-04-11 14:58:54 +09:00
Bill Currie
772af29cb3 Move the gl cvars into gl.
That gets rid of the gl_overbrite_f clash. They were put in r_cvar for
saving to the config file, but that was before seta existed.
2012-04-11 14:58:54 +09:00
Bill Currie
65bd29353c Make a start on putting the pieces together.
Still many undefined and multiply defined symbols, but there seems to be a
light in this darkness. I just hope it's not an oncoming train :)
2012-04-11 14:58:54 +09:00
Bill Currie
d445b4ef88 Rename the glsl qfgl functions to qfegl.
Keep them separate from the gl renderer :)
2012-04-11 14:58:54 +09:00
Bill Currie
36504547a8 Rename the public symbols for gl, glsl and sw32.
Evil hack, but it does the job.
2012-04-11 14:58:54 +09:00
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