Renderer/RenderStates: Update RenderStates structure (preparing for renderer update)

Former-commit-id: 392c7c33ff64d19e0fe3c7bdc8b22fe17c150887 [formerly d12a3c5f664fccebe0ee40a73bb0310e2d02287e]
Former-commit-id: 22743f015567a8471f97cb90a06175f600ef0f8f
This commit is contained in:
Lynix
2016-07-21 23:00:09 +02:00
parent 31bc8604a4
commit 56443c91e4
17 changed files with 339 additions and 218 deletions

View File

@@ -252,41 +252,41 @@ namespace Nz
// Stencil
if (matData.GetIntegerParameter(MaterialData::StencilCompare, &iValue))
m_states.frontFace.stencilCompare = static_cast<RendererComparison>(iValue);
m_states.stencilCompare.front = static_cast<RendererComparison>(iValue);
if (matData.GetIntegerParameter(MaterialData::StencilFail, &iValue))
m_states.frontFace.stencilFail = static_cast<StencilOperation>(iValue);
m_states.stencilFail.front = static_cast<StencilOperation>(iValue);
if (matData.GetIntegerParameter(MaterialData::StencilPass, &iValue))
m_states.frontFace.stencilPass = static_cast<StencilOperation>(iValue);
m_states.stencilPass.front = static_cast<StencilOperation>(iValue);
if (matData.GetIntegerParameter(MaterialData::StencilZFail, &iValue))
m_states.frontFace.stencilZFail = static_cast<StencilOperation>(iValue);
m_states.stencilDepthFail.front = static_cast<StencilOperation>(iValue);
if (matData.GetIntegerParameter(MaterialData::StencilMask, &iValue))
m_states.frontFace.stencilMask = static_cast<UInt32>(iValue);
m_states.stencilWriteMask.front = static_cast<UInt32>(iValue);
if (matData.GetIntegerParameter(MaterialData::StencilReference, &iValue))
m_states.frontFace.stencilReference = static_cast<unsigned int>(iValue);
m_states.stencilReference.front = static_cast<unsigned int>(iValue);
// Stencil (back)
if (matData.GetIntegerParameter(MaterialData::BackFaceStencilCompare, &iValue))
m_states.backFace.stencilCompare = static_cast<RendererComparison>(iValue);
m_states.stencilCompare.back = static_cast<RendererComparison>(iValue);
if (matData.GetIntegerParameter(MaterialData::BackFaceStencilFail, &iValue))
m_states.backFace.stencilFail = static_cast<StencilOperation>(iValue);
m_states.stencilFail.back = static_cast<StencilOperation>(iValue);
if (matData.GetIntegerParameter(MaterialData::BackFaceStencilPass, &iValue))
m_states.backFace.stencilPass = static_cast<StencilOperation>(iValue);
m_states.stencilPass.back = static_cast<StencilOperation>(iValue);
if (matData.GetIntegerParameter(MaterialData::BackFaceStencilZFail, &iValue))
m_states.backFace.stencilZFail = static_cast<StencilOperation>(iValue);
m_states.stencilDepthFail.back = static_cast<StencilOperation>(iValue);
if (matData.GetIntegerParameter(MaterialData::BackFaceStencilMask, &iValue))
m_states.backFace.stencilMask = static_cast<UInt32>(iValue);
m_states.stencilWriteMask.back = static_cast<UInt32>(iValue);
if (matData.GetIntegerParameter(MaterialData::BackFaceStencilReference, &iValue))
m_states.backFace.stencilReference = static_cast<unsigned int>(iValue);
m_states.stencilReference.back = static_cast<unsigned int>(iValue);
// Textures
if (matParams.loadAlphaMap && matData.GetStringParameter(MaterialData::AlphaTexturePath, &path))
@@ -332,13 +332,13 @@ namespace Nz
matData->SetParameter(MaterialData::Transform, IsTransformEnabled());
// RendererParameter
matData->SetParameter(MaterialData::Blending, GetRenderStates().parameters[RendererParameter_Blend]);
matData->SetParameter(MaterialData::ColorWrite, GetRenderStates().parameters[RendererParameter_ColorWrite]);
matData->SetParameter(MaterialData::DepthBuffer, GetRenderStates().parameters[RendererParameter_DepthBuffer]);
matData->SetParameter(MaterialData::DepthWrite, GetRenderStates().parameters[RendererParameter_DepthWrite]);
matData->SetParameter(MaterialData::FaceCulling, GetRenderStates().parameters[RendererParameter_FaceCulling]);
matData->SetParameter(MaterialData::ScissorTest, GetRenderStates().parameters[RendererParameter_ScissorTest]);
matData->SetParameter(MaterialData::StencilTest, GetRenderStates().parameters[RendererParameter_StencilTest]);
matData->SetParameter(MaterialData::Blending, GetRenderStates().blending);
matData->SetParameter(MaterialData::ColorWrite, GetRenderStates().colorWrite);
matData->SetParameter(MaterialData::DepthBuffer, GetRenderStates().depthBuffer);
matData->SetParameter(MaterialData::DepthWrite, GetRenderStates().depthWrite);
matData->SetParameter(MaterialData::FaceCulling, GetRenderStates().faceCulling);
matData->SetParameter(MaterialData::ScissorTest, GetRenderStates().scissorTest);
matData->SetParameter(MaterialData::StencilTest, GetRenderStates().stencilTest);
// Samplers
matData->SetParameter(MaterialData::DiffuseAnisotropyLevel, int(GetDiffuseSampler().GetAnisotropicLevel()));
@@ -350,20 +350,20 @@ namespace Nz
matData->SetParameter(MaterialData::SpecularWrap, int(GetSpecularSampler().GetWrapMode()));
// Stencil
matData->SetParameter(MaterialData::StencilCompare, int(GetRenderStates().frontFace.stencilCompare));
matData->SetParameter(MaterialData::StencilFail, int(GetRenderStates().frontFace.stencilFail));
matData->SetParameter(MaterialData::StencilPass, int(GetRenderStates().frontFace.stencilPass));
matData->SetParameter(MaterialData::StencilZFail, int(GetRenderStates().frontFace.stencilZFail));
matData->SetParameter(MaterialData::StencilMask, int(GetRenderStates().frontFace.stencilMask));
matData->SetParameter(MaterialData::StencilReference, int(GetRenderStates().frontFace.stencilReference));
matData->SetParameter(MaterialData::StencilCompare, int(GetRenderStates().stencilCompare.front));
matData->SetParameter(MaterialData::StencilFail, int(GetRenderStates().stencilFail.front));
matData->SetParameter(MaterialData::StencilPass, int(GetRenderStates().stencilPass.front));
matData->SetParameter(MaterialData::StencilZFail, int(GetRenderStates().stencilDepthFail.front));
matData->SetParameter(MaterialData::StencilMask, int(GetRenderStates().stencilWriteMask.front));
matData->SetParameter(MaterialData::StencilReference, int(GetRenderStates().stencilReference.front));
// Stencil (back)
matData->SetParameter(MaterialData::BackFaceStencilCompare, int(GetRenderStates().backFace.stencilCompare));
matData->SetParameter(MaterialData::BackFaceStencilFail, int(GetRenderStates().backFace.stencilFail));
matData->SetParameter(MaterialData::BackFaceStencilPass, int(GetRenderStates().backFace.stencilPass));
matData->SetParameter(MaterialData::BackFaceStencilZFail, int(GetRenderStates().backFace.stencilZFail));
matData->SetParameter(MaterialData::BackFaceStencilMask, int(GetRenderStates().backFace.stencilMask));
matData->SetParameter(MaterialData::BackFaceStencilReference, int(GetRenderStates().backFace.stencilReference));
matData->SetParameter(MaterialData::BackFaceStencilCompare, int(GetRenderStates().stencilCompare.back));
matData->SetParameter(MaterialData::BackFaceStencilFail, int(GetRenderStates().stencilFail.back));
matData->SetParameter(MaterialData::BackFaceStencilPass, int(GetRenderStates().stencilPass.back));
matData->SetParameter(MaterialData::BackFaceStencilZFail, int(GetRenderStates().stencilDepthFail.back));
matData->SetParameter(MaterialData::BackFaceStencilMask, int(GetRenderStates().stencilWriteMask.back));
matData->SetParameter(MaterialData::BackFaceStencilReference, int(GetRenderStates().stencilReference.back));
// Textures
if (HasAlphaMap())
@@ -441,8 +441,8 @@ namespace Nz
m_specularColor = Color::White;
m_specularSampler = TextureSampler();
m_states = RenderStates();
m_states.parameters[RendererParameter_DepthBuffer] = true;
m_states.parameters[RendererParameter_FaceCulling] = true;
m_states.depthBuffer = true;
m_states.faceCulling = true;
m_transformEnabled = true;
SetShader("Basic");