diff options
Diffstat (limited to 'source/blender/render/intern/source/envmap.c')
-rw-r--r-- | source/blender/render/intern/source/envmap.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/render/intern/source/envmap.c b/source/blender/render/intern/source/envmap.c index f0268836104..23d021db848 100644 --- a/source/blender/render/intern/source/envmap.c +++ b/source/blender/render/intern/source/envmap.c @@ -70,7 +70,7 @@ static void envmap_split_ima(EnvMap *env, ImBuf *ibuf) BLI_lock_thread(LOCK_IMAGE); if (env->cube[1] == NULL) { - BKE_free_envmapdata(env); + BKE_texture_envmap_free_data(env); dx = ibuf->y; dx /= 2; @@ -141,6 +141,7 @@ static Render *envmap_render_copy(Render *re, EnvMap *env) envre->r = re->r; envre->r.mode &= ~(R_BORDER | R_PANORAMA | R_ORTHO | R_MBLUR); BLI_listbase_clear(&envre->r.layers); + BLI_listbase_clear(&envre->r.views); envre->r.filtertype = 0; envre->r.tilex = envre->r.xsch / 2; envre->r.tiley = envre->r.ysch / 2; @@ -495,9 +496,11 @@ static void render_envmap(Render *re, EnvMap *env) RenderLayer *rl = envre->result->layers.first; int y; float *alpha; - + float *rect; + + rect = RE_RenderLayerGetPass(rl, SCE_PASS_COMBINED, re->viewname); ibuf = IMB_allocImBuf(envre->rectx, envre->recty, 24, IB_rect | IB_rectfloat); - memcpy(ibuf->rect_float, rl->rectf, ibuf->channels * ibuf->x * ibuf->y * sizeof(float)); + memcpy(ibuf->rect_float, rect, ibuf->channels * ibuf->x * ibuf->y * sizeof(float)); /* envmap renders without alpha */ alpha = ibuf->rect_float + 3; @@ -511,7 +514,7 @@ static void render_envmap(Render *re, EnvMap *env) } - if (re->test_break(re->tbh)) BKE_free_envmapdata(env); + if (re->test_break(re->tbh)) BKE_texture_envmap_free_data(env); else { if (envre->r.mode & R_OSA) env->ok = ENV_OSA; else env->ok = ENV_NORMAL; @@ -572,13 +575,13 @@ void make_envmaps(Render *re) if (env->ok) { /* free when OSA, and old one isn't OSA */ if ((re->r.mode & R_OSA) && env->ok == ENV_NORMAL) - BKE_free_envmapdata(env); + BKE_texture_envmap_free_data(env); /* free when size larger */ else if (env->lastsize < re->r.size) - BKE_free_envmapdata(env); + BKE_texture_envmap_free_data(env); /* free when env is in recalcmode */ else if (env->recalc) - BKE_free_envmapdata(env); + BKE_texture_envmap_free_data(env); } if (env->ok == 0 && depth == 0) env->recalc = 1; |