[Bf-blender-cvs] [92780ac] multiview: From review: b_rlay.passes.find_by_type(type, view)

Dalai Felinto noreply at git.blender.org
Thu Mar 19 20:52:03 CET 2015


Commit: 92780acaebaa6d5f21ad390f51d0730eaf5b1279
Author: Dalai Felinto
Date:   Thu Mar 19 20:51:46 2015 +0100
Branches: multiview
https://developer.blender.org/rB92780acaebaa6d5f21ad390f51d0730eaf5b1279

>From review: b_rlay.passes.find_by_type(type, view)

This is working, but the code that requires this is not working yet. So it will not be committed together

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

M	source/blender/makesrna/intern/rna_render.c

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

diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index 777242f..3af5dee 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -418,6 +418,18 @@ static PointerRNA rna_BakePixel_next_get(PointerRNA *ptr)
 	return rna_pointer_inherit_refine(ptr, &RNA_BakePixel, bp + 1);
 }
 
+static RenderPass *rna_RenderPass_find_by_type(RenderLayer *rl, int passtype, const char *view)
+{
+	RenderPass *rp;
+	for (rp = rl->passes.first; rp; rp = rp->next) {
+		if (rp->passtype == passtype) {
+			if (STREQ(rp->view, view))
+				return rp;
+		}
+	}
+	return NULL;
+}
+
 #else /* RNA_RUNTIME */
 
 static void rna_def_render_engine(BlenderRNA *brna)
@@ -725,6 +737,29 @@ static void rna_def_render_view(BlenderRNA *brna)
 	RNA_define_verify_sdna(1);
 }
 
+static void rna_def_render_passes(BlenderRNA *brna, PropertyRNA *cprop)
+{
+	StructRNA *srna;
+
+	FunctionRNA *func;
+	PropertyRNA *parm;
+
+	RNA_def_property_srna(cprop, "RenderPasses");
+	srna = RNA_def_struct(brna, "RenderPasses", NULL);
+	RNA_def_struct_sdna(srna, "RenderLayer");
+	RNA_def_struct_ui_text(srna, "Render Passes", "Collection of render passes");
+
+	func = RNA_def_function(srna, "find_by_type", "rna_RenderPass_find_by_type");
+	RNA_def_function_ui_description(func, "Get the render pass for a given type and view");
+	parm = RNA_def_enum(func, "pass_type", render_pass_type_items, SCE_PASS_COMBINED, "Pass", "");
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	parm = RNA_def_string(func, "view", NULL, 0, "View", "Render view to get pass from");  /* NULL ok here */
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	parm = RNA_def_pointer(func, "render_pass", "RenderPass", "", "The matching render pass");
+	RNA_def_function_return(func, parm);
+
+}
+
 static void rna_def_render_layer(BlenderRNA *brna)
 {
 	StructRNA *srna;
@@ -754,6 +789,7 @@ static void rna_def_render_layer(BlenderRNA *brna)
 	RNA_def_property_collection_funcs(prop, "rna_RenderLayer_passes_begin", "rna_iterator_listbase_next",
 	                                  "rna_iterator_listbase_end", "rna_iterator_listbase_get",
 	                                  NULL, NULL, NULL, NULL);
+	rna_def_render_passes(brna, prop);
 
 #if 0
 	/* XXX MV store active in RL or pass as argument




More information about the Bf-blender-cvs mailing list