diff options
Diffstat (limited to 'source/blender/blenkernel/intern/world.c')
-rw-r--r-- | source/blender/blenkernel/intern/world.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c index 8e3c92314e6..8113e2bf9ef 100644 --- a/source/blender/blenkernel/intern/world.c +++ b/source/blender/blenkernel/intern/world.c @@ -38,8 +38,8 @@ #include "DNA_scene_types.h" #include "DNA_texture_types.h" -#include "BLI_listbase.h" #include "BLI_utildefines.h" +#include "BLI_listbase.h" #include "BKE_animsys.h" #include "BKE_global.h" @@ -49,6 +49,8 @@ #include "BKE_node.h" #include "BKE_world.h" +#include "GPU_material.h" + void BKE_world_free_ex(World *wrld, bool do_id_user) { MTex *mtex; @@ -69,6 +71,9 @@ void BKE_world_free_ex(World *wrld, bool do_id_user) MEM_freeN(wrld->nodetree); } + if (wrld->gpumaterial.first) + GPU_material_free(&wrld->gpumaterial); + BKE_icon_delete((struct ID *)wrld); wrld->id.icon_id = 0; } @@ -134,6 +139,8 @@ World *BKE_world_copy(World *wrld) if (wrld->preview) wrldn->preview = BKE_previewimg_copy(wrld->preview); + BLI_listbase_clear(&wrldn->gpumaterial); + return wrldn; } @@ -158,6 +165,8 @@ World *localize_world(World *wrld) wrldn->preview = NULL; + BLI_listbase_clear(&wrldn->gpumaterial); + return wrldn; } |