diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-09-29 18:51:00 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-09-29 20:33:37 +0400 |
commit | 40fb21aafee220020f13baaed5fe9bfef9bb2c49 (patch) | |
tree | 16205da7bb825b951db7ed8a5893a704255f0d6b /source/blender | |
parent | 927099ceb843403a7b3b2487696adbdcaa5807a5 (diff) |
Fix BI viewport render crash happening with zero render border area
This is better to be backported to the 2.72.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 2a07474a5dd..7b43c77537f 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -699,25 +699,27 @@ static void render_result_rescale(Render *re) RR_USE_MEM, RR_ALL_LAYERS); - dst_rectf = re->result->rectf; - if (dst_rectf == NULL) { - RenderLayer *rl; - rl = render_get_active_layer(re, re->result); - if (rl != NULL) { - dst_rectf = rl->rectf; + if (re->result != NULL) { + dst_rectf = re->result->rectf; + if (dst_rectf == NULL) { + RenderLayer *rl; + rl = render_get_active_layer(re, re->result); + if (rl != NULL) { + dst_rectf = rl->rectf; + } } - } - scale_x = (float) result->rectx / re->result->rectx; - scale_y = (float) result->recty / re->result->recty; - for (x = 0; x < re->result->rectx; ++x) { - for (y = 0; y < re->result->recty; ++y) { - int src_x = x * scale_x, - src_y = y * scale_y; - int dst_index = y * re->result->rectx + x, - src_index = src_y * result->rectx + src_x; - copy_v4_v4(dst_rectf + dst_index * 4, - src_rectf + src_index * 4); + scale_x = (float) result->rectx / re->result->rectx; + scale_y = (float) result->recty / re->result->recty; + for (x = 0; x < re->result->rectx; ++x) { + for (y = 0; y < re->result->recty; ++y) { + int src_x = x * scale_x, + src_y = y * scale_y; + int dst_index = y * re->result->rectx + x, + src_index = src_y * result->rectx + src_x; + copy_v4_v4(dst_rectf + dst_index * 4, + src_rectf + src_index * 4); + } } } } |