public override void DrawInner(DeviceContextHolder holder, ICamera camera, SpecialLightMode mode) {
_effect.FxDirectionalLightDirection.Set(Direction);
_effect.FxLightColor.Set(Color);
// using this instead of .Prepare() to keep DepthState — it might be special for filtering
holder.QuadBuffers.PrepareInputAssembler(holder.DeviceContext, _effect.LayoutPT);
(mode == SpecialLightMode.Default ? _effect.TechDirectionalLight :
mode == SpecialLightMode.Shadows ? _effect.TechDirectionalLight_Shadows :
mode == SpecialLightMode.ShadowsWithoutFilter ? _effect.TechDirectionalLight_Shadows_NoFilter :
_effect.TechDirectionalLight_Split).DrawAllPasses(holder.DeviceContext, 6);
}