[Bf-blender-cvs] [5b31532ec3e] soc-2019-npr: LANPR: Moved GPU batches to lanpr_share.

YimingWu noreply at git.blender.org
Mon Jul 15 16:20:00 CEST 2019


Commit: 5b31532ec3e9a647b1f0e90722ffa4f91db5bc47
Author: YimingWu
Date:   Mon Jul 15 22:18:23 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB5b31532ec3e9a647b1f0e90722ffa4f91db5bc47

LANPR: Moved GPU batches to lanpr_share.

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

M	source/blender/draw/engines/lanpr/lanpr_all.h
M	source/blender/draw/engines/lanpr/lanpr_dpix.c
M	source/blender/draw/engines/lanpr/lanpr_engine.c
M	source/blender/editors/include/ED_lanpr.h

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h
index 5c6ce884004..7ad7976a9cc 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -189,8 +189,6 @@ typedef struct LANPR_PrivateData {
 
   GPUVertFormat snake_gwn_format;
   GPUBatch *snake_batch;
-
-  ListBase dpix_batch_list;
 } LANPR_PrivateData;
 
 typedef struct LANPR_StorageList {
diff --git a/source/blender/draw/engines/lanpr/lanpr_dpix.c b/source/blender/draw/engines/lanpr/lanpr_dpix.c
index 2126da0f493..14f15d2ed8a 100644
--- a/source/blender/draw/engines/lanpr/lanpr_dpix.c
+++ b/source/blender/draw/engines/lanpr/lanpr_dpix.c
@@ -393,7 +393,7 @@ int lanpr_feed_atlas_trigger_preview_obj(void *vedata, Object *ob, int begin_ind
       GPU_PRIM_POINTS, vbo2, 0, GPU_USAGE_STATIC | GPU_BATCH_OWNS_VBO);
 
   LANPR_BatchItem *bi = BLI_mempool_alloc(lanpr_share.mp_batch_list);
-  BLI_addtail(&pd->dpix_batch_list, bi);
+  BLI_addtail(&lanpr_share.dpix_batch_list, bi);
   bi->dpix_transform_batch = gb;
   bi->dpix_preview_batch = gb2;
   bi->ob = ob;
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 95354ad42a4..26a61504ea9 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -415,7 +415,7 @@ static void lanpr_cache_init(void *vedata)
       pd->atlas_edge_mask = MEM_callocN(fsize, "atlas_edge_mask"); /*  should always be float */
 
       LANPR_BatchItem* dpbi;
-      while (dpbi = BLI_pophead(&pd->dpix_batch_list)){
+      while (dpbi = BLI_pophead(&lanpr_share.dpix_batch_list)){
         GPU_batch_discard(dpbi->dpix_preview_batch);
         GPU_batch_discard(dpbi->dpix_transform_batch);
       }
@@ -551,7 +551,7 @@ static void lanpr_cache_finish(void *vedata)
     }
 
     LANPR_BatchItem *bi;
-    for (bi = pd->dpix_batch_list.first; bi; bi = (void *)bi->item.next) {
+    for (bi = lanpr_share.dpix_batch_list.first; bi; bi = (void *)bi->item.next) {
       DRW_shgroup_call_ex(
           pd->dpix_transform_shgrp, 0, bi->ob->obmat, bi->dpix_transform_batch, 0, 0, true, NULL);
       DRW_shgroup_call(pd->dpix_preview_shgrp, bi->dpix_preview_batch, 0);
@@ -797,7 +797,7 @@ static void lanpr_view_update(void *vedata)
   /*  our update flag is in SceneLANPR. */
   const DRWContextState *draw_ctx = DRW_context_state_get();
   SceneLANPR *lanpr = &DEG_get_evaluated_scene(draw_ctx->depsgraph)->lanpr;
-  lanpr->reloaded = 1; /*  very bad solution, this will slow down animation. */
+  //lanpr->reloaded = 1; /*  very bad solution, this will slow down animation. */
 }
 
 /* This reserve for depsgraph auto updates. */
diff --git a/source/blender/editors/include/ED_lanpr.h b/source/blender/editors/include/ED_lanpr.h
index 50dace04327..6753ed04b5f 100644
--- a/source/blender/editors/include/ED_lanpr.h
+++ b/source/blender/editors/include/ED_lanpr.h
@@ -315,6 +315,7 @@ typedef struct LANPR_SharedResource {
   struct GPUShader *dpix_preview_shader;
   int dpix_shader_error;
   int texture_size;
+  ListBase dpix_batch_list;
 
   /* Software */
   struct GPUShader *software_shader;



More information about the Bf-blender-cvs mailing list