3
0
Fork 0
forked from suyu/suyu

Implement Scissor Test

This commit is contained in:
FernandoS27 2018-10-08 21:21:22 -04:00
parent 30ff42b8cc
commit be97fc884d

View file

@ -976,11 +976,16 @@ void RasterizerOpenGL::SyncAlphaTest() {
void RasterizerOpenGL::SyncScissorTest() { void RasterizerOpenGL::SyncScissorTest() {
const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs; const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs;
// TODO(Rodrigo): Alpha testing is a legacy OpenGL feature, but it can be state.scissor.enabled = (regs.scissor_test.enable != 0);
// implemented with a test+discard in fragment shaders. // TODO(Blinkhawk): Figure if the hardware supports scissor testing per viewport and how it's
// implemented.
if (regs.scissor_test.enable != 0) { if (regs.scissor_test.enable != 0) {
LOG_CRITICAL(Render_OpenGL, "Scissor testing is not implemented"); const u32 width = regs.scissor_test.max_x - regs.scissor_test.min_x;
UNREACHABLE(); const u32 height = regs.scissor_test.max_y - regs.scissor_test.min_y;
state.scissor.x = regs.scissor_test.min_x;
state.scissor.y = regs.scissor_test.min_y;
state.scissor.width = width;
state.scissor.height = height;
} }
} }