[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