public void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) {
if (mode == SpecialRenderMode.DeferredTransparentMask || mode == SpecialRenderMode.Shadow) {
_effect.TechTransparentMask.DrawAllPasses(contextHolder.DeviceContext, indices);
Drawed++;
return;
}
if (IsBlending) {
if (mode == SpecialRenderMode.DeferredTransparentForw || mode == SpecialRenderMode.DeferredTransparentDepth) {
_effect.TechTransparentForward.DrawAllPasses(contextHolder.DeviceContext, indices);
Drawed++;
} else if (mode == SpecialRenderMode.DeferredTransparentDef) {
_effect.TechTransparentDeferred.DrawAllPasses(contextHolder.DeviceContext, indices);
Drawed++;
}
return;
}
if (mode == SpecialRenderMode.DeferredTransparentForw || mode == SpecialRenderMode.DeferredTransparentDepth ||
mode == SpecialRenderMode.DeferredTransparentDef) return;
(mode == SpecialRenderMode.Deferred ? _effect.TechStandardDeferred : _effect.TechStandardForward)
.DrawAllPasses(contextHolder.DeviceContext, indices);
Drawed++;
}