|
|
|
@ -969,16 +969,10 @@ void RasterizerOpenGL::SyncDepthClamp() { |
|
|
|
|
|
|
|
void RasterizerOpenGL::SyncClipEnabled( |
|
|
|
const std::array<bool, Maxwell::Regs::NumClipDistances>& clip_mask) { |
|
|
|
|
|
|
|
const auto& regs = system.GPU().Maxwell3D().regs; |
|
|
|
const std::array<bool, Maxwell::Regs::NumClipDistances> reg_state{ |
|
|
|
regs.clip_distance_enabled.c0 != 0, regs.clip_distance_enabled.c1 != 0, |
|
|
|
regs.clip_distance_enabled.c2 != 0, regs.clip_distance_enabled.c3 != 0, |
|
|
|
regs.clip_distance_enabled.c4 != 0, regs.clip_distance_enabled.c5 != 0, |
|
|
|
regs.clip_distance_enabled.c6 != 0, regs.clip_distance_enabled.c7 != 0}; |
|
|
|
|
|
|
|
for (std::size_t i = 0; i < Maxwell::Regs::NumClipDistances; ++i) { |
|
|
|
state.clip_distance[i] = reg_state[i] && clip_mask[i]; |
|
|
|
oglEnable(static_cast<GLenum>(GL_CLIP_DISTANCE0 + i), |
|
|
|
clip_mask[i] && ((regs.clip_distance_enabled >> i) & 1)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|