Implement Scissor Test
This commit is contained in:
		| @@ -976,11 +976,16 @@ void RasterizerOpenGL::SyncAlphaTest() { | ||||
| void RasterizerOpenGL::SyncScissorTest() { | ||||
|     const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs; | ||||
|  | ||||
|     // TODO(Rodrigo): Alpha testing is a legacy OpenGL feature, but it can be | ||||
|     // implemented with a test+discard in fragment shaders. | ||||
|     state.scissor.enabled = (regs.scissor_test.enable != 0); | ||||
|     // TODO(Blinkhawk): Figure if the hardware supports scissor testing per viewport and how it's | ||||
|     // implemented. | ||||
|     if (regs.scissor_test.enable != 0) { | ||||
|         LOG_CRITICAL(Render_OpenGL, "Scissor testing is not implemented"); | ||||
|         UNREACHABLE(); | ||||
|         const u32 width = regs.scissor_test.max_x - regs.scissor_test.min_x; | ||||
|         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; | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 FernandoS27
					FernandoS27