Commit graph

63 commits

Author SHA1 Message Date
Tony Wasserka
3f9633e1cb softgpu: Fix a dumb mistake in the alpha blending code. How did this even compile before?! 2013-08-16 23:49:05 +02:00
Tony Wasserka
602e0e5358 softgpu: Add working CLUT support. 2013-08-16 23:49:04 +02:00
Tony Wasserka
26d80c16fe softgpu/TransformPipeline: Clean up VertexData::Lerp by using Math3D effectively. 2013-08-16 23:49:04 +02:00
Tony Wasserka
06290c53de softgpu: Fix an issue where texture coordinates were not initialized correctly for quads. 2013-08-16 23:49:04 +02:00
Tony Wasserka
f447957263 softgpu: Use the actual z coordinate of a triangle in through mode, too. 2013-08-16 23:49:04 +02:00
Tony Wasserka
b0d3848dc7 softgpu: Don't draw pixels which lie on the right side of a triangle. 2013-08-16 23:49:04 +02:00
Tony Wasserka
4231264008 softgpu: Clean up Rasterizer code by using Math3D's Vec4 functionality. 2013-08-16 23:49:03 +02:00
Tony Wasserka
ce953f1293 softgpu: Use Vec4 instead of our own Color4 class for color handling. 2013-08-16 23:49:03 +02:00
Tony Wasserka
f270d3bd98 softgpu: Simplify Rasterizer::DrawTriangle by passing individual vertices instead of a vertex array. 2013-08-16 23:49:03 +02:00
Tony Wasserka
8e7f35feee softgpu: Workaround a bug in through mode (in Rasterizer::DrawTriangle "den" would become really large because clippos.w wasn't initialized to a good value). 2013-08-16 23:49:03 +02:00
Tony Wasserka
247ea278c8 softgpu: Implement alpha blending. 2013-08-16 23:49:03 +02:00
Tony Wasserka
df40c76da9 softgpu: Do weird stuff with no profit. Check this=> TODO 2013-08-16 23:49:02 +02:00
Tony Wasserka
15d0d2e7a8 softgpu: Fix (?) texture coordinate reading for through mode. Needs review.
softgpu: Cleanup depth testing and only account for the clearmode depth write flag if clearmode is enabled.
2013-08-16 23:49:02 +02:00
Tony Wasserka
6930e29d66 softgpu: Implement color doubling and color addition. 2013-08-16 23:49:02 +02:00
Tony Wasserka
cc043ada57 softgpu: Implement texture functions. 2013-08-16 23:49:02 +02:00
Tony Wasserka
0e1e8fe331 softgpu: Clean up depth testing code. 2013-08-16 23:49:02 +02:00
Tony Wasserka
bd49480244 softgpu: Add initial support for triangle strips. No idea if they work. 2013-08-16 23:49:01 +02:00
Tony Wasserka
b33646cced softgpu: Disable texturing in clear mode. 2013-08-16 23:49:01 +02:00
Tony Wasserka
00b7fbd19e softgpu: Implement depth testing. 2013-08-16 23:49:01 +02:00
Tony Wasserka
72a71702a5 softgpu: Storing view coordinates in VertexData is not necessary anymore. 2013-08-16 23:49:01 +02:00
Tony Wasserka
3cdf2a789d softgpu: Write to the correct frame buffer in RAM. 2013-08-16 23:49:01 +02:00
Tony Wasserka
29921e4b44 softgpu: Disable alpha blending when copying framebuffer to screen. 2013-08-16 23:49:00 +02:00
Tony Wasserka
b1a4762251 softgpu: Fix specular lighting (or rather, the dumb code that always threw away the result). 2013-08-16 23:49:00 +02:00
Tony Wasserka
fd65b7c9b8 softgpu: New try at specular lighting, still doesn't seem to work... 2013-08-16 23:49:00 +02:00
Tony Wasserka
219b35317e softgpu: Transform normals correctly. 2013-08-16 23:49:00 +02:00
Tony Wasserka
c5544eb293 softgpu: Fix some lighting bugs. Ambient and diffuse light should be working perfectly now. 2013-08-16 23:48:59 +02:00
Tony Wasserka
41e2005ad0 softgpu: Fix various bugs.
Using model transformed normals for light calculations now.
Disabling textures if texture mapping isn't enabled now.
Forced target alpha to be written as 0xFF to workaround broken buffer management.
2013-08-16 23:48:59 +02:00
Tony Wasserka
6c1b4ba32b softgpu: Implement specular lighting. 2013-08-16 23:48:59 +02:00
Tony Wasserka
704a416baa softgpu: Implement powered diffuse lighting. 2013-08-16 23:48:59 +02:00
Tony Wasserka
0bf4956dfc softgpu: Implement per-light ambient lighting. 2013-08-16 23:48:59 +02:00
Tony Wasserka
48d75dafcb softgpu: Implement attenuation and spot factors. 2013-08-16 23:48:58 +02:00
Tony Wasserka
b42b30e795 softgpu: Store color values as integers instead of as floating points. 2013-08-16 23:48:58 +02:00
Tony Wasserka
7fdce30199 softgpu: Implement diffuse lighting. 2013-08-16 23:48:58 +02:00
Tony Wasserka
288de895db softgpu: Support indexed rendering. 2013-08-16 23:48:58 +02:00
Tony Wasserka
bfd9266b51 softgpu: Add support for ambient lighting. 2013-08-16 23:48:58 +02:00
Tony Wasserka
73e3b78169 softgpu: Support flat triangle shading. 2013-08-16 23:48:57 +02:00
Tony Wasserka
8f861d8e6f softgpu: Add naive rectangle clipper (which works just as bad). 2013-08-16 23:48:57 +02:00
Tony Wasserka
a3178769f7 softgpu: Add (probably broken) rectangle clipping support. 2013-08-16 23:48:57 +02:00
Tony Wasserka
ed5fa1f4ff softgpu: Fix vertex color decoding. 2013-08-16 23:48:57 +02:00
Tony Wasserka
02f41ecbd6 softgpu: Perspective correct texture mapping. 2013-08-16 23:48:57 +02:00
Tony Wasserka
0c6a4c1bb6 softgpu: Working rectangle support. Through mode support. Clear mode support. Vertex color support. 2013-08-16 23:48:56 +02:00
Tony Wasserka
55d6646fc3 softgpu: Add something like rectangle support. Doesn't seem to work :/ 2013-08-16 23:48:56 +02:00
Tony Wasserka
2aff3a8575 softgpu: Move clipping code to a separate file. 2013-08-16 23:48:56 +02:00
Tony Wasserka
b5181c9f4f softgpu: Add support for RGB565, RGBA5111 and RGBA8888 textures. 2013-08-16 23:48:56 +02:00
Tony Wasserka
f26d66e972 softgpu: Fix a bug in the clipspace->screenspace transformation. Makes polygon clipping work perfectly :) 2013-08-16 23:48:55 +02:00
Tony Wasserka
608fd34b4d softgpu: Implement almost working polygon clipping and fix some bugs. 2013-08-16 23:48:55 +02:00
Tony Wasserka
f6b51dcd55 softgpu: Working ARGB4444 texture support. 2013-08-16 23:48:55 +02:00
Tony Wasserka
7899a9b9c9 softgpu: Texture coordinate support and something like ARGB4444 texture support. 2013-08-16 23:48:55 +02:00
Tony Wasserka
748d2d60f7 softgpu: Implement filled triangle rendering. 2013-08-16 23:48:55 +02:00
Tony Wasserka
142f2a3688 softgpu: Move triangle rasterization code to a new file. 2013-08-16 23:48:54 +02:00