From 9c57a96b0ea8d85bdc5069fc09d48060e4e35fef Mon Sep 17 00:00:00 2001 From: Johannes Jung Date: Tue, 11 Apr 2023 10:20:27 +0200 Subject: [PATCH] Fix #106432: Overlay: Fix signed/unsigned mismatches in edit_curve shaders --- .../overlay_edit_curve_handle_geom.glsl | 22 +++++++++---------- .../overlay_edit_curve_point_vert.glsl | 10 ++++----- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/source/blender/draw/engines/overlay/shaders/overlay_edit_curve_handle_geom.glsl b/source/blender/draw/engines/overlay/shaders/overlay_edit_curve_handle_geom.glsl index 3a3c34b39e5..5cd7f1c1325 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_edit_curve_handle_geom.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_edit_curve_handle_geom.glsl @@ -26,7 +26,7 @@ void main() uint color_id = (vert[1].flag >> COLOR_SHIFT); /* Don't output any edges if we don't show handles */ - if (!showCurveHandles && (color_id < 5)) { + if (!showCurveHandles && (color_id < 5u)) { return; } @@ -37,10 +37,10 @@ void main() bool is_gpencil = ((vert[1].flag & VERT_GPENCIL_BEZT_HANDLE) != 0u); /* If handle type is only selected and the edge is not selected, don't show. */ - if ((curveHandleDisplay != CURVE_HANDLE_ALL) && (!handle_selected)) { + if ((uint(curveHandleDisplay) != CURVE_HANDLE_ALL) && (!handle_selected)) { /* Nurbs must show the handles always. */ bool is_u_segment = (((vert[1].flag ^ vert[0].flag) & EVEN_U_BIT) != 0u); - if ((!is_u_segment) && (color_id <= 4)) { + if ((!is_u_segment) && (color_id <= 4u)) { return; } if (is_gpencil) { @@ -49,24 +49,24 @@ void main() } vec4 inner_color; - if (color_id == 0) { + if (color_id == 0u) { inner_color = (edge_selected) ? colorHandleSelFree : colorHandleFree; } - else if (color_id == 1) { + else if (color_id == 1u) { inner_color = (edge_selected) ? colorHandleSelAuto : colorHandleAuto; } - else if (color_id == 2) { + else if (color_id == 2u) { inner_color = (edge_selected) ? colorHandleSelVect : colorHandleVect; } - else if (color_id == 3) { + else if (color_id == 3u) { inner_color = (edge_selected) ? colorHandleSelAlign : colorHandleAlign; } - else if (color_id == 4) { + else if (color_id == 4u) { inner_color = (edge_selected) ? colorHandleSelAutoclamp : colorHandleAutoclamp; } else { - bool is_selected = (((vert[1].flag & vert[0].flag) & VERT_SELECTED) != 0); - bool is_u_segment = (((vert[1].flag ^ vert[0].flag) & EVEN_U_BIT) != 0); + bool is_selected = (((vert[1].flag & vert[0].flag) & VERT_SELECTED) != 0u); + bool is_u_segment = (((vert[1].flag ^ vert[0].flag) & EVEN_U_BIT) != 0u); if (is_u_segment) { inner_color = (is_selected) ? colorNurbSelUline : colorNurbUline; } @@ -75,7 +75,7 @@ void main() } } - vec4 outer_color = (is_active_nurb != 0) ? + vec4 outer_color = (is_active_nurb != 0u) ? mix(colorActiveSpline, inner_color, 0.25) /* Minimize active color bleeding on inner_color. */ diff --git a/source/blender/draw/engines/overlay/shaders/overlay_edit_curve_point_vert.glsl b/source/blender/draw/engines/overlay/shaders/overlay_edit_curve_point_vert.glsl index a30496177c3..40cc7922949 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_edit_curve_point_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_edit_curve_point_vert.glsl @@ -7,9 +7,9 @@ void main() GPU_INTEL_VERTEX_SHADER_WORKAROUND /* Reuse the FREESTYLE flag to determine is GPencil. */ - bool is_gpencil = ((data & EDGE_FREESTYLE) != 0); - if ((data & VERT_SELECTED) != 0) { - if ((data & VERT_ACTIVE) != 0) { + bool is_gpencil = ((data & EDGE_FREESTYLE) != 0u); + if ((data & VERT_SELECTED) != 0u) { + if ((data & VERT_ACTIVE) != 0u) { finalColor = colorEditMeshActive; } else { @@ -26,11 +26,11 @@ void main() view_clipping_distances(world_pos); bool show_handle = showCurveHandles; - if ((curveHandleDisplay == CURVE_HANDLE_SELECTED) && ((data & VERT_SELECTED_BEZT_HANDLE) == 0)) { + if ((uint(curveHandleDisplay) == CURVE_HANDLE_SELECTED) && ((data & VERT_SELECTED_BEZT_HANDLE) == 0u)) { show_handle = false; } - if (!show_handle && ((data & BEZIER_HANDLE) != 0)) { + if (!show_handle && ((data & BEZIER_HANDLE) != 0u)) { /* We set the vertex at the camera origin to generate 0 fragments. */ gl_Position = vec4(0.0, 0.0, -3e36, 0.0); } -- 2.30.2