[Bf-blender-cvs] [bb48fcac2f3] soc-2019-npr: Render data distroy functions

YimingWu noreply at git.blender.org
Mon Jun 3 10:31:51 CEST 2019


Commit: bb48fcac2f31312a960daafcc1d83436696c77b2
Author: YimingWu
Date:   Mon Jun 3 15:06:32 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBbb48fcac2f31312a960daafcc1d83436696c77b2

Render data distroy functions

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

M	source/blender/draw/engines/lanpr/lanpr_access.h
M	source/blender/draw/engines/lanpr/lanpr_all.h
M	source/blender/draw/engines/lanpr/lanpr_engine.c

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h
index ad3f47e1dc8..608ad3f2a73 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -20,4 +20,6 @@ void lanpr_generate_gpencil_from_chain(
 
 int lanpr_count_chain(LANPR_RenderLineChain *rlc);
 
+void lanpr_destroy_render_data(struct LANPR_RenderBuffer *rb);
+
 #endif
diff --git a/source/blender/draw/engines/lanpr/lanpr_all.h b/source/blender/draw/engines/lanpr/lanpr_all.h
index 30f889c0bdc..addcdc2124b 100644
--- a/source/blender/draw/engines/lanpr/lanpr_all.h
+++ b/source/blender/draw/engines/lanpr/lanpr_all.h
@@ -229,6 +229,8 @@ typedef struct LANPR_PrivateData {
 
   ListBase dpix_batch_list;
 
+  LANPR_RenderBuffer* rb_ref;
+
 } LANPR_PrivateData;
 
 typedef struct LANPR_StorageList {
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 8523a55d893..3188b24bb37 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -4,6 +4,7 @@
 #include "BLI_linklist.h"
 #include "BLI_math_matrix.h"
 #include "lanpr_all.h"
+#include "lanpr_access.h"
 #include "DRW_render.h"
 #include "BKE_object.h"
 #include "DNA_mesh_types.h"
@@ -168,6 +169,8 @@ static void lanpr_engine_free(void)
 
   lanpr_destroy_atlas(vedata);
 
+  lanpr_destroy_render_data(stl->g_data->rb_ref);
+
   stl->g_data = 0;
 }
 
@@ -531,6 +534,9 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer *dfb, int is_rend
     // should isolate these into a seperate function.
     lanpr_software_draw_scene(vedata, dfb, is_render);
   }
+
+  // Draw can create stuff there.
+  pd->rb_ref = lanpr->render_buffer;
 }
 
 static void lanpr_draw_scene(void *vedata)
@@ -651,6 +657,9 @@ static void lanpr_render_to_image(LANPR_Data *vedata,
   lanpr_cache_init(vedata);
   DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, LANPR_render_cache);
   lanpr_cache_finish(vedata);
+  
+  /* get ref for destroy data */
+  stl->g_data->rb_ref = lanpr->render_buffer;
 
   DRW_render_instance_buffer_finish();



More information about the Bf-blender-cvs mailing list