[Bf-blender-cvs] [17656a6e1fe] temp-lanpr-staging: LANPR: Use flag for enable field.
YimingWu
noreply at git.blender.org
Fri Aug 16 03:27:45 CEST 2019
Commit: 17656a6e1fedbc344aa1492d83257262bcfca776
Author: YimingWu
Date: Mon Aug 12 09:12:09 2019 +0800
Branches: temp-lanpr-staging
https://developer.blender.org/rB17656a6e1fedbc344aa1492d83257262bcfca776
LANPR: Use flag for enable field.
===================================================================
M source/blender/blenkernel/intern/scene.c
M source/blender/blenloader/intern/versioning_280.c
M source/blender/editors/lanpr/lanpr_cpu.c
M source/blender/editors/space_buttons/buttons_context.c
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/intern/rna_scene.c
===================================================================
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 3440c8dfb69..d73843663fd 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1017,13 +1017,7 @@ void BKE_scene_init(Scene *sce)
/* SceneLANPR */
sce->lanpr.crease_threshold = 0.7;
-
- sce->lanpr.line_thickness = 1.5;
- sce->lanpr.depth_clamp = 0.001;
- sce->lanpr.depth_strength = 800;
- sce->lanpr.normal_clamp = 2;
- sce->lanpr.normal_strength = 10;
-
+
sce->lanpr.enable_intersections = 1;
sce->lanpr.line_color[0] = 1;
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index cc52bb8f2fd..c5880eed175 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -1796,12 +1796,6 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
scene->lanpr.crease_threshold = 0.7;
- scene->lanpr.line_thickness = 1.5;
- scene->lanpr.depth_clamp = 0.001;
- scene->lanpr.depth_strength = 800;
- scene->lanpr.normal_clamp = 2;
- scene->lanpr.normal_strength = 10;
-
scene->lanpr.enable_intersections = 1;
scene->lanpr.line_color[0] = 0.39;
@@ -3516,12 +3510,6 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
for (Scene *sce = bmain->scenes.first; sce; sce = sce->id.next) {
sce->lanpr.crease_threshold = 0.7;
- sce->lanpr.line_thickness = 1.5;
- sce->lanpr.depth_clamp = 0.001;
- sce->lanpr.depth_strength = 800;
- sce->lanpr.normal_clamp = 2;
- sce->lanpr.normal_strength = 10;
-
sce->lanpr.enable_intersections = 1;
zero_v4(sce->lanpr.line_color);
diff --git a/source/blender/editors/lanpr/lanpr_cpu.c b/source/blender/editors/lanpr/lanpr_cpu.c
index 4c1c254aea0..8d4ef34d51f 100644
--- a/source/blender/editors/lanpr/lanpr_cpu.c
+++ b/source/blender/editors/lanpr/lanpr_cpu.c
@@ -3756,7 +3756,7 @@ int ED_lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, int intersecto
SceneLANPR *lanpr = &s->lanpr;
int is_lanpr_engine = !strcmp(s->r.engine, RE_engine_id_BLENDER_LANPR);
- if (!is_lanpr_engine && !lanpr->enabled) {
+ if (!is_lanpr_engine && (lanpr->flag & LANPR_ENABLED)==0) {
return OPERATOR_CANCELLED;
}
@@ -3844,7 +3844,7 @@ static int lanpr_compute_feature_lines_exec(struct bContext *C, struct wmOperato
int result;
int is_lanpr_engine = !strcmp(scene->r.engine, RE_engine_id_BLENDER_LANPR);
- if (!is_lanpr_engine && !lanpr->enabled) {
+ if (!is_lanpr_engine && (lanpr->flag & LANPR_ENABLED)==0) {
return OPERATOR_CANCELLED;
}
@@ -3899,7 +3899,7 @@ bool ED_lanpr_dpix_shader_error()
}
bool ED_lanpr_disable_edge_splits(Scene *s)
{
- return (s->lanpr.enabled && s->lanpr.disable_edge_splits);
+ return ((s->lanpr.flag & LANPR_ENABLED) && s->lanpr.disable_edge_splits);
}
/* GPencil bindings */
@@ -4283,7 +4283,7 @@ void OBJECT_OT_lanpr_update_gp_source(struct wmOperatorType *ot)
void ED_lanpr_post_frame_update_external(Scene *s, Depsgraph *dg)
{
- if (!s->lanpr.enabled || !s->lanpr.auto_update) {
+ if ((s->lanpr.flag & LANPR_ENABLED)==0 || !s->lanpr.auto_update) {
return;
}
if (strcmp(s->r.engine, RE_engine_id_BLENDER_LANPR)) {
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index bd7c8b8dbbd..2a28dc56607 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -604,7 +604,7 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma
found = buttons_context_path_collection(path, window);
break;
case BCONTEXT_LANPR:
- if (scene && (scene->lanpr.enabled || !strcmp(scene->r.engine, "BLENDER_LANPR"))) {
+ if (scene && ((scene->lanpr.flag & LANPR_ENABLED) || !strcmp(scene->r.engine, "BLENDER_LANPR"))) {
found = buttons_context_path_object(path);
}
else {
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index a6544a7f950..590a46718dd 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1648,31 +1648,32 @@ typedef enum LANPR_PostProcessingStatus {
LANPR_POST_PROCESSING_ENABLED = 1,
} LANPR_PostProcessingStatus;
+typedef enum LANPR_MainFlags{
+ LANPR_ENABLED = 0,
+ /* For LANPR->GP to update automatically. */
+ LANPR_AUTO_UPDATE = (1<<0),
+ LANPR_SAME_TAPER = (1<<2),
+ /* Edge split modifier will cause problems in LANPR. */
+ LANPR_DISABLE_EDGE_SPLITS = (1<<3),
+ LANPR_USE_CHAINING = (1<<4),
+ LANPR_USE_INTERSECTIONS = (1<<5),
+ /* Overwrite existing strokes in this frame. */
+ LANPR_GPENCIL_OVERWRITE = (1<<6),
+}LANPR_MainFlags;
+
typedef struct SceneLANPR {
- int enabled;
- int auto_update; /* for LANPR->GP to update automatically */
+ int flag;
+ int auto_update;
int master_mode; /* LANPR_MasterMode */
- int enable_vector_trace;
- int display_thinning_result;
-
- float depth_clamp;
- float depth_strength;
- float normal_clamp;
- float normal_strength;
-
- float line_thickness;
-
int use_same_taper;
float taper_left_distance;
float taper_left_strength;
float taper_right_distance;
float taper_right_strength;
- int snake_sensitivity;
-
/* shared */
float contour_fade; /* for dpix contour fading,reserved for future usage */
@@ -1686,8 +1687,7 @@ typedef struct SceneLANPR {
float depth_width_curve;
float depth_alpha_influence;
float depth_alpha_curve;
-
- /* edge split modifier will cause problems in LANPR. */
+
int disable_edge_splits;
int gpu_cache_size; /* enum! */
@@ -1703,7 +1703,7 @@ typedef struct SceneLANPR {
float chaining_geometry_threshold;
float chaining_image_threshold;
- /* Overwrite existing strokes in this frame. */
+
int gpencil_overwrite;
} SceneLANPR;
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 3c19c21679b..247f87a0e60 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -7203,6 +7203,7 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
prop = RNA_def_property(srna, "enabled", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_default(prop, 0);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", LANPR_ENABLED);
RNA_def_property_ui_text(prop, "Enabled", "Is LANPR enabled");
RNA_def_property_update(prop, NC_WINDOW, NULL);
@@ -7231,56 +7232,6 @@ static void rna_def_scene_lanpr(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_EDITABLE);
RNA_def_property_update(prop, NC_SCENE, NULL);
- prop = RNA_def_property(srna, "enable_vector_trace", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_items(prop, rna_enum_lanpr_enable_post_processing);
- RNA_def_property_enum_default(prop, LANPR_POST_PROCESSING_DISABLED);
- RNA_def_property_ui_text(
- prop, "Enable Post Processing", "Draw image post processing line or not");
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_update(prop, NC_SCENE, NULL);
-
- prop = RNA_def_property(srna, "display_thinning_result", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_items(prop, rna_enum_lanpr_display_thinning_result);
- RNA_def_property_enum_default(prop, LANPR_POST_PROCESSING_DISABLED);
- RNA_def_property_ui_text(prop, "Display", "Display mode");
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_update(prop, NC_SCENE, NULL);
-
- prop = RNA_def_property(srna, "depth_clamp", PROP_FLOAT, PROP_PERCENTAGE);
- RNA_def_property_float_default(prop, 0.001f);
- RNA_def_property_ui_text(prop, "Depth Clamp", "Depth clamp value for edge extraction");
- RNA_def_property_ui_range(prop, 0.0, 0.01, 0.0001, 5);
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_update(prop, NC_SCENE, NULL);
-
- prop = RNA_def_property(srna, "depth_strength", PROP_FLOAT, PROP_PERCENTAGE);
- RNA_def_property_float_default(prop, 800);
- RNA_def_property_ui_text(prop, "Depth Strength", "Depth strength value for edge extraction");
- RNA_def_property_ui_range(prop, 0, 1000, 10, 2);
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_update(prop, NC_SCENE, NULL);
-
- prop = RNA_def_property(srna, "normal_clamp", PROP_FLOAT, PROP_PERCENTAGE);
- RNA_def_property_float_default(prop, 2);
- RNA_def_property_ui_text(prop, "Normal Clamp", "Normal clamp value for edge extraction");
- RNA_def_property_ui_range(prop, 0, 5, 0.1, 2);
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_update(prop, NC_SCENE, NULL);
-
- prop = RNA_def_property(srna, "normal_strength", PROP_FLOAT, PROP_PERCENTAGE);
- RNA_def_property_float_default(prop, 10);
- RNA_def_property_ui_text(prop, "Normal Strength", "Normal strength value for edge extraction");
- RNA_def_property_ui_range(prop, 0, 20, 1, 2);
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_update(prop, NC_SCENE, NULL);
-
- prop = RNA_def_property(srna, "line_thickness", PROP_FLOAT, PROP_NONE);
- RNA_def_property_float_default(prop, 2.0f);
- RNA_def_property_ui_text(prop, "Line Thickness", "Thickness of extracted line");
- RNA_def_property_ui_range(prop, 0.01f, 10.0f, 0.1, 2);
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_update(prop, NC_SCENE, NULL);
-
prop = RNA_def_property(srna, "depth_width_influence", PROP_FLOAT, PROP_PERCENTAGE);
RNA_def_property_float_default(prop, 0.3f);
RNA_def_property_ui_text(prop, "Width Influence", "Use camera distance to control line width.");
More information about the Bf-blender-cvs
mailing list