public void Initialize(Device device) {
_b = EffectUtils.Load("SpecialShadow");
E = new Effect(device, _b);
TechHorizontalShadowBlur = E.GetTechniqueByName("HorizontalShadowBlur");
TechVerticalShadowBlur = E.GetTechniqueByName("VerticalShadowBlur");
TechAmbientShadow = E.GetTechniqueByName("AmbientShadow");
TechResult = E.GetTechniqueByName("Result");
for (var i = 0; i < TechHorizontalShadowBlur.Description.PassCount && InputSignaturePT == null; i++) {
InputSignaturePT = TechHorizontalShadowBlur.GetPassByIndex(i).Description.Signature;
}
if (InputSignaturePT == null) throw new System.Exception("input signature (SpecialShadow, PT, HorizontalShadowBlur) == null");
LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue);
FxShadowViewProj = E.GetVariableByName("gShadowViewProj").AsMatrix();
FxInputMap = E.GetVariableByName("gInputMap").AsResource();
FxDepthMap = E.GetVariableByName("gDepthMap").AsResource();
FxMultipler = E.GetVariableByName("gMultipler").AsScalar();
FxCount = E.GetVariableByName("gCount").AsScalar();
FxPadding = E.GetVariableByName("gPadding").AsScalar();
FxSize = E.GetVariableByName("gSize").AsVector();
FxShadowSize = E.GetVariableByName("gShadowSize").AsVector();
}