Ditto
Former-commit-id: de116d9f995865b3bf3687b0ec58dc06a2ed7f0a [formerly 20da754cca992573ffc4f34bc54f6df1c8197147] [formerly 6ad83121710e258d999671bdcc88eab49a026f6c [formerly 6e3f8edf77443a6b11c45562fb05c09369d19026]] Former-commit-id: 30f51b03ded349aa9c1d4f17671ce9a061e113d4 [formerly 2c25e268591713c7eb898e6cffdaf1921189c087] Former-commit-id: 29caff3ced232e9dc014427545158502ef623185
This commit is contained in:
parent
e6fc3edeca
commit
032ae7821b
|
|
@ -81,59 +81,59 @@ namespace std
|
||||||
Nz::UInt8 parameterHash = 0;
|
Nz::UInt8 parameterHash = 0;
|
||||||
Nz::UInt8 parameterIndex = 0;
|
Nz::UInt8 parameterIndex = 0;
|
||||||
|
|
||||||
#define NazaraRenderStateMember(member) Nz::HashCombine(seed, pipelineInfo.member)
|
#define NazaraRenderStateBool(member) parameterHash |= ((pipelineInfo.member) ? 1U : 0U) << (parameterIndex++)
|
||||||
#define NazaraRenderStateBoolMember(member) parameterHash |= ((pipelineInfo.member) ? 1U : 0U) << (parameterIndex++)
|
#define NazaraRenderStateBoolDep(dependency, member) parameterHash |= ((pipelineInfo.dependency && pipelineInfo.member) ? 1U : 0U) << (parameterIndex++)
|
||||||
#define NazaraRenderStateBoolMemberDep(dependency, member) parameterHash |= ((pipelineInfo.dependency && pipelineInfo.member) ? 1U : 0U) << (parameterIndex++)
|
#define NazaraRenderStateEnum(member) Nz::HashCombine(seed, static_cast<Nz::UInt8>(pipelineInfo.member))
|
||||||
#define NazaraRenderStateFloatMember(member, maxDiff) Nz::HashCombine(seed, std::floor(pipelineInfo.member / maxDiff) * maxDiff)
|
#define NazaraRenderStateFloat(member, maxDiff) Nz::HashCombine(seed, std::floor(pipelineInfo.member / maxDiff) * maxDiff)
|
||||||
|
|
||||||
NazaraRenderStateBoolMember(blending);
|
NazaraRenderStateBool(blending);
|
||||||
NazaraRenderStateBoolMember(colorWrite);
|
NazaraRenderStateBool(colorWrite);
|
||||||
NazaraRenderStateBoolMember(depthBuffer);
|
NazaraRenderStateBool(depthBuffer);
|
||||||
NazaraRenderStateBoolMember(faceCulling);
|
NazaraRenderStateBool(faceCulling);
|
||||||
NazaraRenderStateBoolMember(scissorTest);
|
NazaraRenderStateBool(scissorTest);
|
||||||
NazaraRenderStateBoolMember(stencilTest);
|
NazaraRenderStateBool(stencilTest);
|
||||||
|
|
||||||
NazaraRenderStateBoolMemberDep(depthBuffer, depthWrite);
|
NazaraRenderStateBoolDep(depthBuffer, depthWrite);
|
||||||
|
|
||||||
NazaraRenderStateMember(faceFilling);
|
NazaraRenderStateEnum(faceFilling);
|
||||||
|
|
||||||
if (pipelineInfo.blending) //< Remember, at this time we know lhs.blending == rhs.blending
|
if (pipelineInfo.blending) //< Remember, at this time we know lhs.blending == rhs.blending
|
||||||
{
|
{
|
||||||
NazaraRenderStateMember(dstBlend);
|
NazaraRenderStateEnum(dstBlend);
|
||||||
NazaraRenderStateMember(srcBlend);
|
NazaraRenderStateEnum(srcBlend);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pipelineInfo.depthBuffer)
|
if (pipelineInfo.depthBuffer)
|
||||||
NazaraRenderStateMember(depthFunc);
|
NazaraRenderStateEnum(depthFunc);
|
||||||
|
|
||||||
if (pipelineInfo.faceCulling)
|
if (pipelineInfo.faceCulling)
|
||||||
NazaraRenderStateMember(cullingSide);
|
NazaraRenderStateEnum(cullingSide);
|
||||||
|
|
||||||
if (pipelineInfo.stencilTest)
|
if (pipelineInfo.stencilTest)
|
||||||
{
|
{
|
||||||
NazaraRenderStateMember(stencilCompare.back);
|
NazaraRenderStateEnum(stencilCompare.back);
|
||||||
NazaraRenderStateMember(stencilCompare.front);
|
NazaraRenderStateEnum(stencilCompare.front);
|
||||||
NazaraRenderStateMember(stencilCompareMask.back);
|
NazaraRenderStateEnum(stencilCompareMask.back);
|
||||||
NazaraRenderStateMember(stencilCompareMask.front);
|
NazaraRenderStateEnum(stencilCompareMask.front);
|
||||||
NazaraRenderStateMember(stencilDepthFail.back);
|
NazaraRenderStateEnum(stencilDepthFail.back);
|
||||||
NazaraRenderStateMember(stencilDepthFail.front);
|
NazaraRenderStateEnum(stencilDepthFail.front);
|
||||||
NazaraRenderStateMember(stencilFail.back);
|
NazaraRenderStateEnum(stencilFail.back);
|
||||||
NazaraRenderStateMember(stencilFail.front);
|
NazaraRenderStateEnum(stencilFail.front);
|
||||||
NazaraRenderStateMember(stencilPass.back);
|
NazaraRenderStateEnum(stencilPass.back);
|
||||||
NazaraRenderStateMember(stencilPass.front);
|
NazaraRenderStateEnum(stencilPass.front);
|
||||||
NazaraRenderStateMember(stencilReference.back);
|
NazaraRenderStateEnum(stencilReference.back);
|
||||||
NazaraRenderStateMember(stencilReference.front);
|
NazaraRenderStateEnum(stencilReference.front);
|
||||||
NazaraRenderStateMember(stencilWriteMask.back);
|
NazaraRenderStateEnum(stencilWriteMask.back);
|
||||||
NazaraRenderStateMember(stencilWriteMask.front);
|
NazaraRenderStateEnum(stencilWriteMask.front);
|
||||||
}
|
}
|
||||||
|
|
||||||
NazaraRenderStateFloatMember(lineWidth, 0.001f);
|
NazaraRenderStateFloat(lineWidth, 0.001f);
|
||||||
NazaraRenderStateFloatMember(pointSize, 0.001f);
|
NazaraRenderStateFloat(pointSize, 0.001f);
|
||||||
|
|
||||||
#undef NazaraRenderStateMember
|
#undef NazaraRenderStateBool
|
||||||
#undef NazaraRenderStateBoolMember
|
#undef NazaraRenderStateBoolDep
|
||||||
#undef NazaraRenderStateBoolMemberDep
|
#undef NazaraRenderStateEnum
|
||||||
#undef NazaraRenderStateFloatMember
|
#undef NazaraRenderStateFloat
|
||||||
|
|
||||||
Nz::HashCombine(seed, parameterHash);
|
Nz::HashCombine(seed, parameterHash);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue