parent
6ec87e2506
commit
12e38ec7a7
|
|
@ -7459,7 +7459,6 @@ do_issue_stencil() {
|
|||
<< "SRS_back_stencil_pass_z_pass_operation " << stencil -> get_render_state (StencilAttrib::SRS_back_stencil_pass_z_pass_operation) << "\n";
|
||||
}
|
||||
|
||||
if (true)
|
||||
{
|
||||
bool on;
|
||||
|
||||
|
|
@ -7488,44 +7487,14 @@ do_issue_stencil() {
|
|||
stencil_render_states -> set_stencil_render_state (true, StencilRenderStates::SRS_write_mask, stencil -> get_render_state (StencilAttrib::SRS_write_mask));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bool on;
|
||||
|
||||
on = false;
|
||||
|
||||
stencil_render_states -> set_stencil_render_state (true, StencilRenderStates::SRS_front_enable, stencil -> get_render_state (StencilAttrib::SRS_front_enable));
|
||||
stencil_render_states -> set_stencil_render_state (true, StencilRenderStates::SRS_back_enable, stencil -> get_render_state (StencilAttrib::SRS_back_enable));
|
||||
|
||||
// SRS_reference and SRS_read_mask are set when SRS_front_comparison_function is set
|
||||
stencil_render_states -> set_stencil_render_state (false, StencilRenderStates::SRS_reference, stencil -> get_render_state (StencilAttrib::SRS_reference));
|
||||
stencil_render_states -> set_stencil_render_state (false, StencilRenderStates::SRS_read_mask, stencil -> get_render_state (StencilAttrib::SRS_read_mask));
|
||||
|
||||
if (stencil -> get_render_state (StencilAttrib::SRS_front_enable)) {
|
||||
stencil_render_states -> set_stencil_render_state (true, StencilRenderStates::SRS_front_comparison_function, stencil -> get_render_state (StencilAttrib::SRS_front_comparison_function));
|
||||
|
||||
// setting 2 operation states can be defered since all three must be set at once
|
||||
stencil_render_states -> set_stencil_render_state (false, StencilRenderStates::SRS_front_stencil_fail_operation, stencil -> get_render_state (StencilAttrib::SRS_front_stencil_fail_operation));
|
||||
stencil_render_states -> set_stencil_render_state (false, StencilRenderStates::SRS_front_stencil_pass_z_fail_operation, stencil -> get_render_state (StencilAttrib::SRS_front_stencil_pass_z_fail_operation));
|
||||
stencil_render_states -> set_stencil_render_state (true, StencilRenderStates::SRS_front_stencil_pass_z_pass_operation, stencil -> get_render_state (StencilAttrib::SRS_front_stencil_pass_z_pass_operation));
|
||||
|
||||
on = true;
|
||||
}
|
||||
|
||||
if (stencil -> get_render_state (StencilAttrib::SRS_back_enable)) {
|
||||
stencil_render_states -> set_stencil_render_state (true, StencilRenderStates::SRS_back_comparison_function, stencil -> get_render_state (StencilAttrib::SRS_back_comparison_function));
|
||||
|
||||
// setting 2 operation states can be defered since all three must be set at once
|
||||
stencil_render_states -> set_stencil_render_state (false, StencilRenderStates::SRS_back_stencil_fail_operation, stencil -> get_render_state (StencilAttrib::SRS_back_stencil_fail_operation));
|
||||
stencil_render_states -> set_stencil_render_state (false, StencilRenderStates::SRS_back_stencil_pass_z_fail_operation, stencil -> get_render_state (StencilAttrib::SRS_back_stencil_pass_z_fail_operation));
|
||||
stencil_render_states -> set_stencil_render_state (true, StencilRenderStates::SRS_back_stencil_pass_z_pass_operation, stencil -> get_render_state (StencilAttrib::SRS_back_stencil_pass_z_pass_operation));
|
||||
|
||||
on = true;
|
||||
}
|
||||
|
||||
if (on) {
|
||||
stencil_render_states -> set_stencil_render_state (true, StencilRenderStates::SRS_write_mask, stencil -> get_render_state (StencilAttrib::SRS_write_mask));
|
||||
}
|
||||
if (stencil -> get_render_state (StencilAttrib::SRS_clear)) {
|
||||
GLbitfield mask = 0;
|
||||
|
||||
// clear stencil buffer
|
||||
GLP(ClearStencil)(stencil -> get_render_state (StencilAttrib::SRS_clear_value));
|
||||
mask |= GL_STENCIL_BUFFER_BIT;
|
||||
GLP(Clear)(mask);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue