diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-08 00:21:16 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-08 18:52:48 +0300 |
commit | 0030e4da7073d62561cca508330ab150b37ee6eb (patch) | |
tree | c1d25b9a92ed3aeb4f9c3bee03e32de7e721a7f4 /source/blender/draw/intern/draw_cache.c | |
parent | 05b0f52aa78344a4a74b816fd1d025aa344ec28c (diff) |
DRW: Make batch validation run first during iteration
This reduces the cost of querying the batches to the batch cache.
Diffstat (limited to 'source/blender/draw/intern/draw_cache.c')
-rw-r--r-- | source/blender/draw/intern/draw_cache.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_cache.c b/source/blender/draw/intern/draw_cache.c index be95b0a5325..de203906f83 100644 --- a/source/blender/draw/intern/draw_cache.c +++ b/source/blender/draw/intern/draw_cache.c @@ -3953,6 +3953,28 @@ GPUBatch *DRW_cache_cursor_get(bool crosshair_lines) /** \name Batch Cache Impl. common * \{ */ +void drw_batch_cache_validate(Object *ob) +{ + switch (ob->type) { + case OB_MESH: + DRW_mesh_batch_cache_validate((Mesh *)ob->data); + break; + case OB_CURVE: + case OB_FONT: + case OB_SURF: + DRW_curve_batch_cache_validate((Curve *)ob->data); + break; + case OB_MBALL: + DRW_mball_batch_cache_validate((MetaBall *)ob->data); + break; + case OB_LATTICE: + DRW_lattice_batch_cache_validate((Lattice *)ob->data); + break; + default: + break; + } +} + void drw_batch_cache_generate_requested(Object *ob) { const DRWContextState *draw_ctx = DRW_context_state_get(); |