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(); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs