[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