Commit graph

370 commits

Author SHA1 Message Date
Bill Currie
ec42bde527 Make hash tables more const correct.
And clean up the resulting mess :/
2012-10-27 11:44:31 +09:00
Bill Currie
eccc1b5b51 Put the over-size range back to its original value.
This fixes the horribly different results between optimized and unoptimized
qfbsp (there is still a difference of 1 brushface). Unfortunately, it also
severely limits the maximum size of a map.
2012-09-18 09:25:10 +09:00
Bill Currie
45c48a6215 Fix bsp2 loading.
Just some problems with the handling of extended bsp29 files. I'm not
quite happy with the code, but it will do for now.
2012-09-08 09:41:00 +09:00
Bill Currie
a37c5465e1 First step for BSP2 support. DOES NOT WORK!
All of the nastiness is hidden in bspfile.c (including the old bsp29
specific data types). However, the conversions between bsp29 and bsp2 are
implemented but not yet hooked up properly. This commit just gets the data
structures in place and the obvious changes necessary to the rest of the
engine to get it to compile, plus a few obvious "make it work" changes.
2012-09-07 16:09:24 +09:00
Bill Currie
69fb78278f Remove the redundant endian conversions from bsp loading.
It's obvious that it's been a very long time since anybody's tried playing
QF on a big-endian machine: double converting data isn't good :/
2012-09-07 15:45:59 +09:00
Bill Currie
6ba6959205 Allow any NxN or 2NxN sky texture for glsl.
Maps that specify a skybox often use a fake sky texture, sometimes 16x16.
Having a hardcoded requiredment of 256x128 is a tad inappropriate.
2012-09-05 14:02:44 +09:00
Bill Currie
31dead3dcd Fix 16-bit mdl loading for glsl.
The extra precision verts are offset by numverts, not numposes :P
2012-08-07 17:06:01 +09:00
Bill Currie
c66e437ebe Enable shadows for grenades.
Now that shadevector is correctly transformed, grenade shadows aren't quite
so silly.
2012-07-17 17:12:34 +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
23a38738fc Massive whitespace cleanup.
Lots of trailing whitespace and otherwise blank lines.
2012-05-22 08:23:22 +09:00
Bill Currie
3087e685cc Convert texcoords to fixed point.
Bah, another weekend wasted on an oversight :( However, Mr. Fixit looks
quite alright in the quake palette.
2012-05-20 10:02:44 +09:00
Bill Currie
f0285e5a08 Correct the texcoord conversion.
1.0 is to represent the last pixel, not one past it.
2012-05-20 08:51:15 +09:00
Bill Currie
c1eb3e77c3 Process each vertex texcoord only once.
Double converting texcoords results in 0,0 for all affected texcoords. Mr
Fixit was looking rather ill. Now he looks weird (something wrong in the
renderer?).
2012-05-19 09:15:26 +09:00
Bill Currie
d41bf32d91 Hopefully fix color conversion.
Hard to tell because the triangle rendering is still messed up. However,
storing negative values in bytes doesn't work :)
2012-05-19 09:14:07 +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
da313cfae7 Load iqm models in the sw renderers.
sw32 loses 32 bit textures :/
loading is /slow/ (converting rgb(a) to 8bit palette... ouch.
2012-05-17 21:17:48 +09:00
Bill Currie
c3801d46e5 Render iqm models in GL.
There are still many issues to sort out, but the basics are working.

Problems:
	rendered fullbright (no lighting done)
	normals are ignored
	extra textures (glow etc) not used/loaded

4 models on the screen don't seem to be a problem.
2012-05-17 15:58:29 +09:00
Bill Currie
c0df07b607 Enable loading of iqm models in gl.
They don't render yet, but the engine doesn't segfault.
The vertex blend indices are rewritten with blend palette indices.
2012-05-17 15:55:38 +09:00
Bill Currie
23284536b5 Move IQM freeing into common code. 2012-05-16 18:09:44 +09:00
Bill Currie
111377f1be Use buffer objects for iqm vertex arrays and elements. 2012-05-15 21:08:47 +09:00
Bill Currie
5740dba467 Mark iqm models as need-load when clearing.
This fixes the segfault on map change.
2012-05-15 21:08:47 +09:00
Bill Currie
1375c3cf03 Finally, load textures for iqm :) 2012-05-15 21:08:47 +09:00
Bill Currie
202ab04572 Ensure the rotation quats are normalized.
Doesn't make any noticeable difference, but it doesn't hurt.
2012-05-15 21:08:46 +09:00
Bill Currie
31d89782ef Use the correct index variable when byteswapping the arrays.
Not the cause of the broken animations :(
2012-05-15 21:08:46 +09:00
Bill Currie
7cda91a879 Temporarily disable dual quaternions.
The animation data isn't getting loaded or used properly (not sure yet).
This helps ensure it's not something I've done wrong with dual quats.
2012-05-15 21:08:46 +09:00
Bill Currie
551dfc47fb Build the iqm vertex arrays in the correct order.
They need to be built in ascending type order (makes life easier in the
renderer).
2012-05-15 21:08:45 +09:00
Bill Currie
2e98c31175 Check the corrent bits when reading scale frame data.
Fixes the invalid reads when loading an iqm (at least for mrfixit).
2012-05-15 21:08:45 +09:00
Bill Currie
a880f33152 Set the model type for iqm.
Forgot this rather important step :P
2012-05-15 21:08:45 +09:00
Bill Currie
078cb10caf Add a stride field to iqm_t.
Since iqm vertex arrays are variable, and I don't want to calculate the
stride every time I render a model, cached the value used when building the
arrays.
2012-05-15 21:08:45 +09:00
Bill Currie
6ab3bd45e5 Implement IQM animation loading.
Bone poses are converted to dual quaternions + shear + scale for nice
skinning. Will likely be slow for software skinning, but too bad.
2012-05-15 21:08:45 +09:00
Bill Currie
bf38e6073e Implement iqm joint loading. 2012-05-15 21:08:44 +09:00
Bill Currie
52ab4f64f9 Add code for loading vertex colors.
And correct an oopsie in bledweights.
2012-05-15 21:08:44 +09:00
Bill Currie
1be9384f10 Load the iqm vertex and triangle data.
Still have the meshes, joints and animations to go.
2012-05-15 21:08:43 +09:00
Bill Currie
26a878da48 Stub out the iqm loader. 2012-05-15 21:08:43 +09:00
Bill Currie
95cef4a73e Correct a spelling error. 2012-04-24 14:12:54 +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
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
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
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
e991c1fed3 Make a bit of progress cleaning up vid for plugins. 2012-04-11 14:58:54 +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
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
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
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