[Bf-blender-cvs] [c123b31db37] temp-render-depsgraph: Move render ViewLayer iterator outside render_result_new
Dalai Felinto
noreply at git.blender.org
Mon Feb 26 15:37:30 CET 2018
Commit: c123b31db37588e375971b2ce10c2ad5f9176ab6
Author: Dalai Felinto
Date: Mon Feb 26 10:43:24 2018 -0300
Branches: temp-render-depsgraph
https://developer.blender.org/rBc123b31db37588e375971b2ce10c2ad5f9176ab6
Move render ViewLayer iterator outside render_result_new
===================================================================
M source/blender/render/intern/include/render_result.h
M source/blender/render/intern/source/render_result.c
===================================================================
diff --git a/source/blender/render/intern/include/render_result.h b/source/blender/render/intern/include/render_result.h
index 8d293c938c7..b2c5758f506 100644
--- a/source/blender/render/intern/include/render_result.h
+++ b/source/blender/render/intern/include/render_result.h
@@ -117,5 +117,28 @@ void render_result_views_shallowcopy(struct RenderResult *dst, struct RenderResu
void render_result_views_shallowdelete(struct RenderResult *rr);
bool render_result_has_views(struct RenderResult *rr);
+#define FOREACH_VIEW_LAYER_TO_RENDER(re_, iter_) \
+{ \
+ int nr; \
+ ViewLayer *iter_; \
+ for (nr = 0, iter_ = (re_)->view_layers.first; \
+ iter_ != NULL; \
+ iter_ = iter_->next, nr++) \
+ { \
+ if ((re_)->r.scemode & R_SINGLE_LAYER) { \
+ if (nr != re->active_view_layer) { \
+ continue; \
+ } \
+ } \
+ else { \
+ if ((iter_->flag & VIEW_LAYER_RENDER) == 0) { \
+ continue; \
+ } \
+ }
+
+#define FOREACH_VIEW_LAYER_TO_RENDER_END \
+ } \
+}
+
#endif /* __RENDER_RESULT_H__ */
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index f97c8fb0b06..126d675a491 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -266,9 +266,7 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
RenderResult *rr;
RenderLayer *rl;
RenderView *rv;
- ViewLayer *view_layer;
int rectx, recty;
- int nr;
rectx = BLI_rcti_size_x(partrct);
recty = BLI_rcti_size_y(partrct);
@@ -296,23 +294,14 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
render_result_views_new(rr, &re->r);
/* check renderdata for amount of layers */
- for (nr = 0, view_layer = re->view_layers.first; view_layer; view_layer = view_layer->next, nr++) {
-
- if (layername && layername[0])
- if (!STREQ(view_layer->name, layername))
- continue;
-
- if (re->r.scemode & R_SINGLE_LAYER) {
- if (nr != re->active_view_layer) {
- continue;
- }
- }
- else {
- if ((view_layer->flag & VIEW_LAYER_RENDER) == 0) {
+ FOREACH_VIEW_LAYER_TO_RENDER(re, view_layer)
+ {
+ if (layername && layername[0]) {
+ if (!STREQ(view_layer->name, layername)) {
continue;
}
}
-
+
rl = MEM_callocN(sizeof(RenderLayer), "new render layer");
BLI_addtail(&rr->layers, rl);
@@ -417,6 +406,8 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
#undef RENDER_LAYER_ADD_PASS_SAFE
}
}
+ FOREACH_VIEW_LAYER_TO_RENDER_END
+
/* sss, previewrender and envmap don't do layers, so we make a default one */
if (BLI_listbase_is_empty(&rr->layers) && !(layername && layername[0])) {
rl = MEM_callocN(sizeof(RenderLayer), "new render layer");
More information about the Bf-blender-cvs
mailing list