[Bf-blender-cvs] [73747311d54] lanpr-under-gp: LineArt: Obsolete functions clean up.
YimingWu
noreply at git.blender.org
Wed Jul 29 06:11:52 CEST 2020
Commit: 73747311d540e9d13f8734b28d86dd7f55614a76
Author: YimingWu
Date: Wed Jul 29 12:11:30 2020 +0800
Branches: lanpr-under-gp
https://developer.blender.org/rB73747311d540e9d13f8734b28d86dd7f55614a76
LineArt: Obsolete functions clean up.
===================================================================
M source/blender/editors/lineart/lineart_cpu.c
===================================================================
diff --git a/source/blender/editors/lineart/lineart_cpu.c b/source/blender/editors/lineart/lineart_cpu.c
index c8dceb61ffe..984eb40c7f3 100644
--- a/source/blender/editors/lineart/lineart_cpu.c
+++ b/source/blender/editors/lineart/lineart_cpu.c
@@ -128,7 +128,7 @@ static void lineart_render_line_cut(LineartRenderBuffer *rb,
double start,
double end)
{
- LineartRenderLineSegment *rls = rl->segments.first, *irls;
+ LineartRenderLineSegment *rls, *irls;
LineartRenderLineSegment *start_segment = 0, *end_segment = 0;
LineartRenderLineSegment *ns = 0, *ns2 = 0;
int untouched = 0;
@@ -237,8 +237,8 @@ static void lineart_render_line_cut(LineartRenderBuffer *rb,
}
char min_occ = 127;
- LISTBASE_FOREACH (LineartRenderLineSegment *, rls, &rl->segments) {
- min_occ = MIN2(min_occ, rls->occlusion);
+ LISTBASE_FOREACH (LineartRenderLineSegment *, iirls, &rl->segments) {
+ min_occ = MIN2(min_occ, iirls->occlusion);
}
rl->min_occ = min_occ;
}
@@ -1307,7 +1307,7 @@ static void lineart_main_perspective_division(LineartRenderBuffer *rb)
{
LineartRenderVert *rv;
int i;
- float far = rb->far_clip, near = rb->near_clip;
+ /* float far = rb->far_clip, near = rb->near_clip;*/
if (!rb->cam_is_persp) {
return;
@@ -1320,7 +1320,8 @@ static void lineart_main_perspective_division(LineartRenderBuffer *rb)
rv[i].fbcoord[0] /= rv[i].fbcoord[3];
rv[i].fbcoord[1] /= rv[i].fbcoord[3];
/* Re-map z into (0-1) range, because we no longer need NDC at the moment. */
- rv[i].fbcoord[2] = -2 * rv[i].fbcoord[2] / (far - near) - (far + near) / (far - near);
+ /* But we don't need actual Z either, we use W for linear depth for back-transform. */
+ /* rv[i].fbcoord[2] = -2 * rv[i].fbcoord[2] / (far - near) - (far + near) / (far - near); */
rv[i].fbcoord[0] -= rb->shift_x * 2;
rv[i].fbcoord[1] -= rb->shift_y * 2;
}
@@ -2111,6 +2112,10 @@ static LineartRenderLine *lineart_triangle_generate_intersection_line_only(
r->fbcoord[0] -= rb->shift_x * 2;
r->fbcoord[1] -= rb->shift_y * 2;
+ /* This z transformation is not the same as the rest of the part, because the data don't go
+ * through normal perspective division calls in the pipeline, but this way the 3D result and
+ * occlution on the generated line is correct, and we don't really use 2D for viewport stroke
+ * generation anyway.*/
l->fbcoord[2] = ZMin * ZMax / (ZMax - fabs(l->fbcoord[2]) * (ZMax - ZMin));
r->fbcoord[2] = ZMin * ZMax / (ZMax - fabs(r->fbcoord[2]) * (ZMax - ZMin));
@@ -2451,7 +2456,8 @@ bool ED_lineart_calculation_flag_check(eLineartRenderStatus flag)
return match;
}
-void ED_lineart_modifier_sync_flag_set(eLineartModifierSyncStatus flag, bool is_from_modifier)
+void ED_lineart_modifier_sync_flag_set(eLineartModifierSyncStatus flag,
+ bool UNUSED(is_from_modifier))
{
BLI_spin_lock(&lineart_share.lock_render_status);
@@ -3581,12 +3587,6 @@ void ED_lineart_compute_feature_lines_background(Depsgraph *dg, const int show_f
BLI_task_pool_push(tp, (TaskRunFunction)lineart_compute_feature_lines_worker, flw, true, NULL);
}
-static bool lineart_camera_exists(bContext *c)
-{
- Scene *scene = CTX_data_scene(c);
- return scene->camera ? true : false;
-}
-
/* Grease Pencil bindings */
static void lineart_gpencil_notify_targets(Depsgraph *dg)
@@ -3605,27 +3605,7 @@ static void lineart_gpencil_notify_targets(Depsgraph *dg)
DEG_OBJECT_ITER_END;
}
-/* returns flags from LineartEdgeFlag */
-static int lineart_object_line_types(Object *ob)
-{
- ObjectLineart *obl = &ob->lineart;
- int result = 0;
- if (obl->contour.use) {
- result |= LRT_EDGE_FLAG_CONTOUR;
- }
- if (obl->crease.use) {
- result |= LRT_EDGE_FLAG_CREASE;
- }
- if (obl->material.use) {
- result |= LRT_EDGE_FLAG_MATERIAL;
- }
- if (obl->edge_mark.use) {
- result |= LRT_EDGE_FLAG_EDGE_MARK;
- }
- return result;
-}
-
-void ED_lineart_gpencil_generate_from_chain(Depsgraph *depsgraph,
+void ED_lineart_gpencil_generate_from_chain(Depsgraph *UNUSED(depsgraph),
Object *ob,
bGPDlayer *UNUSED(gpl),
bGPDframe *gpf,
@@ -3733,26 +3713,6 @@ void ED_lineart_gpencil_generate_from_chain(Depsgraph *depsgraph,
BLI_spin_unlock(&lineart_share.lock_render_status);
}
-static void lineart_gpencil_clear_flags(Depsgraph *dg, int frame)
-{
- DEG_OBJECT_ITER_BEGIN (dg,
- ob,
- DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | DEG_ITER_OBJECT_FLAG_VISIBLE |
- DEG_ITER_OBJECT_FLAG_DUPLI | DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET) {
- if (ob->type == OB_GPENCIL) {
- bGPdata *gpd = ((Object *)ob->id.orig_id)->data;
- LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
- bGPDframe *gpf = BKE_gpencil_layer_frame_find(gpl, frame);
- if (gpf == NULL) {
- continue;
- }
- gpf->flag &= ~GP_FRAME_LRT_CLEARED;
- }
- }
- }
- DEG_OBJECT_ITER_END;
-}
-
void ED_lineart_gpencil_generate_strokes_direct(Depsgraph *depsgraph,
Object *ob,
bGPDlayer *gpl,
@@ -3875,6 +3835,9 @@ static int lineart_gpencil_bake_strokes_exec(bContext *C, wmOperator *UNUSED(op)
else if (rb->fuzzy_intersections) {
use_types = lmd->line_types | LRT_EDGE_FLAG_INTERSECTION;
}
+ else {
+ use_types = lmd->line_types;
+ }
ED_lineart_gpencil_generate_strokes_direct(
dg,
@@ -3889,7 +3852,7 @@ static int lineart_gpencil_bake_strokes_exec(bContext *C, wmOperator *UNUSED(op)
lmd->target_material ?
BKE_gpencil_object_material_index_get(ob, lmd->target_material) :
0,
- lmd->line_types,
+ use_types,
lmd->thickness,
lmd->opacity,
lmd->pre_sample_length);
@@ -3914,26 +3877,6 @@ static int lineart_gpencil_bake_strokes_exec(bContext *C, wmOperator *UNUSED(op)
return OPERATOR_FINISHED;
}
-static bool lineart_active_is_gpencil_object(bContext *C)
-{
- Object *ob = CTX_data_active_object(C);
- return ob->type == OB_GPENCIL;
-}
-
-static bool lineart_active_is_source_object(bContext *C)
-{
- Object *ob = CTX_data_active_object(C);
- if (ob->type != OB_MESH) {
- return false;
- }
- else {
- if (ob->lineart.usage == OBJECT_FEATURE_LINE_INCLUDE) {
- return true;
- }
- }
- return false;
-}
-
/* Blocking 1 frame update */
void SCENE_OT_lineart_update_strokes(wmOperatorType *ot)
{
More information about the Bf-blender-cvs
mailing list