public void Blur(DeviceContextHolder holder, TargetResourceTexture source, TargetResourceTexture temporary, int iterations = 1,
TargetResourceTexture target = null) {
for (var i = 0; i < iterations; i++) {
holder.DeviceContext.OutputMerger.SetTargets(temporary.TargetView);
BlurHorizontally(holder, (i == 0 ? null : target?.View) ?? source.View);
holder.DeviceContext.OutputMerger.SetTargets(target?.TargetView ?? source.TargetView);
BlurVertically(holder, temporary.View);
}
}