diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-06-02 21:45:03 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-06-02 22:16:40 +0300 |
commit | f25e459f8f9231a4e8a827149b35dfb38c4aea1d (patch) | |
tree | adccb7aa05d4ff0d1f69baec561b99e1c4dd99f0 /source/blender/draw/intern/draw_manager.c | |
parent | 98e4d548a16c6533eadbe619f78cf1dda1a5c7a4 (diff) |
DRW: Make the Procedural hair update part of the drawmanager.
Instead of relying on the engine integration which is redundant.
Diffstat (limited to 'source/blender/draw/intern/draw_manager.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 60e9af78df9..e8ea2c58056 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1279,6 +1279,7 @@ void DRW_draw_render_loop_ex( DRW_globals_update(); drw_debug_init(); + DRW_hair_init(); /* No framebuffer allowed before drawing. */ BLI_assert(GPU_framebuffer_current_get() == 0); @@ -1308,6 +1309,7 @@ void DRW_draw_render_loop_ex( } DRW_stats_begin(); + DRW_hair_update(); GPU_framebuffer_bind(DST.default_framebuffer); @@ -1540,12 +1542,16 @@ void DRW_render_object_iter( void *vedata, RenderEngine *engine, struct Depsgraph *depsgraph, void (*callback)(void *vedata, Object *ob, RenderEngine *engine, struct Depsgraph *depsgraph)) { + DRW_hair_init(); + DEG_OBJECT_ITER_FOR_RENDER_ENGINE_BEGIN(depsgraph, ob, DRW_iterator_mode_get()) { DST.ob_state = NULL; callback(vedata, ob, engine, depsgraph); } DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END + + DRW_hair_update(); } static struct DRWSelectBuffer { @@ -1666,6 +1672,7 @@ void DRW_draw_select_loop( /* Init engines */ drw_engines_init(); + DRW_hair_init(); { drw_engines_cache_init(); @@ -1700,6 +1707,8 @@ void DRW_draw_select_loop( DRW_render_instance_buffer_finish(); } + DRW_hair_update(); + /* Setup framebuffer */ draw_select_framebuffer_setup(rect); GPU_framebuffer_bind(g_select_buffer.framebuffer); @@ -1839,6 +1848,7 @@ void DRW_draw_depth_loop( /* Init engines */ drw_engines_init(); + DRW_hair_init(); /* TODO : tag to refresh by the dependency graph */ /* ideally only refresh when objects are added/removed */ @@ -1857,6 +1867,8 @@ void DRW_draw_depth_loop( DRW_render_instance_buffer_finish(); } + DRW_hair_update(); + /* Start Drawing */ DRW_state_reset(); DRW_draw_callbacks_pre_scene(); |