Sam Hocevar
9262efbac3
core: use operator<< instead of operator+= to append stuff to arrays,
it's a bit less confusing.
12 years ago
Sam Hocevar
9960f73351
gpu: normalize 8-bit integer data in 0..1 by default.
12 years ago
Sam Hocevar
a327302484
gpu: fix Direct3D handling of float3x3 uniforms; they need padding.
12 years ago
Sam Hocevar
9dad69c630
math: allow to easily create a 4x4 matrix from a 3x3 matrix, and so on.
12 years ago
Sam Hocevar
56d7f24a37
core: Append() was missing for arrays of single element structs.
12 years ago
Sam Hocevar
f1c0e3ba4e
gpu: add methods to send mat2 and mat3 matrices to the shader.
12 years ago
Sam Hocevar
be4935c19c
math: add code to build the normal matrix from a transformation matrix.
12 years ago
Sam Hocevar
eb51928415
math: add inversion code for 2×2 and 3×3 matrices, and transposition
code for all matrices.
12 years ago
Sam Hocevar
bc5bf62886
gpu: assume 8-bit unsigned vertex data is expected to be normalised on 0-1.
12 years ago
Sam Hocevar
b979030f95
core: fix a bug in the Array class where we would corrupt the data when
trying to realloc the array and insert a reference to a member of our own.
12 years ago
Sam Hocevar
8894958f0e
gpu: fix a stupid signed/unsigned inconsistency causing vertex declaration
creation failures.
12 years ago
Sam Hocevar
578368f452
gpu: abstraction class for index buffers; the cube tutorial no longer
needs to know about Direct3D headers etc.
12 years ago
Sam Hocevar
b6c330f3d8
gpu: remove old code in VertexBuffer that caused a memory leak.
12 years ago
Sam Hocevar
18cd98fe91
core: add a dynamic Array class.
12 years ago
Sam Hocevar
02e31f5c41
core: add a simple Array template class.
12 years ago
Sam Hocevar
fe9bab81c1
gpu: fix a great lot of Direct3D problems, spotted using PIX.
12 years ago
Sam Hocevar
8da2f504a8
debug: use std::abort() instead of a custom idiocy.
12 years ago
Sam Hocevar
4e4d5a8e06
build: fix GCC build; it doesn't like to have a local file called debug/debug.h.
12 years ago
Sam Hocevar
48c7070243
gpu: replace exit(0) in D3D error checks with lol::Abort().
12 years ago
Sam Hocevar
0d49891632
gpu: fix a nasty bug in the D3D9 vertex declaration code that caused
wrong offset computations.
12 years ago
Sam Hocevar
f7770f7387
gpu: add an Unbind() method for textures for clean up. Unfortunately
the Scene code still breaks Direct3D rendering.
12 years ago
Sam Hocevar
b34088e5bd
math: add mat2 and mat3 types; they'll be useful.
12 years ago
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.
12 years ago
Sam Hocevar
560d5cc6be
gpu: fix the core scene renderer.
12 years ago
Sam Hocevar
a54bb70d64
build: minor Windows compilation fixes.
12 years ago
Sam Hocevar
6169c874e4
gpu: port the vertex buffer abstraction layer to OpenGL.
12 years ago
Sam Hocevar
f7e202a7c8
gpu: implement vertex buffer streams for Direct3D. OpenGL is missing for now.
12 years ago
Sam Hocevar
2601c970a2
gpu: refactor the vertex declaration code to allow several vertex streams.
12 years ago
Sam Hocevar
3ab2f621f8
gpu: fix compilation errors and warnings in the vertex declaration code.
12 years ago
Sam Hocevar
5218c59ab7
gpu: start working on a template-based vertex buffer class.
12 years ago
Sam Hocevar
5014b90b3e
build: compilation fixes for errors introduced in the recent Direct3D
and Android changes.
12 years ago
Sam Hocevar
57f393d0d3
gpu: port the texture and scene handling code to Direct3D. Not functional.
12 years ago
Sam Hocevar
15c4e8016a
android: slightly update Android project for newer SDK versions.
12 years ago
Sam Hocevar
64da211c62
math: do not use #pragma diagnostic push for GCC prior to 4.6.
12 years ago
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.
12 years ago
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.
12 years ago
Sam Hocevar
88f10fe54b
build: allow to build the Direct3D 9 driver with the mingw compiler.
12 years ago
Sam Hocevar
5d2ddbdb6f
math: use size_t instead of int for vector subscript to avoid torrents
of compiler warnings in 64-bit mode when sizeof(foo) is used as the
argument for the array subscript operator. No need to care about the
non-signedness since only positive indices work.
12 years ago
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.
12 years ago
Sam Hocevar
d855e72198
win32: the GDI+ byte swapping was wrong; fix that.
12 years ago
Sam Hocevar
d539f3b80c
win32: shuffle bytes in GDI images to match what OpenGL supports.
12 years ago
Sam Hocevar
a3f410d697
video: allow to set the default clear color.
12 years ago
Sam Hocevar
f35f4284b0
core: allow each blitted tile to be stretched differently.
12 years ago
Sam Hocevar
bd69c76f90
xbox: fix a few problems in the shader handling code; the first tutorial now
works on the Xbox.
12 years ago
Sam Hocevar
2831476774
build: major refactoring of the Win32 and Xbox project files; we now
link properly on the Xbox.
12 years ago
Sam Hocevar
6868b1eb32
math: remove old non-working vector code for the float to half conversion.
12 years ago
Sam Hocevar
fac42dd7a2
xbox: create the Xbox application class and add a project file for MrPigeon.
12 years ago
Sam Hocevar
4624e6394a
math: fix VS2010 compiler warnings in the float/half conversion tables, and
replace the well known DeBruijn sequence with a custom magic value to spare
one binary operation.
12 years ago
Sam Hocevar
edfa3dfc4b
core: allow to stretch 2D sprits in both X and Y directions.
12 years ago
Sam Hocevar
ad64711c84
sdl: convert any opened image to 8 bit per channel because we don't have
any mechanism yet for uploading exotic formats to the GPU.
12 years ago