mirror of
https://github.com/overte-org/overte.git
synced 2025-07-24 01:23:55 +02:00
PR feedback
This commit is contained in:
parent
3962487ee3
commit
ac743b6acb
1 changed files with 14 additions and 16 deletions
|
@ -181,26 +181,24 @@ void GLBackend::do_setStateDepthTest(State::DepthTest test) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLBackend::do_setStateStencil(State::StencilActivation activation, State::StencilTest frontTest, State::StencilTest backTest) {
|
void GLBackend::do_setStateStencil(State::StencilActivation activation, State::StencilTest testFront, State::StencilTest testBack) {
|
||||||
const auto& currentActivation = _pipeline._stateCache.stencilActivation;
|
const auto& currentActivation = _pipeline._stateCache.stencilActivation;
|
||||||
const auto& currentTestFront = _pipeline._stateCache.stencilTestFront;
|
const auto& currentTestFront = _pipeline._stateCache.stencilTestFront;
|
||||||
const auto& currentTestBack = _pipeline._stateCache.stencilTestBack;
|
const auto& currentTestBack = _pipeline._stateCache.stencilTestBack;
|
||||||
if ((currentActivation != activation)
|
if ((currentActivation != activation)
|
||||||
|| (currentTestFront != frontTest)
|
|| (currentTestFront != testFront)
|
||||||
|| (currentTestBack != backTest)) {
|
|| (currentTestBack != testBack)) {
|
||||||
|
|
||||||
if (activation.isEnabled()) {
|
if (activation.isEnabled()) {
|
||||||
glEnable(GL_STENCIL_TEST);
|
glEnable(GL_STENCIL_TEST);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
glDisable(GL_STENCIL_TEST);
|
glDisable(GL_STENCIL_TEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (activation.getWriteMaskFront() != activation.getWriteMaskBack()) {
|
if (activation.getWriteMaskFront() != activation.getWriteMaskBack()) {
|
||||||
glStencilMaskSeparate(GL_FRONT, activation.getWriteMaskFront());
|
glStencilMaskSeparate(GL_FRONT, activation.getWriteMaskFront());
|
||||||
glStencilMaskSeparate(GL_BACK, activation.getWriteMaskBack());
|
glStencilMaskSeparate(GL_BACK, activation.getWriteMaskBack());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
glStencilMask(activation.getWriteMaskFront());
|
glStencilMask(activation.getWriteMaskFront());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,22 +212,22 @@ void GLBackend::do_setStateStencil(State::StencilActivation activation, State::S
|
||||||
GL_INCR,
|
GL_INCR,
|
||||||
GL_DECR };
|
GL_DECR };
|
||||||
|
|
||||||
if (frontTest != backTest) {
|
if (testFront != testBack) {
|
||||||
glStencilOpSeparate(GL_FRONT, STENCIL_OPS[frontTest.getFailOp()], STENCIL_OPS[frontTest.getPassOp()], STENCIL_OPS[frontTest.getDepthFailOp()]);
|
glStencilOpSeparate(GL_FRONT, STENCIL_OPS[testFront.getFailOp()], STENCIL_OPS[testFront.getPassOp()], STENCIL_OPS[testFront.getDepthFailOp()]);
|
||||||
glStencilFuncSeparate(GL_FRONT, COMPARISON_TO_GL[frontTest.getFunction()], frontTest.getReference(), frontTest.getReadMask());
|
glStencilFuncSeparate(GL_FRONT, COMPARISON_TO_GL[testFront.getFunction()], testFront.getReference(), testFront.getReadMask());
|
||||||
|
|
||||||
glStencilOpSeparate(GL_BACK, STENCIL_OPS[backTest.getFailOp()], STENCIL_OPS[backTest.getPassOp()], STENCIL_OPS[backTest.getDepthFailOp()]);
|
glStencilOpSeparate(GL_BACK, STENCIL_OPS[testBack.getFailOp()], STENCIL_OPS[testBack.getPassOp()], STENCIL_OPS[testBack.getDepthFailOp()]);
|
||||||
glStencilFuncSeparate(GL_BACK, COMPARISON_TO_GL[backTest.getFunction()], backTest.getReference(), backTest.getReadMask());
|
glStencilFuncSeparate(GL_BACK, COMPARISON_TO_GL[testBack.getFunction()], testBack.getReference(), testBack.getReadMask());
|
||||||
} else {
|
} else {
|
||||||
glStencilOp(STENCIL_OPS[frontTest.getFailOp()], STENCIL_OPS[frontTest.getPassOp()], STENCIL_OPS[frontTest.getDepthFailOp()]);
|
glStencilOp(STENCIL_OPS[testFront.getFailOp()], STENCIL_OPS[testFront.getPassOp()], STENCIL_OPS[testFront.getDepthFailOp()]);
|
||||||
glStencilFunc(COMPARISON_TO_GL[frontTest.getFunction()], frontTest.getReference(), frontTest.getReadMask());
|
glStencilFunc(COMPARISON_TO_GL[testFront.getFunction()], testFront.getReference(), testFront.getReadMask());
|
||||||
}
|
}
|
||||||
|
|
||||||
(void)CHECK_GL_ERROR();
|
(void)CHECK_GL_ERROR();
|
||||||
|
|
||||||
_pipeline._stateCache.stencilActivation = activation;
|
_pipeline._stateCache.stencilActivation = activation;
|
||||||
_pipeline._stateCache.stencilTestFront = frontTest;
|
_pipeline._stateCache.stencilTestFront = testFront;
|
||||||
_pipeline._stateCache.stencilTestBack = backTest;
|
_pipeline._stateCache.stencilTestBack = testBack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue