[Bf-blender-cvs] [022fd321265] master: Add ability for render engines to report extra meta data to pipeline

Sergey Sharybin noreply at git.blender.org
Tue Oct 31 15:05:59 CET 2017


Commit: 022fd3212658daff11b8f9105db715b617e3419d
Author: Sergey Sharybin
Date:   Mon Feb 6 17:23:02 2017 +0100
Branches: master
https://developer.blender.org/rB022fd3212658daff11b8f9105db715b617e3419d

Add ability for render engines to report extra meta data to pipeline

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

M	source/blender/makesrna/intern/rna_render.c
M	source/blender/render/extern/include/RE_engine.h
M	source/blender/render/intern/source/external_engine.c

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

diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index cb86dd17d63..d3b3ed51981 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -34,6 +34,7 @@
 #include "BLI_path_util.h"
 
 #include "BKE_scene.h"
+#include "BKE_image.h"
 
 #include "RNA_define.h"
 #include "RNA_enum_types.h"
@@ -401,6 +402,12 @@ static void rna_RenderResult_layers_begin(CollectionPropertyIterator *iter, Poin
 	rna_iterator_listbase_begin(iter, &rr->layers, NULL);
 }
 
+static void rna_RenderResult_stamp_data_add_field(RenderResult *rr, const char *field, const char *value)
+{
+	BKE_render_result_stamp_data(rr, field, value);
+}
+
+
 static void rna_RenderLayer_passes_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
 {
 	RenderLayer *rl = (RenderLayer *)ptr->data;
@@ -574,6 +581,10 @@ static void rna_def_render_engine(BlenderRNA *brna)
 	RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
 	RNA_def_string(func, "layer", NULL, 0, "Layer", "Single layer to add render pass to");  /* NULL ok here */
 
+	func = RNA_def_function(srna, "get_result", "RE_engine_get_result");
+	RNA_def_function_ui_description(func, "Get final result for non-pixel operations");
+	parm = RNA_def_pointer(func, "result", "RenderResult", "Result", "");
+	RNA_def_function_return(func, parm);
 
 	func = RNA_def_function(srna, "test_break", "RE_engine_test_break");
 	RNA_def_function_ui_description(func, "Test if the render operation should been canceled, this is a fast call that should be used regularly for responsiveness");
@@ -784,6 +795,13 @@ static void rna_def_render_result(BlenderRNA *brna)
 	                                "the render result");
 	RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
 
+	func = RNA_def_function(srna, "stamp_data_add_field", "rna_RenderResult_stamp_data_add_field");
+	RNA_def_function_ui_description(func, "Add engine-specific stamp data to the result");
+	parm = RNA_def_string(func, "field", NULL, 1024, "Field", "Name of the stamp field to add");
+	RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
+	parm = RNA_def_string(func, "value", NULL, 1024, "Value", "Value of the stamp data");
+	RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
+
 	RNA_define_verify_sdna(0);
 
 	prop = RNA_def_property(srna, "resolution_x", PROP_INT, PROP_PIXEL);
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h
index 52491673612..321eda0175f 100644
--- a/source/blender/render/extern/include/RE_engine.h
+++ b/source/blender/render/extern/include/RE_engine.h
@@ -142,6 +142,7 @@ struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y,
 void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result);
 void RE_engine_add_pass(RenderEngine *engine, const char *name, int channels, const char *chan_id, const char *layername);
 void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result, int cancel, int highlight, int merge_results);
+struct RenderResult *RE_engine_get_result(struct RenderEngine *engine);
 
 const char *RE_engine_active_view_get(RenderEngine *engine);
 void RE_engine_active_view_set(RenderEngine *engine, const char *viewname);
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index 55a6cbec549..3358d7a855b 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -303,6 +303,11 @@ void RE_engine_end_result(RenderEngine *engine, RenderResult *result, int cancel
 	render_result_free(result);
 }
 
+RenderResult *RE_engine_get_result(RenderEngine *engine)
+{
+	return engine->re->result;
+}
+
 /* Cancel */
 
 int RE_engine_test_break(RenderEngine *engine)



More information about the Bf-blender-cvs mailing list