Former-commit-id: f365cc8672d2eab20f121cf9ab10da5caec8a970 [formerly 24946be5b1045755d9d9d0bee0496feb7c58ff27] [formerly 7a3e46294df8577d38074589aabdc1786a46ee07 [formerly 9f97ef85ec4e440da265b2501d1423a986f033ee]]
Former-commit-id: 69a61ef34ec687d786e6c5bbc40fb27b20960c21 [formerly fd94316370437cd7ed97778772b20e1cb1fa4249]
Former-commit-id: e0f6c22e3dfd0a3ff88c7fdf1f746db7f0fafbf5
This commit is contained in:
Lynix 2016-08-10 23:17:25 +02:00
parent c22fff6740
commit 6e89d34c9d
1 changed files with 36 additions and 36 deletions

View File

@ -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);