private void WriteRasterizerState(String name, RasterizerState value) { _writer.Write(TAB_BLOCK2); _writer.Write("RasterizerState"); WriteSpace(); _writer.Write(name); RenderStateKey key = value.RenderStateKey; if (key.Equals(RasterizerState.CullBackClockwiseFront.RenderStateKey)) { WriteSeparator(); _writer.Write("CullBackClockwiseFront"); WriteNewLine(); } else if (key.Equals(RasterizerState.CullBackCounterClockwiseFront.RenderStateKey)) { WriteSeparator(); _writer.Write("CullBackCounterClockwiseFront"); WriteNewLine(); } else if (key.Equals(RasterizerState.CullNone.RenderStateKey)) { WriteSeparator(); _writer.Write("CullNone"); WriteNewLine(); } else if (key.Equals(RasterizerState.CullNoneWireframe.RenderStateKey)) { WriteSeparator(); _writer.Write("CullNoneWireframe"); WriteNewLine(); } else { WriteOpenBrace(); if (value.Cull != CullMode.Back) { _writer.Write(TAB_BLOCK3); _writer.Write("Cull"); WriteSeparator(); _writer.Write(value.Cull.ToString()); WriteNewLine(); } if (value.VertexWinding != VertexWinding.Clockwise) { _writer.Write(TAB_BLOCK3); _writer.Write("VertexWinding"); WriteSeparator(); _writer.Write(value.VertexWinding.ToString()); WriteNewLine(); } if (value.DepthBias != 0) { _writer.Write(TAB_BLOCK3); _writer.Write("DepthBias"); WriteSeparator(); _writer.Write(value.DepthBias); WriteNewLine(); } if (value.Fill != FillMode.Solid) { _writer.Write(TAB_BLOCK3); _writer.Write("Fill"); WriteSeparator(); _writer.Write(value.Fill.ToString()); WriteNewLine(); } if (value.EnableMultiSampleAntiAlias == false) { _writer.Write(TAB_BLOCK3); _writer.Write("EnableMultiSampleAntiAlias"); WriteSeparator(); _writer.Write("false"); WriteNewLine(); } if (value.EnableScissorTest == true) { _writer.Write(TAB_BLOCK3); _writer.Write("EnableScissorTest"); WriteSeparator(); _writer.Write("true"); WriteNewLine(); } if (!value.SlopeScaledDepthBias.Equals(0.0f)) { _writer.Write(TAB_BLOCK3); _writer.Write("SlopeScaledDepthBias"); WriteSeparator(); _writer.Write(value.SlopeScaledDepthBias); WriteNewLine(); } WriteCloseBrace(false, TAB_BLOCK2); } }
private void WriteSamplerState(bool pixelSampler, int index, SamplerState value) { _writer.Write(TAB_BLOCK2); if (pixelSampler) { _writer.Write("SamplerState"); } else { _writer.Write("VertexSamplerState"); } _writer.Write("["); _writer.Write(index); _writer.Write("]"); RenderStateKey key = value.RenderStateKey; if (key.Equals(SamplerState.AnisotropicClamp.RenderStateKey)) { WriteSeparator(); _writer.Write("AnisotropicClamp"); WriteNewLine(); } else if (key.Equals(SamplerState.AnisotropicWrap.RenderStateKey)) { WriteSeparator(); _writer.Write("AnisotropicWrap"); WriteNewLine(); } else if (key.Equals(SamplerState.LinearClamp.RenderStateKey)) { WriteSeparator(); _writer.Write("LinearClamp"); WriteNewLine(); } else if (key.Equals(SamplerState.LinearWrap.RenderStateKey)) { WriteSeparator(); _writer.Write("LinearWrap"); WriteNewLine(); } else if (key.Equals(SamplerState.PointClamp.RenderStateKey)) { WriteSeparator(); _writer.Write("PointClamp"); WriteNewLine(); } else if (key.Equals(SamplerState.PointWrap.RenderStateKey)) { WriteSeparator(); _writer.Write("PointWrap"); WriteNewLine(); } else { WriteOpenBrace(); if (value.AddressU != TextureAddressMode.Clamp) { _writer.Write(TAB_BLOCK3); _writer.Write("AddressU"); WriteSeparator(); _writer.Write(value.AddressU.ToString()); WriteNewLine(); } if (value.AddressV != TextureAddressMode.Clamp) { _writer.Write(TAB_BLOCK3); _writer.Write("AddressV"); WriteSeparator(); _writer.Write(value.AddressV.ToString()); WriteNewLine(); } if (value.AddressW != TextureAddressMode.Clamp) { _writer.Write(TAB_BLOCK3); _writer.Write("AddressW"); WriteSeparator(); _writer.Write(value.AddressW.ToString()); WriteNewLine(); } if (value.Filter != TextureFilter.Point) { _writer.Write(TAB_BLOCK3); _writer.Write("Filter"); WriteSeparator(); _writer.Write(value.Filter.ToString()); WriteNewLine(); } if (value.MaxAnisotropy != 4) { _writer.Write(TAB_BLOCK3); _writer.Write("MaxAnisotropy"); WriteSeparator(); _writer.Write(value.MaxAnisotropy); WriteNewLine(); } if (!value.MipMapLevelOfDetailBias.Equals(0.0f)) { _writer.Write(TAB_BLOCK3); _writer.Write("MipMapLevelOfDetailBias"); WriteSeparator(); _writer.Write(value.MipMapLevelOfDetailBias); WriteNewLine(); } WriteCloseBrace(false, TAB_BLOCK2); } }
private void WriteBlendState(String name, BlendState value) { _writer.Write(TAB_BLOCK2); _writer.Write("BlendState"); WriteSpace(); _writer.Write(name); RenderStateKey key = value.RenderStateKey; if (key.Equals(BlendState.AdditiveBlend.RenderStateKey)) { WriteSeparator(); _writer.Write("AdditiveBlend"); WriteNewLine(); } else if (key.Equals(BlendState.AlphaBlendNonPremultiplied.RenderStateKey)) { WriteSeparator(); _writer.Write("AlphaBlendNonPremultiplied"); WriteNewLine(); } else if (key.Equals(BlendState.AlphaBlendPremultiplied.RenderStateKey)) { WriteSeparator(); _writer.Write("AlphaBlendPremultiplied"); WriteNewLine(); } else if (key.Equals(BlendState.Opaque.RenderStateKey)) { WriteSeparator(); _writer.Write("Opaque"); WriteNewLine(); } else { WriteOpenBrace(); if (value.AlphaBlendFunction != BlendFunction.Add) { _writer.Write(TAB_BLOCK3); _writer.Write("AlphaBlendFunction"); WriteSeparator(); _writer.Write(value.AlphaBlendFunction.ToString()); WriteNewLine(); } if (value.AlphaSourceBlend != Blend.One) { _writer.Write(TAB_BLOCK3); _writer.Write("AlphaSourceBlend"); WriteSeparator(); _writer.Write(value.AlphaSourceBlend.ToString()); WriteNewLine(); } if (value.AlphaDestinationBlend != Blend.Zero) { _writer.Write(TAB_BLOCK3); _writer.Write("AlphaDestinationBlend"); WriteSeparator(); _writer.Write(value.AlphaDestinationBlend.ToString()); WriteNewLine(); } if (value.ColorBlendFunction != BlendFunction.Add) { _writer.Write(TAB_BLOCK3); _writer.Write("ColorBlendFunction"); WriteSeparator(); _writer.Write(value.ColorBlendFunction.ToString()); WriteNewLine(); } if (value.ColorSourceBlend != Blend.One) { _writer.Write(TAB_BLOCK3); _writer.Write("ColorSourceBlend"); WriteSeparator(); _writer.Write(value.ColorSourceBlend.ToString()); WriteNewLine(); } if (value.ColorDestinationBlend != Blend.Zero) { _writer.Write(TAB_BLOCK3); _writer.Write("ColorDestinationBlend"); WriteSeparator(); _writer.Write(value.ColorDestinationBlend.ToString()); WriteNewLine(); } if (!value.BlendFactor.Equals(Color.White)) { _writer.Write(TAB_BLOCK3); _writer.Write("BlendFactor"); WriteSeparator(); Color c = value.BlendFactor; _writer.Write(c.R); WriteSpace(); _writer.Write(c.G); WriteSpace(); _writer.Write(c.B); WriteSpace(); _writer.Write(c.A); WriteNewLine(); } if (value.MultiSampleMask != int.MaxValue) { _writer.Write(TAB_BLOCK3); _writer.Write("MultiSampleMask"); WriteSeparator(); _writer.Write(value.MultiSampleMask); WriteNewLine(); } int beCount = value.BlendEnableCount; if (beCount > 0) { if (value.GetBlendEnable(0) == false) { _writer.Write(TAB_BLOCK3); _writer.Write("BlendEnable[0]"); WriteSeparator(); _writer.Write("false"); WriteNewLine(); } for (int i = 1; i < beCount; i++) { if (value.GetBlendEnable(i) == true) { _writer.Write(TAB_BLOCK3); _writer.Write("BlendEnable["); _writer.Write(i); _writer.Write("]"); WriteSeparator(); _writer.Write("true"); WriteNewLine(); } } } int cwCount = value.ColorWriteChannelsCount; if (cwCount > 0) { ColorWriteChannels cwc = value.GetWriteChannels(0); if (cwc != ColorWriteChannels.All) { _writer.Write(TAB_BLOCK3); _writer.Write("ColorWriteChannels[0]"); WriteSeparator(); _writer.Write(cwc.ToString().Replace(",", " |")); WriteNewLine(); } for (int i = 1; i < cwCount; i++) { cwc = value.GetWriteChannels(i); if (cwc != ColorWriteChannels.All) { _writer.Write(TAB_BLOCK3); _writer.Write("ColorWriteChannels["); _writer.Write(i); _writer.Write("]"); WriteSeparator(); _writer.Write(cwc.ToString().Replace(",", " |")); WriteNewLine(); } } } WriteCloseBrace(false, TAB_BLOCK2); } }