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:
authorClément Foucault <foucault.clem@gmail.com>2018-06-02 21:45:03 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-06-02 22:16:40 +0300
commitf25e459f8f9231a4e8a827149b35dfb38c4aea1d (patch)
treeadccb7aa05d4ff0d1f69baec561b99e1c4dd99f0 /source/blender/draw/intern/draw_manager.c
parent98e4d548a16c6533eadbe619f78cf1dda1a5c7a4 (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.c12
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();