diff options
author | Bastien Montagne <bastien@blender.org> | 2020-04-20 12:18:20 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-04-20 12:20:05 +0300 |
commit | 25e774422c00fe708475671f4a4a89a0c696d105 (patch) | |
tree | 0c3f2634dd064e97639672ff0c1988725b18b4d7 /source/blender/blenkernel/intern/light.c | |
parent | bc71074d0a1a8b29b3d96a4879b9cbed165c9879 (diff) |
Cleanup: ID management: Light ID type.
Keep IDType code at head of each ID file, instead of mixing it with more
specific API. Also do not define callbacks when defautl generic handling
is fine.
Diffstat (limited to 'source/blender/blenkernel/intern/light.c')
-rw-r--r-- | source/blender/blenkernel/intern/light.c | 95 |
1 files changed, 45 insertions, 50 deletions
diff --git a/source/blender/blenkernel/intern/light.c b/source/blender/blenkernel/intern/light.c index 3ecd1c81b27..3d0503b2e70 100644 --- a/source/blender/blenkernel/intern/light.c +++ b/source/blender/blenkernel/intern/light.c @@ -58,17 +58,6 @@ static void light_init_data(ID *id) BKE_curvemapping_initialize(la->curfalloff); } -Light *BKE_light_add(Main *bmain, const char *name) -{ - Light *la; - - la = BKE_libblock_alloc(bmain, ID_LA, name, 0); - - light_init_data(&la->id); - - return la; -} - /** * Only copy internal data of Light ID from source * to already allocated/initialized destination. @@ -100,6 +89,51 @@ static void light_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int } } +static void light_free_data(ID *id) +{ + Light *la = (Light *)id; + + BKE_curvemapping_free(la->curfalloff); + + /* is no lib link block, but light extension */ + if (la->nodetree) { + ntreeFreeNestedTree(la->nodetree); + MEM_freeN(la->nodetree); + la->nodetree = NULL; + } + + BKE_previewimg_free(&la->preview); + BKE_icon_id_delete(&la->id); + la->id.icon_id = 0; +} + +IDTypeInfo IDType_ID_LA = { + .id_code = ID_LA, + .id_filter = FILTER_ID_LA, + .main_listbase_index = INDEX_ID_LA, + .struct_size = sizeof(Light), + .name = "Light", + .name_plural = "lights", + .translation_context = BLT_I18NCONTEXT_ID_LIGHT, + .flags = 0, + + .init_data = light_init_data, + .copy_data = light_copy_data, + .free_data = light_free_data, + .make_local = NULL, +}; + +Light *BKE_light_add(Main *bmain, const char *name) +{ + Light *la; + + la = BKE_libblock_alloc(bmain, ID_LA, name, 0); + + light_init_data(&la->id); + + return la; +} + Light *BKE_light_copy(Main *bmain, const Light *la) { Light *la_copy; @@ -133,42 +167,3 @@ Light *BKE_light_localize(Light *la) return lan; } - -static void light_make_local(Main *bmain, ID *id, const int flags) -{ - BKE_lib_id_make_local_generic(bmain, id, flags); -} - -static void light_free_data(ID *id) -{ - Light *la = (Light *)id; - - BKE_curvemapping_free(la->curfalloff); - - /* is no lib link block, but light extension */ - if (la->nodetree) { - ntreeFreeNestedTree(la->nodetree); - MEM_freeN(la->nodetree); - la->nodetree = NULL; - } - - BKE_previewimg_free(&la->preview); - BKE_icon_id_delete(&la->id); - la->id.icon_id = 0; -} - -IDTypeInfo IDType_ID_LA = { - .id_code = ID_LA, - .id_filter = FILTER_ID_LA, - .main_listbase_index = INDEX_ID_LA, - .struct_size = sizeof(Light), - .name = "Light", - .name_plural = "lights", - .translation_context = BLT_I18NCONTEXT_ID_LIGHT, - .flags = 0, - - .init_data = light_init_data, - .copy_data = light_copy_data, - .free_data = light_free_data, - .make_local = light_make_local, -}; |