Commit graph

10050 commits

Author SHA1 Message Date
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
540bccbc27 Load all the alias vertex data as bytes.
I had forgotten I wanted to do it this way.
2012-01-02 13:41:12 +09:00
Bill Currie
a57835866a Build the vertex normals texture. 2012-01-02 13:40:48 +09:00
Bill Currie
6b4a10819a Add an RGB texture loader. 2012-01-02 13:15:19 +09:00
Bill Currie
7e5b3304fc Create the colormap texture. 2012-01-02 11:19:23 +09:00
Bill Currie
fd67f3500b Load the alias model shaders. 2012-01-02 11:18:34 +09:00
Bill Currie
df3d9fe4df Correct the fullbright start color extraction.
I don't know what despair and I were thinking, but we obviously didn't
understand the colormap code at the time.
2012-01-02 10:53:57 +09:00
Bill Currie
7be08534be Clearify the program dump info a little.
Calling programs shaders was a little confusing when I use shader to refer
to the sub-programs (vertex and fragment shaders). Also, print the program
number as well.
2012-01-02 10:22:03 +09:00
Bill Currie
2ad5aa7aed Unbind the array and element array buffers when done.
Not doing so wreaked havoc on my 2d rendering (what's he doing here, and
why's he messing with my redering? ;)
2012-01-02 10:08:56 +09:00
Bill Currie
d1419c30db Make a start on alias model rendering.
The vertex and fragment shaders are written, and R_InitAlias is stubbed,
but that's it so far.
2012-01-01 23:58:12 +09:00
Bill Currie
f3884c659c Finish alias skin loading and load vertex data into GL. 2012-01-01 23:55:27 +09:00
Bill Currie
f18cd65526 Implement the "cache" in Draw_CachePic. 2011-12-31 20:36:24 +09:00
Bill Currie
3eae8426e6 Implement in-game screenshots. 2011-12-31 17:24:20 +09:00
Bill Currie
d8dbfa9c24 Create WritePNGqfs so screenshots can be written as png. 2011-12-31 17:23:32 +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
091e16f9d2 Bring in GL's R_RecursiveWorldNode as R_VisiteWorldNodes.
No surface queuing is done, but entities get queued.
2011-12-31 14:33:20 +09:00
Bill Currie
ea2ae1436c Fix some bugs in the new matrix functions/macros. 2011-12-31 13:20:31 +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
16f84cd496 Hopefully get the 3d view and projection transforms setup. 2011-12-30 21:10:24 +09:00
Bill Currie
20d93466c7 Frag some magic numbers.
More annoying than hipnotic's gremlins.
2011-12-30 21:07:35 +09:00
Bill Currie
35bf957d08 Add a 4x4 matrix type and some functions for it. 2011-12-30 20:11:53 +09:00
Bill Currie
edb05fdfce Rename Vector3Scale and QuatCompScale.
They are now VectorCompMult and QuatCompMult.
2011-12-30 20:04:55 +09:00
Bill Currie
bcdcd7b36d Implement sprint glsl loading.
That was... easy.
2011-12-30 09:36:57 +09:00
Bill Currie
a87a60a6fd Flush the text buffer before drawing conback or menus.
Ok, now really done until I notice something else (I forgot this one
momentarily).
2011-12-29 18:23:09 +09:00
Bill Currie
047b7bcc32 Implement Draw_TileClear.
With this, 2d seems to be finished. YAY.
2011-12-29 18:15:15 +09:00
Bill Currie
a1035aafe9 Implement Draw_TextBox. 2011-12-29 17:51:31 +09:00
Bill Currie
0e521a7779 Correctly detect going past the end of the pcx data.
palette is just that, the palette, and often won't point to the end of the
pcx data. Use the right end :).
2011-12-29 11:27:54 +09:00
Bill Currie
2b44a25c6b Flush console text after each screen function.
This on its own doesn't fix menus being overwritten with console text, but
it's an important step.
2011-12-29 11:26:14 +09:00
Bill Currie
9fec4d5be0 Implement Draw_Fill.
Almost there with 2d.
2011-12-29 11:25:27 +09:00
Bill Currie
9d0ed6b885 Fix the missing text.
Silly case and paste error cleared out my text vertex array prematurely.
2011-12-29 08:47:32 +09:00
Bill Currie
bece72e746 Use a quick hack to get colored crosshairs working. 2011-12-28 21:45:20 +09:00
Bill Currie
e69a583f1b Work around a bug in mesa.
Since I'm not specifying the api when creating my context, mesa is giving
me GL2. This is fair enough, but in GL2, vertex attribute 0 is the vertex
position. This too, is fair enough. The problem is, mesa is assigning 0 to
my vcolor attribute and thus I can't set it. The work around is simply to
swap the declaration order of vcolor and vertex (this really shouldn't work
eiter, I suspect).
2011-12-28 20:43:56 +09:00
Bill Currie
6a44978a0f Fix reading of GL_CURRENT_VERTEX_ATTRIB.
Turns out it returns a vec4. oops.
2011-12-28 20:41:26 +09:00
Bill Currie
8ee13ef8c2 Do some clipping in the draw routines.
After fixing Maraakate's crash, I thought it would be a good idea to put
the fixes into QF, too.
2011-12-28 19:20:18 +09:00
Bill Currie
4e7af5c3e0 Add a function to dump the info for all attribute arrays. 2011-12-28 14:27:59 +09:00
Bill Currie
411ab8f359 Be noisy when resolving uniforms and attributes. 2011-12-28 12:58:26 +09:00
Bill Currie
be9530afb6 Dump a lot of info about shader programs.
New developer bit: SYS_GLSL (2048).
2011-12-28 12:40:28 +09:00
Bill Currie
b657905c83 Bring in Despair's gl error checking from the gl renderer. 2011-12-28 09:05:36 +09:00
Bill Currie
151cc05882 Add support for vertex colors.
As I need to control the alpha, they're sent as rgba rather than quake
palette indices. Text works well. All other 2d stuff does not :(.
2011-12-28 09:04:26 +09:00
Bill Currie
b96ca6f0e0 Add QuatCompScale and fix a bug in QuatScale. 2011-12-28 08:59:52 +09:00
Bill Currie
b943b6d6e8 Implement crosshairs, mostly.
Colored crosshairs aren't supported yet (next).
2011-12-27 17:59:58 +09:00
Bill Currie
db8573b774 Make the cross-hair data sharable between renderers. 2011-12-26 21:43:15 +09:00
Bill Currie
705d07fa39 Implement most of the 2d rendering functions.
textbox, crosshair, tileclear, fill and fadescreen are the remaining
functions.

There's a problem with 2d icons being drawn over the text (instead of
under), but I'll leave that for later.
2011-12-26 20:33:40 +09:00
Bill Currie
e2a8de33cc First real texture support function for glsl. 2011-12-26 18:34:51 +09:00
Bill Currie
42034acc03 Organize the text program data.
Also, rename the charmap uniform in quake2d.frag as it's more generic than
that.
2011-12-26 18:00:55 +09:00
Bill Currie
2ccfbb0c1c Move the shader program code into vid_common_glsl.
Much more useful in the long run.
2011-12-26 17:17:29 +09:00
Bill Currie
5bed38dcd9 Rename quaketxt.frag to quake2d.frag.
It's actually fairly generic for 2d rendering (no lighting, palette lookup)
2011-12-26 17:11:31 +09:00
Bill Currie
f78db6c570 Clean up the generated shader files. 2011-12-26 16:39:02 +09:00
Bill Currie
279ea340e5 Add the GLSL files to the headers list. 2011-12-26 16:33:15 +09:00
Bill Currie
067d3b3c2c Revert all the commits adding stuff to QF/GL.
With the new QF/GLSL directory, I don't need (or want) them any more.
2011-12-26 16:16:39 +09:00