[Bf-blender-cvs] [d8876e78a11] eevee-motionblur-object: Merge branch 'master' into eevee-motionblur-object

Clément Foucault noreply at git.blender.org
Fri Jun 12 15:17:30 CEST 2020


Commit: d8876e78a11dc9b09d41a460c0b294f662a28012
Author: Clément Foucault
Date:   Mon Jun 8 12:17:20 2020 +0200
Branches: eevee-motionblur-object
https://developer.blender.org/rBd8876e78a11dc9b09d41a460c0b294f662a28012

Merge branch 'master' into eevee-motionblur-object

===================================================================



===================================================================

diff --cc source/blender/draw/engines/eevee/eevee_engine.c
index 190364b8487,b698574f9d7..2684f64acee
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@@ -421,59 -421,8 +421,59 @@@ static void eevee_render_to_image(void 
                                    struct RenderLayer *render_layer,
                                    const rcti *rect)
  {
 +  EEVEE_Data *ved = (EEVEE_Data *)vedata;
    const DRWContextState *draw_ctx = DRW_context_state_get();
  
 +  if (EEVEE_render_do_motion_blur(draw_ctx->depsgraph)) {
 +    Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph);
 +
 +    float shutter = scene->eevee.motion_blur_shutter * 0.5f;
 +    float time = DEG_get_ctime(draw_ctx->depsgraph);
 +    /* Centered on frame for now. */
 +    float start_time = time - shutter;
 +    float end_time = time + shutter;
 +
 +    {
 +      EEVEE_motion_blur_step_set(ved, MB_PREV);
 +      RE_engine_frame_set(engine, floorf(start_time), fractf(start_time));
 +
 +      if (!EEVEE_render_init(vedata, engine, draw_ctx->depsgraph)) {
 +        return;
 +      }
 +
 +      if (RE_engine_test_break(engine)) {
 +        return;
 +      }
 +
 +      DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, EEVEE_render_cache);
 +      EEVEE_motion_blur_cache_finish(vedata);
 +      /* Reset passlist. This is safe as they are stored into managed memory chunks. */
 +      memset(ved->psl, 0, sizeof(*ved->psl));
 +      /* Fix memleak */
-       BLI_ghash_free(ved->stl->g_data->material_hash, NULL, MEM_freeN);
++      BLI_ghash_free(ved->stl->g_data->material_hash, NULL, NULL);
 +      ved->stl->g_data->material_hash = NULL;
 +    }
 +
 +    {
 +      EEVEE_motion_blur_step_set(ved, MB_NEXT);
 +      RE_engine_frame_set(engine, floorf(end_time), fractf(end_time));
 +
 +      EEVEE_render_init(vedata, engine, draw_ctx->depsgraph);
 +
 +      DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, EEVEE_render_cache);
 +      EEVEE_motion_blur_cache_finish(vedata);
 +      /* Reset passlist. This is safe as they are stored into managed memory chunks. */
 +      memset(ved->psl, 0, sizeof(*ved->psl));
 +      /* Fix memleak */
-       BLI_ghash_free(ved->stl->g_data->material_hash, NULL, MEM_freeN);
++      BLI_ghash_free(ved->stl->g_data->material_hash, NULL, NULL);
 +      ved->stl->g_data->material_hash = NULL;
 +    }
 +
 +    /* Current frame. */
 +    EEVEE_motion_blur_step_set(ved, MB_CURR);
 +    RE_engine_frame_set(engine, time, 0.0f);
 +  }
 +
    if (!EEVEE_render_init(vedata, engine, draw_ctx->depsgraph)) {
      return;
    }



More information about the Bf-blender-cvs mailing list