Tony Wasserka
d0c05b78d6
softgpu: Fix some stencil testing related bugs.
2013-08-16 23:49:15 +02:00
Tony Wasserka
6b90aa250d
softgpu: Polish some helper function signatures.
2013-08-16 23:49:13 +02:00
Tony Wasserka
f6feb874ed
softgpu/Rasterizer: Structure some code more clearly.
2013-08-16 23:49:12 +02:00
Tony Wasserka
1450157e09
softgpu: Implement environment mapping.
2013-08-16 23:49:12 +02:00
Tony Wasserka
d2f30961af
softgpu: Make perspective correct uv mapping code more readable and implement projection mapping.
2013-08-16 23:49:12 +02:00
Tony Wasserka
104feea8eb
softgpu: Restructure texture sampling code a bit.
2013-08-16 23:49:12 +02:00
Tony Wasserka
bacadefde4
softgpu: Optimization, part 3.
2013-08-16 23:49:12 +02:00
Tony Wasserka
b22a82d350
softgpu: Optimization, part 2.
2013-08-16 23:49:11 +02:00
Tony Wasserka
0c6a9dcf50
softgpu: Optimization, part 1.
2013-08-16 23:49:11 +02:00
Tony Wasserka
002ab3e3ad
softgpu: Hackfix CLUT4 texture deswizzling.
2013-08-16 23:49:11 +02:00
Tony Wasserka
62b384e052
softgpu: Lots of clearmode fixes.
2013-08-16 23:49:11 +02:00
Tony Wasserka
f35e085859
softgpu: Change framebuffer writes to act on actual 16 bit pixels if that's the framebuffer format.
2013-08-16 23:49:11 +02:00
Tony Wasserka
2ea7162962
softgpu: Implement depth range test.
2013-08-16 23:49:10 +02:00
Tony Wasserka
e1216e91cc
softgpu: Implement texture scaling, texture offset and texture coordinate wrapping/clamping.
2013-08-16 23:49:10 +02:00
Tony Wasserka
c8f1819179
softgpu: Fix triangle borders not fitting together properly.
2013-08-16 23:49:09 +02:00
Tony Wasserka
4e1d2f0cb2
softgpu: Implement logic ops.
2013-08-16 23:49:09 +02:00
Tony Wasserka
c957574f90
softgpu: Implement color masking.
2013-08-16 23:49:09 +02:00
Tony Wasserka
a013aad6f1
softgpu: Fix incorrect depth buffer write base address.
...
softgpu: Implement framebuffer pixel formats different than RGBA8888.
softgpu: Move texel decoding functions to a separate header.
2013-08-16 23:49:09 +02:00
Tony Wasserka
b2d4df2ddf
Fixes for CLUT decoding
2013-08-16 23:49:08 +02:00
Tony Wasserka
ccb487cbae
softgpu: Clip primitives when one of their vertices is outside the screen coordinate range (the code really needs a cleanup though).
...
softgpu: Fix triangle strip rendering.
softgpu: Implement CCW cullmode.
2013-08-16 23:49:08 +02:00
Tony Wasserka
37ef488f83
softgpu: Support RGB565, RGBA5551 and RGBA4444 CLUT formats.
2013-08-16 23:49:08 +02:00
Tony Wasserka
54c9303f4a
softgpu: static inline everything.
2013-08-16 23:49:08 +02:00
Tony Wasserka
dedb3de5c3
softgpu: Add support for 32 bit and 16 bit index texture formats.
...
softgpu: Move texture function emulation to a helper function.
2013-08-16 23:49:08 +02:00
Tony Wasserka
2336f4cd8c
softgpu: Assign texture alpha value to 255 when no alpha channel is present.
2013-08-16 23:49:07 +02:00
Tony Wasserka
88348a3d73
softgpu: Fix rgba texture function.
...
softgpu: Reorder pixel pipeline steps to match hardware order (without caring about performance loss, should be optimized later!).
softgpu: Implement alpha and color testing.
softgpu: Change CLUT lookup code a bit, still need to make some sense out of this.
2013-08-16 23:49:07 +02:00
Tony Wasserka
c549ee0d12
softgpu: Fix some alpha blending bugs.
2013-08-16 23:49:07 +02:00
Tony Wasserka
e7ac41c4bc
softgpu: Possibly fix a bug. Or make things worse. I don't know :/
2013-08-16 23:49:07 +02:00
Tony Wasserka
90b868d1ef
softgpu/Rasterizer: Clean up texture sampling code.
2013-08-16 23:49:07 +02:00
Tony Wasserka
e1cc2540cd
softgpu: Fix fast texture storage mode and use correct texture buffer pitches.
2013-08-16 23:49:06 +02:00
Tony Wasserka
df141ffe6b
softgpu: Implement stencil testing. Add some TODOs. Disable alpha blending when clear mode is active.
...
GPUState: Fix incorrect stencil enum.
2013-08-16 23:49:06 +02:00
Tony Wasserka
0dbe5c5cc1
softgpu: Cleanup CLUT lookup code and fix a critical bug related to it. Also added semi-working fast texture storage mode support.
2013-08-16 23:49:06 +02:00
Tony Wasserka
84425aafef
softgpu: Fix (?) interpolation method for z and color values.
2013-08-16 23:49:06 +02:00
Tony Wasserka
8929b0c248
softgpu/Rasterizer: Fix (or rather workaround) a critical integer overflow issue.
2013-08-16 23:49:05 +02:00
Tony Wasserka
27414c0be0
softgpu/Rasterizer: Fix decal texfunc.
2013-08-16 23:49:05 +02:00
Tony Wasserka
3ccc0c1fdc
softgpu/Rasterizer: Warning fixes.
2013-08-16 23:49:05 +02:00
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
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
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
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
3cdf2a789d
softgpu: Write to the correct frame buffer in RAM.
2013-08-16 23:49:01 +02:00