[Bf-blender-cvs] [2df4e606e4c] soc-2019-npr: LANPR: Render status.

YimingWu noreply at git.blender.org
Sun Aug 11 05:01:00 CEST 2019


Commit: 2df4e606e4c97d3613b5d5bff224d96697dcfda8
Author: YimingWu
Date:   Sun Aug 11 11:00:29 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB2df4e606e4c97d3613b5d5bff224d96697dcfda8

LANPR: Render status.

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

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/editors/lanpr/lanpr_cpu.c

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_cpu.c b/source/blender/draw/engines/lanpr/lanpr_cpu.c
index 804f45a62c9..61ff0f8e743 100644
--- a/source/blender/draw/engines/lanpr/lanpr_cpu.c
+++ b/source/blender/draw/engines/lanpr/lanpr_cpu.c
@@ -448,3 +448,10 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render)
     DRW_view_set_active(NULL);
   }
 }
+
+void ED_lanpr_update_render_progress(const char* text)
+{
+  if(lanpr_share.re_render){
+    RE_engine_update_stats(lanpr_share.re_render,NULL,text);
+  }
+}
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 02987f53904..4ffac758ea0 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -655,6 +655,10 @@ static void lanpr_render_to_image(void *vedata,
   Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph);
   SceneLANPR *lanpr = &scene->lanpr;
 
+  lanpr_share.re_render = engine;
+
+  RE_engine_update_stats(engine, NULL, "LANPR: Initializing");
+
   if (lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE ||
       (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->enable_intersections)) {
     if (!lanpr_share.render_buffer_shared) {
@@ -719,8 +723,8 @@ static void lanpr_render_to_image(void *vedata,
                              0,
                              rp->rect);
 
-  /*  we don't need to free pass/buffer/texture in the engine's list */
-  /*  lanpr_engine_free(); */
+  /* Must clear to avoid other problems. */
+  lanpr_share.re_render = NULL;
 }
 
 static void lanpr_view_update(void *UNUSED(vedata))
diff --git a/source/blender/editors/include/ED_lanpr.h b/source/blender/editors/include/ED_lanpr.h
index 7eec08fbac3..e5e79626b8e 100644
--- a/source/blender/editors/include/ED_lanpr.h
+++ b/source/blender/editors/include/ED_lanpr.h
@@ -356,6 +356,9 @@ typedef struct LANPR_SharedResource {
   int init_complete;
 
   SpinLock render_flag_lock;
+
+  /** Set before rendering and cleared upon finish! */
+  struct RenderEngine* re_render;
 } LANPR_SharedResource;
 
 #define DBL_TRIANGLE_LIM 1e-8
@@ -852,6 +855,8 @@ struct SceneLANPR;
 
 void ED_lanpr_rebuild_all_command(struct SceneLANPR *lanpr);
 
+void ED_lanpr_update_render_progress(const char* text);
+
 void ED_lanpr_calculate_normal_object_vector(LANPR_LineLayer *ll, float *normal_object_direction);
 
 float ED_lanpr_compute_chain_length(LANPR_RenderLineChain *rlc);
diff --git a/source/blender/editors/lanpr/lanpr_cpu.c b/source/blender/editors/lanpr/lanpr_cpu.c
index 419781f17e4..a2038b331b5 100644
--- a/source/blender/editors/lanpr/lanpr_cpu.c
+++ b/source/blender/editors/lanpr/lanpr_cpu.c
@@ -3774,6 +3774,8 @@ int ED_lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, int intersecto
 
   rb->max_occlusion_level = lanpr_get_max_occlusion_level(depsgraph);
 
+  ED_lanpr_update_render_progress("LANPR: Loading geometries.");
+
   lanpr_make_render_geometry_buffers(depsgraph, rb->scene, rb->scene->camera, rb);
 
   lanpr_compute_view_Vector(rb);
@@ -3787,12 +3789,18 @@ int ED_lanpr_compute_feature_lines_internal(Depsgraph *depsgraph, int intersecto
     lanpr_compute_scene_contours(rb, lanpr->crease_threshold);
   }
 
+  ED_lanpr_update_render_progress("LANPR: Computing intersections.");
+
   lanpr_add_triangles(rb);
 
+  ED_lanpr_update_render_progress("LANPR: Computing line occlusion.");
+
   if (!intersectons_only) {
     lanpr_THREAD_calculate_line_occlusion_begin(rb);
   }
 
+  ED_lanpr_update_render_progress("LANPR: Chaining.");
+
   /* When not using LANPR engine, chaining is forced in order to generate data for GPencil. */
   if ((lanpr->enable_chaining || !is_lanpr_engine) && (!intersectons_only)) {
     float t_image = rb->scene->lanpr.chaining_image_threshold;



More information about the Bf-blender-cvs mailing list