[Bf-blender-cvs] [dc5389f5148] temp-lanpr-staging: LANPR: Fix flag usages. Removed custom types.

YimingWu noreply at git.blender.org
Wed Sep 4 07:37:05 CEST 2019


Commit: dc5389f5148514d7e48711ef35197e078959ef62
Author: YimingWu
Date:   Wed Sep 4 13:36:25 2019 +0800
Branches: temp-lanpr-staging
https://developer.blender.org/rBdc5389f5148514d7e48711ef35197e078959ef62

LANPR: Fix flag usages. Removed custom types.

===================================================================

M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/draw/engines/lanpr/lanpr_cpu.c
M	source/blender/draw/engines/lanpr/lanpr_engine.c
M	source/blender/editors/include/ED_lanpr.h
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/rna_lanpr.c
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 30807fe2b48..65d2e0d15c4 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1025,15 +1025,12 @@ void BKE_scene_init(Scene *sce)
 
   sce->lanpr.crease_threshold = 0.7;
 
-  sce->lanpr.enable_intersections = 1;
-
   sce->lanpr.line_color[0] = 1;
   sce->lanpr.line_color[1] = 1;
   sce->lanpr.line_color[2] = 1;
   sce->lanpr.line_color[3] = 1;
 
-  sce->lanpr.enable_intersections = 1;
-  sce->lanpr.enable_chaining = 1;
+  sce->lanpr.flags |= (LANPR_USE_CHAINING | LANPR_USE_INTERSECTIONS);
   sce->lanpr.chaining_image_threshold = 0.01;
   sce->lanpr.chaining_geometry_threshold = 0.1;
 }
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index e150cc0a6ea..f01ce71b513 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -1909,7 +1909,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
 
         scene->lanpr.crease_threshold = 0.7;
 
-        scene->lanpr.enable_intersections = 1;
+        scene->lanpr.flags |= (LANPR_USE_CHAINING | LANPR_USE_INTERSECTIONS);
 
         scene->lanpr.line_color[0] = 0.39;
         scene->lanpr.line_color[1] = 0.12;
@@ -3623,12 +3623,9 @@ 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.enable_intersections = 1;
-
       zero_v4(sce->lanpr.line_color);
 
-      sce->lanpr.enable_intersections = 1;
-      sce->lanpr.enable_chaining = 1;
+      sce->lanpr.flags |= (LANPR_USE_CHAINING | LANPR_USE_INTERSECTIONS);
       sce->lanpr.chaining_image_threshold = 0.01f;
       sce->lanpr.chaining_geometry_threshold = 0.0f;
 
diff --git a/source/blender/draw/engines/lanpr/lanpr_cpu.c b/source/blender/draw/engines/lanpr/lanpr_cpu.c
index 9a4ecd6b3d6..e8b7365df24 100644
--- a/source/blender/draw/engines/lanpr/lanpr_cpu.c
+++ b/source/blender/draw/engines/lanpr/lanpr_cpu.c
@@ -128,7 +128,7 @@ void ED_lanpr_rebuild_all_command(SceneLANPR *lanpr)
     return;
   }
 
-  if (lanpr->enable_chaining) {
+  if (lanpr->flags & LANPR_USE_CHAINING) {
     lanpr_chain_generate_draw_command(lanpr_share.render_buffer_shared);
   }
   else {
@@ -243,7 +243,8 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render)
       camzoom = 1.0f;
     }
 
