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>2019-05-08 00:21:16 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-05-08 18:52:48 +0300
commit0030e4da7073d62561cca508330ab150b37ee6eb (patch)
treec1d25b9a92ed3aeb4f9c3bee03e32de7e721a7f4 /source/blender/draw/intern/draw_cache.c
parent05b0f52aa78344a4a74b816fd1d025aa344ec28c (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.c22
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();