diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2021-11-25 16:17:31 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2021-11-25 16:18:57 +0300 |
commit | bc4c20d414e90c8e25e12cfee860e86adb06e961 (patch) | |
tree | add30daf5016f85991ab8999e0c393c4eb463d83 /source/blender/editors/gpencil/gpencil_primitive.c | |
parent | 447378753d320ea04d7c1ce00723fc02f35966f0 (diff) |
Fix T93360: 'Iteractive Light Track' do not work over empty background
Bug introduced in {rBaa0ac0035a0d}.
The invalid depth fallback was changed to `FLT_MAX` in order to match the
annotation and gpencil operations.
This broke the `Interactive Light Track` operator which invalidates the
operation if the depth value is `1.0f`.
The chosen solution was to change the value tested in the annotation and
gpencil operations.
Diffstat (limited to 'source/blender/editors/gpencil/gpencil_primitive.c')
-rw-r--r-- | source/blender/editors/gpencil/gpencil_primitive.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/editors/gpencil/gpencil_primitive.c b/source/blender/editors/gpencil/gpencil_primitive.c index 7382aca9a87..8157e9d8fe7 100644 --- a/source/blender/editors/gpencil/gpencil_primitive.c +++ b/source/blender/editors/gpencil/gpencil_primitive.c @@ -841,7 +841,7 @@ static void gpencil_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi) /* find first valid contact point */ int i; for (i = 0; i < gps->totpoints; i++) { - if (depth_arr[i] != FLT_MAX) { + if (depth_arr[i] != DEPTH_INVALID) { break; } } @@ -853,7 +853,7 @@ static void gpencil_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi) } else { for (i = gps->totpoints - 1; i >= 0; i--) { - if (depth_arr[i] != FLT_MAX) { + if (depth_arr[i] != DEPTH_INVALID) { break; } } @@ -864,14 +864,14 @@ static void gpencil_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi) * first and last contact in an imaginary line between them */ for (i = 0; i < gps->totpoints; i++) { if (!ELEM(i, first_valid, last_valid)) { - depth_arr[i] = FLT_MAX; + depth_arr[i] = DEPTH_INVALID; } } interp_depth = true; } if (interp_depth) { - interp_sparse_array(depth_arr, gps->totpoints, FLT_MAX); + interp_sparse_array(depth_arr, gps->totpoints, DEPTH_INVALID); } } } @@ -1041,7 +1041,7 @@ static void gpencil_primitive_update_strokes(bContext *C, tGPDprimitive *tgpi) gpd->runtime.sbuffer, &gpd->runtime.sbuffer_size, &gpd->runtime.sbuffer_used, false); /* add small offset to keep stroke over the surface */ - if ((depth_arr) && (gpd->zdepth_offset > 0.0f)) { + if ((depth_arr) && (gpd->zdepth_offset > 0.0f) && (depth_arr[i] != DEPTH_INVALID)) { depth_arr[i] *= (1.0f - (gpd->zdepth_offset / 1000.0f)); } |