Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnkit Meel <ankitjmeel@gmail.com>2020-10-09 13:57:39 +0300
committerAnkit Meel <ankitjmeel@gmail.com>2020-10-09 15:05:23 +0300
commit83e91485d096e64e9cfa45e19292dd76378abe73 (patch)
treebe592f63598bea3d5353bac8ea0e4ddebb17ab57
parent701fc52cc6dcbe4f3fd3af7070f1e985c280a7cb (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
-rw-r--r--source/blender/gpu/GPU_texture.h8
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" {