diff options
author | Ankit Meel <ankitjmeel@gmail.com> | 2020-10-09 13:57:39 +0300 |
---|---|---|
committer | Ankit Meel <ankitjmeel@gmail.com> | 2020-10-09 15:05:23 +0300 |
commit | 83e91485d096e64e9cfa45e19292dd76378abe73 (patch) | |
tree | be592f63598bea3d5353bac8ea0e4ddebb17ab57 /source | |
parent | 701fc52cc6dcbe4f3fd3af7070f1e985c280a7cb (diff) |
GPU: Fix NOT ~ operator for eGPUSamplerState
The real maximum was `GPU_SAMPLER_ICON`, not `GPU_SAMPLER_REPEAT`, my
bad. {rBa31a87f8943aa40}
Move `GPU_SAMPLER_MAX` out of the enum since it's used as an `int`
at many places.
Also, the macro `ENUM_OPERATORS` needs a maximum, and this enumerator
cannot be used as the argument of that macro. It creates wrong values
in the `~` NOT operator.
Thanks @deadpin for catching this.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D9157
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/gpu/GPU_texture.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/gpu/GPU_texture.h b/source/blender/gpu/GPU_texture.h index 25af7d592f7..e9c081abd22 100644 --- a/source/blender/gpu/GPU_texture.h +++ b/source/blender/gpu/GPU_texture.h @@ -58,11 +58,13 @@ typedef enum eGPUSamplerState { GPU_SAMPLER_ICON = (1 << 8), GPU_SAMPLER_REPEAT = (GPU_SAMPLER_REPEAT_S | GPU_SAMPLER_REPEAT_T | GPU_SAMPLER_REPEAT_R), - /* Don't use that. */ - GPU_SAMPLER_MAX = (GPU_SAMPLER_ICON + 1), } eGPUSamplerState; -ENUM_OPERATORS(eGPUSamplerState, GPU_SAMPLER_REPEAT) +/* `GPU_SAMPLER_MAX` is not a valid enum value, but only a limit. + * It also creates a bad mask for the `NOT` operator in `ENUM_OPERATORS`. + */ +static const int GPU_SAMPLER_MAX = (GPU_SAMPLER_ICON + 1); +ENUM_OPERATORS(eGPUSamplerState, GPU_SAMPLER_ICON) #ifdef __cplusplus extern "C" { |