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:
authorJeroen Bakker <jeroen@blender.org>2019-12-04 17:02:31 +0300
committerJeroen Bakker <jeroen@blender.org>2019-12-04 17:04:43 +0300
commit186d74020e50f894982fb678434716dc2646171b (patch)
tree76bdc603fcc3634b43cfcbd3c49825c55e843c18 /source/blender/editors/render/render_opengl.c
parent10ab0d66e8112213884dd750869bba7a77299fe2 (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.
Diffstat (limited to 'source/blender/editors/render/render_opengl.c')
-rw-r--r--source/blender/editors/render/render_opengl.c10
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);