From 598ab525da3df3fef2033c159c570688c7282a8f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 6 Mar 2020 17:18:10 +0100 Subject: Cleanup: Replace ABS/SQUARE/CUBE with function calls While it might be handy to have type-less functionality which is similar to how C++ math is implemented it can not be easily achieved with just preprocessor in a way which does not have side-effects on wrong usage. There macros where often used on a non-trivial expression, and there was at least one usage where it was causing an actual side effect/bug on Windows (see change around square_f(sh[index++]) in studiolight.c). For such cases it is handy to have a function which is guaranteed to have zero side-effects. The motivation behind actually removing the macros is that there is already a way to do similar calculation. Also, not having such macros is a way to guarantee that its usage is not changed in a way which have side-effects and that it's not used as an inspiration for cases where it should not be used. Differential Revision: https://developer.blender.org/D7051 --- source/blender/draw/engines/workbench/workbench_effect_dof.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender/draw/engines/workbench/workbench_effect_dof.c') diff --git a/source/blender/draw/engines/workbench/workbench_effect_dof.c b/source/blender/draw/engines/workbench/workbench_effect_dof.c index 3709c5600e6..ae3e2218463 100644 --- a/source/blender/draw/engines/workbench/workbench_effect_dof.c +++ b/source/blender/draw/engines/workbench/workbench_effect_dof.c @@ -77,8 +77,9 @@ static void square_to_circle(float x, float y, float *r, float *T) } } -#define KERNEL_RAD 3 -#define SAMP_LEN SQUARE(KERNEL_RAD * 2 + 1) +#define SQUARE_UNSAFE(a) ((a) * (a)) +#define KERNEL_RAD (3) +#define SAMP_LEN SQUARE_UNSAFE(KERNEL_RAD * 2 + 1) static void workbench_dof_setup_samples(struct GPUUniformBuffer **ubo, float **data, -- cgit v1.2.3