public void Blur(DeviceContextHolder holder, TargetResourceTexture source, TargetResourceTexture temporary, float power = 1f, 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, power);
holder.DeviceContext.OutputMerger.SetTargets(target?.TargetView ?? source.TargetView);
BlurVertically(holder, temporary.View, power);
}
}