Former-commit-id: 5cb29c2fb4f8784b32ee827747d6a6c9817610cd [formerly b829d211af88b307682c2da13f1c90c809b3f7cb] [formerly f06859f02d279137edb3372b2b31932b702e380d [formerly 5395decad1eb27038bbecbd31569e91625f09123]]
Former-commit-id: 6c3355cf30e066eb3a76b9faf418f3f97efbaada [formerly 54aee068e98e897122f2b23a5bff7f4bb879db93]
Former-commit-id: 17b48986c81e954b632650594cfadbde5d64d23e
This commit is contained in:
Lynix 2016-08-10 23:17:25 +02:00
parent a87e5fb823
commit 0aa9658dd4
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);