-    if (lanpr->enable_chaining && lanpr_share.render_buffer_shared->chain_draw_batch) {
+    if ((lanpr->flags & LANPR_USE_CHAINING) &&
+        lanpr_share.render_buffer_shared->chain_draw_batch) {
       for (ll = lanpr->line_layers.last; ll; ll = ll->prev) {
         LANPR_RenderBuffer *rb;
         psl->software_pass = DRW_pass_create("Software Render Preview",
@@ -372,7 +373,7 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render)
         DRW_draw_pass(psl->software_pass);
       }
     }
-    else if (!lanpr->enable_chaining) {
+    else if (!(lanpr->flags & LANPR_USE_CHAINING)) {
       for (ll = lanpr->line_layers.last; ll; ll = ll->prev) {
         if (ll->batch) {
           psl->software_pass = DRW_pass_create("Software Render Preview",
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 755a2d76527..c582c0b4ae2 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -317,24 +317,29 @@ static void lanpr_cache_init(void *vedata)
         stl->g_data->dpix_preview_shgrp, "viewport", stl->g_data->dpix_viewport, 1);
     DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp,
                              "contour_color",
-                             ll->use_same_style ? ll->color : ll->contour.color,
+                             (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ? ll->color :
+                                                                             ll->contour.color,
                              1);
     DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp,
                              "crease_color",
-                             ll->use_same_style ? ll->color : ll->crease.color,
-                             1);
-    DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp,
-                             "material_color",
-                             ll->use_same_style ? ll->color : ll->material_separate.color,
+                             (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ? ll->color :
+                                                                             ll->crease.color,
                              1);
+    DRW_shgroup_uniform_vec4(
+        stl->g_data->dpix_preview_shgrp,
+        "material_color",
+        (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ? ll->color : ll->material_separate.color,
+        1);
     DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp,
                              "edge_mark_color",
-                             ll->use_same_style ? ll->color : ll->edge_mark.color,
-                             1);
-    DRW_shgroup_uniform_vec4(stl->g_data->dpix_preview_shgrp,
-                             "intersection_color",
-                             ll->use_same_style ? ll->color : ll->intersection.color,
+                             (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ? ll->color :
+                                                                             ll->edge_mark.color,
                              1);
+    DRW_shgroup_uniform_vec4(
+        stl->g_data->dpix_preview_shgrp,
+        "intersection_color",
+        (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ? ll->color : ll->intersection.color,
+        1);
     static float use_background_color[4];
     copy_v3_v3(use_background_color, &scene->world->horr);
     use_background_color[3] = scene->r.alphamode ? 0.0f : 1.0f;
@@ -359,26 +364,32 @@ static void lanpr_cache_init(void *vedata)
     static float unit_thickness = 1.0f;
     DRW_shgroup_uniform_float(
         stl->g_data->dpix_preview_shgrp, "line_thickness", &ll->thickness, 1);
-    DRW_shgroup_uniform_float(stl->g_data->dpix_preview_shgrp,
-                              "line_thickness_contour",
-                              ll->use_same_style ? &unit_thickness : &ll->contour.thickness,
-                              1);
-    DRW_shgroup_uniform_float(stl->g_data->dpix_preview_shgrp,
-                              "line_thickness_crease",
-                              ll->use_same_style ? &unit_thickness : &ll->crease.thickness,
-                              1);
+    DRW_shgroup_uniform_float(
+        stl->g_data->dpix_preview_shgrp,
+        "line_thickness_contour",
+        (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ? &unit_thickness : &ll->contour.thickness,
+        1);
+    DRW_shgroup_uniform_float(
+        stl->g_data->dpix_preview_shgrp,
+        "line_thickness_crease",
+        (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ? &unit_thickness : &ll->crease.thickness,
+        1);
     DRW_shgroup_uniform_float(stl->g_data->dpix_preview_shgrp,
                               "line_thickness_material",
-                              ll->use_same_style ? &unit_thickness :
-                                                   &ll->material_separate.thickness,
-                              1);
-    DRW_shgroup_uniform_float(stl->g_data->dpix_preview_shgrp,
-                              "line_thickness_edge_mark",
-                              ll->use_same_style ? &unit_thickness : &ll->edge_mark.thickness,
+                              (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ?
+                                  &unit_thickness :
+                                  &ll->material_separate.thickness,
                               1);
+    DRW_shgroup_uniform_float(
+        stl->g_data->dpix_preview_shgrp,
+        "line_thickness_edge_mark",
+        (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ? &unit_thickness : &ll->edge_mark.thickness,
+        1);
     DRW_shgroup_uniform_float(stl->g_data->dpix_preview_shgrp,
                               "line_thickness_intersection",
-                              ll->use_same_style ? &unit_thickness : &ll->intersection.thickness,
+                              (ll->flags & LANPR_LINE_LAYER_USE_SAME_STYLE) ?
+                                  &unit_thickness :
+                                  &ll->intersection.thickness,
                               1);
     DRW_shgroup_uniform_float(
         stl->g_data->dpix_preview_shgrp, "z_near", &stl->g_data->dpix_znear, 1);
@@ -387,9 +398,12 @@ static void lanpr_cache_init(void *vedata)
 
     ED_lanpr_calculate_normal_object_vector(ll, normal_object_direction);
 
+    static int normal_effect_inverse;
+    normal_effect_inverse = (ll->flags & LANPR_LINE_LAYER_NORMAL_INVERSE);
+
     DRW_shgroup_uniform_int(stl->g_data->dpix_preview_shgrp, "normal_mode", &ll->normal_mode, 1);
     DRW_shgroup_uniform_int(
-        stl->g_data->dpix_preview_shgrp, "normal_effect_inverse", &ll->normal_effect_inverse, 1);
+        stl->g_data->dpix_preview_shgrp, "normal_effect_inverse", &normal_effect_inverse, 1);
     DRW_shgroup_uniform_float(
         stl->g_data->dpix_preview_shgrp, "normal_ramp_begin", &ll->normal_ramp_begin, 1);
     DRW_shgroup_uniform_float(
@@ -422,7 +436,7 @@ static void lanpr_cache_init(void *vedata)
 
   /* Intersection cache must be calculated before drawing. */
   int updated = 0;
-  if (draw_ctx->scene->lanpr.auto_update &&
+  if ((draw_ctx->scene->lanpr.flags & LANPR_AUTO_UPDATE) &&
       (!lanpr_share.render_buffer_shared ||
        lanpr_share.render_buffer_shared->cached_for_frame != draw_ctx->scene->r.cfra)) {
     if (draw_ctx->scene->lanpr.master_mode == LANPR_MASTER_MODE_SOFTWARE) {
@@ -664,7 +678,7 @@ static void lanpr_render_to_image(void *vedata,
   RE_engine_update_stats(engine, NULL, "LANPR: Initializing");
 
   if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE ||
-      (lanpr->master_mode == LANPR_M

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list