Sam Hocevar
e7fd8c57e2
test: a better GLSL parser in the LolFx test parser.
vor 12 Jahren
Sam Hocevar
a71562bd83
core: rename f64vec4 to dvec4 etc. for consistency with GLSL.
vor 12 Jahren
Sam Hocevar
e70887f511
test: more grammar improvements.
vor 12 Jahren
Sam Hocevar
39493bebaa
test: add most of the GLSL grammar.
vor 12 Jahren
Sam Hocevar
8a547a254f
test: add more GLSL and HLSL keywords to our grammar.
vor 12 Jahren
Sam Hocevar
8ac8e13b75
test: some grammar tweaks.
vor 12 Jahren
Sam Hocevar
1246eb233f
test: start working on a lexer/parser for LolFx using flex and bison.
vor 12 Jahren
Sam Hocevar
fc618350f6
gpu: start working on the LolFx format.
vor 12 Jahren
Sam Hocevar
6fe12e7811
build: ensure .lolfx.cpp files get cleaned up.
vor 12 Jahren
Sam Hocevar
a4fb64d6c8
test: add a few unit tests for datatype sanity.
vor 12 Jahren
Sam Hocevar
ee7dd6a699
misc: move more shaders to .lolfx files.
vor 12 Jahren
Sam Hocevar
a606290ed2
gpu: allow to load a .lolfx file instead of all those shaders.
vor 12 Jahren
Sam Hocevar
4770daf4ac
math: replace len(vec) with length(vec) to match the GLSL naming.
vor 12 Jahren
Sam Hocevar
d0dbbde159
core: allow to concatenate arrays, and add unit tests for that.
vor 12 Jahren
Sam Hocevar
c276dbb1ff
math: allow to write 1.f / q to take a quaternion's inverse.
vor 12 Jahren
Sam Hocevar
82aaaae62c
core: the Array class now properly works with non-POD types.
vor 12 Jahren
Sam Hocevar
0315413285
core: rename Array::Append() to Array::Push() for brevity and arbitrary
personal taste.
vor 12 Jahren
Sam Hocevar
bbdd59032d
test: add matrix determinant and quaternion norm checks in the unit tests.
vor 12 Jahren
Sam Hocevar
ecda7cd569
math: replace mat3::rotate(quat) with an explicit constructor, and add
more unit tests for the quaternion to 3×3 matrix conversion.
vor 12 Jahren
Sam Hocevar
9e9c18d37e
test: add several unit tests for rotations with matrices and quaternions.
vor 12 Jahren
Sam Hocevar
90bfc79b22
core: tick methods now use seconds, like any sane system.
vor 12 Jahren
Sam Hocevar
fbaf32f1b9
core: make timers second-based rather than millisecond-based.
vor 12 Jahren
Sam Hocevar
8325d8889c
math: chage quaternion constructor to wxyz order because it matches the
mathematical writing, and add static constructors to create quaternions
from a rotation.
vor 12 Jahren
Sam Hocevar
b49ba4ef56
core: prefix some member variables with m_ for clarity.
vor 12 Jahren
Sam Hocevar
c9520d2aca
test: add unit tests for the Array class.
vor 12 Jahren
Sam Hocevar
50fefd0575
build: fix the PS3 cross-build; variable name expansion was causing trouble.
vor 12 Jahren
Sam Hocevar
9262efbac3
core: use operator<< instead of operator+= to append stuff to arrays,
it's a bit less confusing.
vor 12 Jahren
Sam Hocevar
eb51928415
math: add inversion code for 2×2 and 3×3 matrices, and transposition
code for all matrices.
vor 12 Jahren
Sam Hocevar
ad0e3f8b6d
tutorial: fix the inconsistent vertex counting.
vor 12 Jahren
Sam Hocevar
9b0958e6d1
tutorial: get rid of a hardcoded value.
vor 12 Jahren
Sam Hocevar
578368f452
gpu: abstraction class for index buffers; the cube tutorial no longer
needs to know about Direct3D headers etc.
vor 12 Jahren
Sam Hocevar
02e31f5c41
core: add a simple Array template class.
vor 12 Jahren
Sam Hocevar
24626c671f
tutorial: some refactoring in the tutorials.
vor 12 Jahren
Sam Hocevar
fe9bab81c1
gpu: fix a great lot of Direct3D problems, spotted using PIX.
vor 12 Jahren
Sam Hocevar
bfb0ad1e61
tutorial: use an interleaved vertex/color buffer.
vor 12 Jahren
Sam Hocevar
48c7070243
gpu: replace exit(0) in D3D error checks with lol::Abort().
vor 12 Jahren
Sam Hocevar
f7770f7387
gpu: add an Unbind() method for textures for clean up. Unfortunately
the Scene code still breaks Direct3D rendering.
vor 12 Jahren
Sam Hocevar
169a16b63e
gpu: move the platform-specific triangle drawing call to the VertexDeclaration
class, so that the calling code does not need to know what the backend is.
vor 12 Jahren
Sam Hocevar
a54bb70d64
build: minor Windows compilation fixes.
vor 12 Jahren
Sam Hocevar
6169c874e4
gpu: port the vertex buffer abstraction layer to OpenGL.
vor 12 Jahren
Sam Hocevar
f7e202a7c8
gpu: implement vertex buffer streams for Direct3D. OpenGL is missing for now.
vor 12 Jahren
Sam Hocevar
2601c970a2
gpu: refactor the vertex declaration code to allow several vertex streams.
vor 12 Jahren
Sam Hocevar
5218c59ab7
gpu: start working on a template-based vertex buffer class.
vor 12 Jahren
Sam Hocevar
8f0fc94027
tutorial: fix a compilation error and remove now useless vector type casts.
vor 12 Jahren
Sam Hocevar
701eb778a3
tutorial: fix the texture swizzling for the fractal viewer on Xbox 360.
vor 12 Jahren
Sam Hocevar
1485e5bf63
gpu: add support for integer uniforms and fix a few PS3 and Linux compilation
issues that were introduced with the Direct3D changes.
vor 12 Jahren
Sam Hocevar
458378003c
win32: the uniform handling code was completely broken; we now properly
retrieve the constant's register index in the description table. This also
allows us to use a single uniform handle for both the vertex and pixel
shaders in a PS3 Cg program.
vor 12 Jahren
Sam Hocevar
c2ff2ad9b7
win32: add Direct3D texture creation code in the fractal zoomer. Shader
support is still missing.
vor 12 Jahren
Sam Hocevar
090834b149
win32: start porting the graphical backend to DirectX 9. Apparently I
cannot used DirectX 10 because my video card only supports DX9, and there
is no compatibility layer. DX11 has feature levels for older hardware so
it would work with a DX9 card, but it's not available for WinXP.
vor 12 Jahren
Sam Hocevar
4fac6d468b
tutorial: fix unbalanced parenthesis breaking compilation.
vor 12 Jahren