Bill Currie
561484842c
Fix some snafus in PL_ParseData
...
Found them by inspection while writing a python version of qfplist.
2012-04-17 21:26:33 +09:00
Bill Currie
878764f79d
Fix some segfaults in nq-server.
2012-04-15 15:11:16 +09:00
Bill Currie
6f026e9116
Fix some segfaults in server model loading.
...
I'd forgotten to test the servers when I did the vid_plugin changes.
2012-04-15 14:12:00 +09:00
Bill Currie
bbd277cb72
Fix building libQFrenderer as a helper library.
2012-04-12 17:16:40 +09:00
Bill Currie
61ae793367
Fix two broken symbols for sw32.
...
Now all 4 render plugins load as standard plugins (though there's still a
problem with libQFrenderer.so)
2012-04-12 17:12:24 +09:00
Bill Currie
633f70b2f1
Remove a functionally dead symbol.
...
The only purpose clearnotify seemed to be serving was to stop the console
plugin from loading :P
2012-04-12 17:05:42 +09:00
Bill Currie
7fc99f9c60
Fix gl and glsl support in sdl.
2012-04-12 16:47:37 +09:00
Bill Currie
ab486dcdf6
Unregister the quit command before registering it.
...
This fixes the quit menu not working.
2012-04-12 15:07:28 +09:00
Bill Currie
e784754a11
Disable the gl_triplebuffer check in glsl.
...
It doesn't seem to have any useful effect in QF (even before the plugin
project) other than setting the number of frames to update. I'm not sure if
it's a useless variable or one where the user is supposed to match it to
the system configuration. Anyway, with this, the glsl plugin now works.
2012-04-12 14:40:02 +09:00
Bill Currie
8401704c4e
Connect up palette setting for gl and glsl.
...
The GL plugin now seems to work. GLSL still segs :(
2012-04-12 13:57:05 +09:00
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
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