Fix T53874: OpenGL render problem with OpenEXR in 2.8 with float buffers.
This commit is contained in:
@@ -437,8 +437,6 @@ void RE_AcquireResultImage(Render *re, RenderResult *rr, const int view_id)
|
||||
rr->rectz = rv->rectz;
|
||||
rr->rect32 = rv->rect32;
|
||||
|
||||
rr->have_combined = (rv->rectf != NULL);
|
||||
|
||||
/* active layer */
|
||||
rl = render_get_active_layer(re, re->result);
|
||||
|
||||
@@ -839,7 +837,7 @@ void RE_InitState(Render *re, Render *source, RenderData *rd,
|
||||
re->result = MEM_callocN(sizeof(RenderResult), "new render result");
|
||||
re->result->rectx = re->rectx;
|
||||
re->result->recty = re->recty;
|
||||
render_result_view_new(re->result, "new temporary view");
|
||||
render_result_view_new(re->result, "");
|
||||
}
|
||||
|
||||
if (re->r.scemode & R_VIEWPORT_PREVIEW)
|
||||
|
||||
@@ -80,6 +80,8 @@ static void render_result_views_free(RenderResult *res)
|
||||
|
||||
MEM_freeN(rv);
|
||||
}
|
||||
|
||||
res->have_combined = false;
|
||||
}
|
||||
|
||||
void render_result_free(RenderResult *res)
|
||||
@@ -1356,6 +1358,8 @@ void RE_render_result_rect_from_ibuf(RenderResult *rr, RenderData *UNUSED(rd), I
|
||||
RenderView *rv = RE_RenderViewGetById(rr, view_id);
|
||||
|
||||
if (ibuf->rect_float) {
|
||||
rr->have_combined = true;
|
||||
|
||||
if (!rv->rectf)
|
||||
rv->rectf = MEM_mallocN(4 * sizeof(float) * rr->rectx * rr->recty, "render_seq rectf");
|
||||
|
||||
@@ -1366,6 +1370,8 @@ void RE_render_result_rect_from_ibuf(RenderResult *rr, RenderData *UNUSED(rd), I
|
||||
MEM_SAFE_FREE(rv->rect32);
|
||||
}
|
||||
else if (ibuf->rect) {
|
||||
rr->have_combined = true;
|
||||
|
||||
if (!rv->rect32)
|
||||
rv->rect32 = MEM_mallocN(sizeof(int) * rr->rectx * rr->recty, "render_seq rect");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user