Commit graph

60 commits

Author SHA1 Message Date
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
Tony Wasserka
29921e4b44 softgpu: Disable alpha blending when copying framebuffer to screen. 2013-08-16 23:49:00 +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