Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2015-04-29 17:18:18 +0300
committerDalai Felinto <dfelinto@gmail.com>2015-04-29 17:18:22 +0300
commitb033736eb7ea65d47bc3cb13605df176c490efe1 (patch)
treea586bf6439a119a2621e23f63349419c1f2dfd2d /source/blender/render/intern/source/render_result.c
parent3acc1ba49c95786841608c0b516a7fd0879bad76 (diff)
Multi-View: new util functions RE_RenderViewGetById() and RE_RenderViewGetByName()
Both functions try to find a valid RenderView and if they can't they fallback to the first RenderView of the RenderResult
Diffstat (limited to 'source/blender/render/intern/source/render_result.c')
-rw-r--r--source/blender/render/intern/source/render_result.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index f3a8dfde299..1668b11bd20 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -1507,7 +1507,7 @@ ImBuf *render_result_rect_to_ibuf(RenderResult *rr, RenderData *rd, const int vi
void render_result_rect_from_ibuf(RenderResult *rr, RenderData *UNUSED(rd), ImBuf *ibuf, const int view_id)
{
- RenderView *rv = BLI_findlink(&rr->views, view_id);
+ RenderView *rv = RE_RenderViewGetById(rr, view_id);
if (ibuf->rect_float) {
if (!rv->rectf)
@@ -1536,7 +1536,7 @@ void render_result_rect_from_ibuf(RenderResult *rr, RenderData *UNUSED(rd), ImBu
void render_result_rect_fill_zero(RenderResult *rr, const int view_id)
{
- RenderView *rv = BLI_findlink(&rr->views, view_id);
+ RenderView *rv = RE_RenderViewGetById(rr, view_id);
if (rv->rectf)
memset(rv->rectf, 0, 4 * sizeof(float) * rr->rectx * rr->recty);
@@ -1592,6 +1592,18 @@ bool RE_RenderResult_is_stereo(RenderResult *res)
return true;
}
+RenderView *RE_RenderViewGetById(RenderResult *res, const int view_id)
+{
+ RenderView *rv = BLI_findlink(&res->views, view_id);
+ return rv ? rv : res->views.first;
+}
+
+RenderView *RE_RenderViewGetByName(RenderResult *res, const char *viewname)
+{
+ RenderView *rv = BLI_findstring(&res->views, viewname, offsetof(RenderView, name));
+ return rv ? rv : res->views.first;
+}
+
void RE_RenderViewSetRectf(RenderResult *res, const int view_id, float *rect)
{
RenderView *rv = BLI_findlink(&res->views, view_id);