Commit Graph
228 Commits
Author SHA1 Message Date
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
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