Commit Graph

106 Commits

Author SHA1 Message Date
Tony Wasserka
838d22d120 softgpu: Implement memory transfers. 2013-08-16 23:49:14 +02:00
Tony Wasserka
2962d242cb softgpu: Implement skinning. 2013-08-16 23:49:14 +02:00
Tony Wasserka
9bc3e8bf07 softgpu: Generate texture coordinates for environment mapping even if lighting is disabled altogether. 2013-08-16 23:49:13 +02:00
Tony Wasserka
6b90aa250d softgpu: Polish some helper function signatures. 2013-08-16 23:49:13 +02:00
Tony Wasserka
11a94e1d14 softgpu: Implement spline surface drawing (without patch subdivision). 2013-08-16 23:49:13 +02:00
Tony Wasserka
f4cb929073 softgpu: Fix a lighting bug. 2013-08-16 23:49:13 +02:00
Tony Wasserka
ad8449c382 softgpu: Add some safety checks. 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
917dc276dc softgpu: Small cleanup in Clipper. 2013-08-16 23:49:10 +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
44035df446 SoftGpu: Add support for triangle fans. 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
40c83dee03 softgpu: Fix vertex order when drawing rectangles. 2013-08-16 23:49:05 +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
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