//----------------------------------------------------------------------------- void FFPRenderStateBuilder::buildRenderState(ShaderGenerator::SGPass* sgPass, TargetRenderState* renderState) { renderState->reset(); // Build transformation sub state. buildFFPSubRenderState(FFP_TRANSFORM, FFPTransform::Type, sgPass, renderState); // Build colour sub state. buildFFPSubRenderState(FFP_COLOUR, FFPColour::Type, sgPass, renderState); // Build lighting sub state. buildFFPSubRenderState(FFP_LIGHTING, FFPLighting::Type, sgPass, renderState); // Build texturing sub state. buildFFPSubRenderState(FFP_TEXTURING, FFPTexturing::Type, sgPass, renderState); // Build fog sub state. buildFFPSubRenderState(FFP_FOG, FFPFog::Type, sgPass, renderState); RenderSystem* rs = Root::getSingleton().getRenderSystem(); if (rs->getName().find("Direct3D11") != String::npos && sgPass->getSrcPass()->getAlphaRejectFunction() != CMPF_ALWAYS_PASS) { buildFFPSubRenderState(FFP_ALPHA_TEST, FFPAlphaTest::Type, sgPass, renderState); } // Resolve colour stage flags. resolveColourStageFlags(sgPass, renderState); }
//----------------------------------------------------------------------------- void FFPRenderStateBuilder::buildRenderState(ShaderGenerator::SGPass* sgPass, TargetRenderState* renderState) { renderState->reset(); // Build transformation sub state. buildFFPSubRenderState(FFP_TRANSFORM, FFPTransform::Type, sgPass, renderState); // Build colour sub state. buildFFPSubRenderState(FFP_COLOUR, FFPColour::Type, sgPass, renderState); // Build lighting sub state. buildFFPSubRenderState(FFP_LIGHTING, FFPLighting::Type, sgPass, renderState); // Build texturing sub state. buildFFPSubRenderState(FFP_TEXTURING, FFPTexturing::Type, sgPass, renderState); // Build fog sub state. buildFFPSubRenderState(FFP_FOG, FFPFog::Type, sgPass, renderState); buildFFPSubRenderState(FFP_ALPHA_TEST, FFPAlphaTest::Type, sgPass, renderState); // Resolve colour stage flags. resolveColourStageFlags(sgPass, renderState); }