/// <summary> /// <see cref="RenderCoreBase{TModelStruct}.OnAttach(IRenderTechnique)"/> /// </summary> /// <param name="technique"></param> /// <returns></returns> protected override bool OnAttach(IRenderTechnique technique) { if (base.OnAttach(technique)) { this.technique = technique; if (material != null) { materialVariables = Collect(material.CreateMaterialVariables(technique.EffectsManager)); AssignMaterialVariableProperties(technique); } else { materialVariables = EmptyMaterialVariable.EmptyVariable; } return(true); } else { return(false); } }
/// <summary> /// <see cref="RenderCoreBase{TModelStruct}.OnAttach(IRenderTechnique)"/> /// </summary> /// <param name="technique"></param> /// <returns></returns> protected override bool OnAttach(IRenderTechnique technique) { if (base.OnAttach(technique)) { if (materialVariables != null) { RemoveAndDispose(ref materialVariables); } materialVariables = Collect(CreateEffectMaterialVariables(technique.EffectsManager)); materialVariables.Material = Material; MaterialVariables.RenderShadowMap = this.RenderShadowMap; MaterialVariables.RenderDiffuseMap = this.RenderDiffuseMap; MaterialVariables.RenderNormalMap = this.RenderNormalMap; MaterialVariables.RenderDisplacementMap = this.RenderDisplacementMap; MaterialVariables.RenderDiffuseAlphaMap = this.RenderDiffuseAlphaMap; MaterialVariables.RenderEnvironmentMap = this.RenderEnvironmentMap; MaterialVariables.OnInvalidateRenderer += (s, e) => { InvalidateRenderer(); }; return(true); } else { return(false); } }
protected override void OnDetach() { materialVariables = EmptyMaterialVariable.EmptyVariable; base.OnDetach(); }
protected override void OnDetach() { materialVariables = null; base.OnDetach(); }