diff options
author | Jeroen Bakker <jeroen@blender.org> | 2019-12-04 17:02:31 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2019-12-04 17:04:43 +0300 |
commit | 186d74020e50f894982fb678434716dc2646171b (patch) | |
tree | 76bdc603fcc3634b43cfcbd3c49825c55e843c18 | |
parent | 10ab0d66e8112213884dd750869bba7a77299fe2 (diff) |
Fix T72156: Render Viewport Animation Meta Data
When using Render Viewport Animation the meta data
was only stamped when a float buffer was used. In recent changes it was
possible to use a char buffer for the result.
This commit will also support stamping of metadata using a char buffer.
-rw-r--r-- | source/blender/editors/render/render_opengl.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 0d0e183e480..ad5f8ba6834 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -286,6 +286,7 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R const short view_context = (v3d != NULL); bool draw_sky = (scene->r.alphamode == R_ADDSKY); float *rectf = NULL; + unsigned char *rect = NULL; const char *viewname = RE_GetActiveRenderView(oglrender->re); ImBuf *ibuf_result = NULL; @@ -400,7 +401,12 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R if (ibuf_view) { ibuf_result = ibuf_view; - rectf = (float *)ibuf_view->rect_float; + if (ibuf_view->rect_float) { + rectf = ibuf_view->rect_float; + } + else { + rect = (unsigned char *)ibuf_view->rect; + } } else { fprintf(stderr, "%s: failed to get buffer, %s\n", __func__, err_out); @@ -409,7 +415,7 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R if (ibuf_result != NULL) { if ((scene->r.stamp & R_STAMP_ALL) && (scene->r.stamp & R_STAMP_DRAW)) { - BKE_image_stamp_buf(scene, camera, NULL, NULL, rectf, rr->rectx, rr->recty, 4); + BKE_image_stamp_buf(scene, camera, NULL, rect, rectf, rr->rectx, rr->recty, 4); } RE_render_result_rect_from_ibuf(rr, &scene->r, ibuf_result, oglrender->view_id); IMB_freeImBuf(ibuf_result); |