|
|
|
@ -300,6 +300,20 @@ bool RasterizerOpenGL::AccelerateDrawBatch(bool is_indexed) { |
|
|
|
void RasterizerOpenGL::Clear() { |
|
|
|
const auto& regs = Core::System().GetInstance().GPU().Maxwell3D().regs; |
|
|
|
|
|
|
|
GLbitfield clear_mask = 0; |
|
|
|
if (regs.clear_buffers.R && regs.clear_buffers.G && regs.clear_buffers.B && |
|
|
|
regs.clear_buffers.A) { |
|
|
|
clear_mask |= GL_COLOR_BUFFER_BIT; |
|
|
|
} |
|
|
|
if (regs.clear_buffers.Z) |
|
|
|
clear_mask |= GL_DEPTH_BUFFER_BIT; |
|
|
|
|
|
|
|
if (clear_mask == 0) |
|
|
|
return; |
|
|
|
|
|
|
|
// Sync the depth test state before configuring the framebuffer surfaces.
|
|
|
|
SyncDepthTestState(); |
|
|
|
|
|
|
|
// TODO(bunnei): Implement these
|
|
|
|
const bool has_stencil = false; |
|
|
|
const bool using_color_fb = true; |
|
|
|
@ -353,10 +367,6 @@ void RasterizerOpenGL::Clear() { |
|
|
|
regs.clear_color[3]); |
|
|
|
glClearDepth(regs.clear_depth); |
|
|
|
|
|
|
|
GLbitfield clear_mask = GL_COLOR_BUFFER_BIT; |
|
|
|
if (regs.clear_buffers.Z) |
|
|
|
clear_mask |= GL_DEPTH_BUFFER_BIT; |
|
|
|
|
|
|
|
glClear(clear_mask); |
|
|
|
|
|
|
|
// Mark framebuffer surfaces as dirty
|
|
|
|
|