[Bf-blender-cvs] [e96b1035364] master: Cleanup: move camera, lights, world to IDTypeInfo

Brecht Van Lommel noreply at git.blender.org
Fri Mar 6 12:23:33 CET 2020


Commit: e96b1035364122178d5fcec7cf4d4bab7c8cb051
Author: Brecht Van Lommel
Date:   Fri Mar 6 11:51:17 2020 +0100
Branches: master
https://developer.blender.org/rBe96b1035364122178d5fcec7cf4d4bab7c8cb051

Cleanup: move camera, lights, world to IDTypeInfo

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

M	source/blender/blenkernel/BKE_camera.h
M	source/blender/blenkernel/BKE_idtype.h
M	source/blender/blenkernel/BKE_light.h
M	source/blender/blenkernel/BKE_lightprobe.h
M	source/blender/blenkernel/BKE_world.h
M	source/blender/blenkernel/intern/camera.c
M	source/blender/blenkernel/intern/idtype.c
M	source/blender/blenkernel/intern/lib_id.c
M	source/blender/blenkernel/intern/lib_id_delete.c
M	source/blender/blenkernel/intern/light.c
M	source/blender/blenkernel/intern/lightprobe.c
M	source/blender/blenkernel/intern/world.c
M	source/blender/editors/render/render_preview.c

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

diff --git a/source/blender/blenkernel/BKE_camera.h b/source/blender/blenkernel/BKE_camera.h
index 558ffd9e7c7..aebe04f3a7a 100644
--- a/source/blender/blenkernel/BKE_camera.h
+++ b/source/blender/blenkernel/BKE_camera.h
@@ -40,15 +40,8 @@ struct rctf;
 
 /* Camera Datablock */
 
-void BKE_camera_init(struct Camera *cam);
 void *BKE_camera_add(struct Main *bmain, const char *name);
-void BKE_camera_copy_data(struct Main *bmain,
-                          struct Camera *cam_dst,
-                          const struct Camera *cam_src,
-                          const int flag);
 struct Camera *BKE_camera_copy(struct Main *bmain, const struct Camera *cam);
-void BKE_camera_make_local(struct Main *bmain, struct Camera *cam, const int flags);
-void BKE_camera_free(struct Camera *ca);
 
 /* Camera Usage */
 
diff --git a/source/blender/blenkernel/BKE_idtype.h b/source/blender/blenkernel/BKE_idtype.h
index 2e8b39c938c..ec7c5cafbcf 100644
--- a/source/blender/blenkernel/BKE_idtype.h
+++ b/source/blender/blenkernel/BKE_idtype.h
@@ -127,6 +127,39 @@ typedef struct IDTypeInfo {
 extern IDTypeInfo IDType_ID_SCE;
 extern IDTypeInfo IDType_ID_LI;
 extern IDTypeInfo IDType_ID_OB;
+// extern IDTypeInfo IDType_ID_ME;
+// extern IDTypeInfo IDType_ID_CU;
+// extern IDTypeInfo IDType_ID_MB;
+// extern IDTypeInfo IDType_ID_MA;
+// extern IDTypeInfo IDType_ID_TE;
+// extern IDTypeInfo IDType_ID_IM;
+// extern IDTypeInfo IDType_ID_LT;
+extern IDTypeInfo IDType_ID_LA;
+extern IDTypeInfo IDType_ID_CA;
+// extern IDTypeInfo IDType_ID_IP;
+// extern IDTypeInfo IDType_ID_KE;
+extern IDTypeInfo IDType_ID_WO;
+// extern IDTypeInfo IDType_ID_SCR;
+// extern IDTypeInfo IDType_ID_VF;
+// extern IDTypeInfo IDType_ID_TXT;
+// extern IDTypeInfo IDType_ID_SPK;
+// extern IDTypeInfo IDType_ID_SO;
+// extern IDTypeInfo IDType_ID_GR;
+// extern IDTypeInfo IDType_ID_AR;
+// extern IDTypeInfo IDType_ID_AC;
+// extern IDTypeInfo IDType_ID_NT;
+// extern IDTypeInfo IDType_ID_BR;
+// extern IDTypeInfo IDType_ID_PA;
+// extern IDTypeInfo IDType_ID_GD;
+// extern IDTypeInfo IDType_ID_WM;
+// extern IDTypeInfo IDType_ID_MC;
+// extern IDTypeInfo IDType_ID_MSK;
+// extern IDTypeInfo IDType_ID_LS;
+// extern IDTypeInfo IDType_ID_PAL;
+// extern IDTypeInfo IDType_ID_PC;
+// extern IDTypeInfo IDType_ID_CF;
+// extern IDTypeInfo IDType_ID_WS;
+extern IDTypeInfo IDType_ID_LP;
 
 /* ********** Helpers/Utils API. ********** */
 
diff --git a/source/blender/blenkernel/BKE_light.h b/source/blender/blenkernel/BKE_light.h
index 932881ce4ad..a6f0fdbc8a3 100644
--- a/source/blender/blenkernel/BKE_light.h
+++ b/source/blender/blenkernel/BKE_light.h
@@ -33,16 +33,9 @@ extern "C" {
 struct Light;
 struct Main;
 
-void BKE_light_init(struct Light *la);
 struct Light *BKE_light_add(struct Main *bmain, const char *name) ATTR_WARN_UNUSED_RESULT;
-void BKE_light_copy_data(struct Main *bmain,
-                         struct Light *la_dst,
-                         const struct Light *la_src,
-                         const int flag);
 struct Light *BKE_light_copy(struct Main *bmain, const struct Light *la) ATTR_WARN_UNUSED_RESULT;
 struct Light *BKE_light_localize(struct Light *la) ATTR_WARN_UNUSED_RESULT;
-void BKE_light_make_local(struct Main *bmain, struct Light *la, const int flags);
-void BKE_light_free(struct Light *la);
 
 #ifdef __cplusplus
 }
diff --git a/source/blender/blenkernel/BKE_lightprobe.h b/source/blender/blenkernel/BKE_lightprobe.h
index a294750fa9e..6304f61a1f4 100644
--- a/source/blender/blenkernel/BKE_lightprobe.h
+++ b/source/blender/blenkernel/BKE_lightprobe.h
@@ -32,16 +32,9 @@ extern "C" {
 struct LightProbe;
 struct Main;
 
-void BKE_lightprobe_init(struct LightProbe *probe);
 void BKE_lightprobe_type_set(struct LightProbe *probe, const short lightprobe_type);
 void *BKE_lightprobe_add(struct Main *bmain, const char *name);
-void BKE_lightprobe_copy_data(struct Main *bmain,
-                              struct LightProbe *probe_dst,
-                              const struct LightProbe *probe_src,
-                              const int flag);
 struct LightProbe *BKE_lightprobe_copy(struct Main *bmain, const struct LightProbe *probe);
-void BKE_lightprobe_make_local(struct Main *bmain, struct LightProbe *probe, const int flags);
-void BKE_lightprobe_free(struct LightProbe *probe);
 
 #ifdef __cplusplus
 }
diff --git a/source/blender/blenkernel/BKE_world.h b/source/blender/blenkernel/BKE_world.h
index 070ae2c045e..3c8f8547b46 100644
--- a/source/blender/blenkernel/BKE_world.h
+++ b/source/blender/blenkernel/BKE_world.h
@@ -31,16 +31,9 @@ struct Depsgraph;
 struct Main;
 struct World;
 
-void BKE_world_free(struct World *sc);
-void BKE_world_init(struct World *wrld);
 struct World *BKE_world_add(struct Main *bmain, const char *name);
-void BKE_world_copy_data(struct Main *bmain,
-                         struct World *wrld_dst,
-                         const struct World *wrld_src,
-                         const int flag);
 struct World *BKE_world_copy(struct Main *bmain, const struct World *wrld);
 struct World *BKE_world_localize(struct World *wrld);
-void BKE_world_make_local(struct Main *bmain, struct World *wrld, const int flags);
 void BKE_world_eval(struct Depsgraph *depsgraph, struct World *world);
 
 #ifdef __cplusplus
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index e21e093517e..d2829bc1cd6 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -40,6 +40,7 @@
 
 #include "BKE_animsys.h"
 #include "BKE_camera.h"
+#include "BKE_idtype.h"
 #include "BKE_object.h"
 #include "BKE_layer.h"
 #include "BKE_lib_id.h"
@@ -47,14 +48,17 @@
 #include "BKE_scene.h"
 #include "BKE_screen.h"
 
+#include "BLT_translation.h"
+
 #include "DEG_depsgraph_query.h"
 
 #include "MEM_guardedalloc.h"
 
 /****************************** Camera Datablock *****************************/
 
-void BKE_camera_init(Camera *cam)
+static void camera_init_data(ID *id)
 {
+  Camera *cam = (Camera *)id;
   BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(cam, id));
 
   MEMCPY_STRUCT_AFTER(cam, DNA_struct_default_get(Camera), id);
@@ -66,7 +70,7 @@ void *BKE_camera_add(Main *bmain, const char *name)
 
   cam = BKE_libblock_alloc(bmain, ID_CA, name, 0);
 
-  BKE_camera_init(cam);
+  camera_init_data(&cam->id);
 
   return cam;
 }
@@ -81,11 +85,13 @@ void *BKE_camera_add(Main *bmain, const char *name)
  *
  * \param flag: Copying options (see BKE_lib_id.h's LIB_ID_COPY_... flags for more).
  */
-void BKE_camera_copy_data(Main *UNUSED(bmain),
-                          Camera *cam_dst,
-                          const Camera *cam_src,
-                          const int UNUSED(flag))
+static void camera_copy_data(Main *UNUSED(bmain),
+                             ID *id_dst,
+                             const ID *id_src,
+                             const int UNUSED(flag))
 {
+  Camera *cam_dst = (Camera *)id_dst;
+  const Camera *cam_src = (const Camera *)id_src;
   BLI_duplicatelist(&cam_dst->bg_images, &cam_src->bg_images);
 }
 
@@ -96,19 +102,36 @@ Camera *BKE_camera_copy(Main *bmain, const Camera *cam)
   return cam_copy;
 }
 
-void BKE_camera_make_local(Main *bmain, Camera *cam, const int flags)
+static void camera_make_local(Main *bmain, ID *id, const int flags)
 {
-  BKE_lib_id_make_local_generic(bmain, &cam->id, flags);
+  BKE_lib_id_make_local_generic(bmain, id, flags);
 }
 
 /** Free (or release) any data used by this camera (does not free the camera itself). */
-void BKE_camera_free(Camera *ca)
+static void camera_free_data(ID *id)
 {
-  BLI_freelistN(&ca->bg_images);
+  Camera *cam = (Camera *)id;
+  BLI_freelistN(&cam->bg_images);
 
-  BKE_animdata_free((ID *)ca, false);
+  BKE_animdata_free(id, false);
 }
 
+IDTypeInfo IDType_ID_CA = {
+    .id_code = ID_CA,
+    .id_filter = FILTER_ID_CA,
+    .main_listbase_index = INDEX_ID_CA,
+    .struct_size = sizeof(Camera),
+    .name = "Camera",
+    .name_plural = "cameras",
+    .translation_context = BLT_I18NCONTEXT_ID_CAMERA,
+    .flags = 0,
+
+    .init_data = camera_init_data,
+    .copy_data = camera_copy_data,
+    .free_data = camera_free_data,
+    .make_local = camera_make_local,
+};
+
 /******************************** Camera Usage *******************************/
 
 /* get the camera's dof value, takes the dof object into account */
diff --git a/source/blender/blenkernel/intern/idtype.c b/source/blender/blenkernel/intern/idtype.c
index 1453234d577..2193ff2165c 100644
--- a/source/blender/blenkernel/intern/idtype.c
+++ b/source/blender/blenkernel/intern/idtype.c
@@ -54,6 +54,39 @@ static void id_type_init(void)
   INIT_TYPE(ID_SCE);
   INIT_TYPE(ID_LI);
   INIT_TYPE(ID_OB);
+  // INIT_TYPE(ID_ME);
+  // INIT_TYPE(ID_CU);
+  // INIT_TYPE(ID_MB);
+  // INIT_TYPE(ID_MA);
+  // INIT_TYPE(ID_TE);
+  // INIT_TYPE(ID_IM);
+  // INIT_TYPE(ID_LT);
+  INIT_TYPE(ID_LA);
+  INIT_TYPE(ID_CA);
+  // INIT_TYPE(ID_IP);
+  // INIT_TYPE(ID_KE);
+  INIT_TYPE(ID_WO);
+  // INIT_TYPE(ID_SCR);
+  // INIT_TYPE(ID_VF);
+  // INIT_TYPE(ID_TXT);
+  // INIT_TYPE(ID_SPK);
+  // INIT_TYPE(ID_SO);
+  // INIT_TYPE(ID_GR);
+  // INIT_TYPE(ID_AR);
+  // INIT_TYPE(ID_AC);
+  // INIT_TYPE(ID_NT);
+  // INIT_TYPE(ID_BR);
+  // INIT_TYPE(ID_PA);
+  // INIT_TYPE(ID_GD);
+  // INIT_TYPE(ID_WM);
+  // INIT_TYPE(ID_MC);
+  // INIT_TYPE(ID_MSK);
+  // INIT_TYPE(ID_LS);
+  // INIT_TYPE(ID_PAL);
+  // INIT_TYPE(ID_PC);
+  // INIT_TYPE(ID_CF);
+  // INIT_TYPE(ID_WS);
+  INIT_TYPE(ID_LP);
 
 #undef INIT_TYPE
 }
diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c
index b66007ceac4..01d6bb1077d 100644
--- a/source/blender/blenkernel/intern/lib_id.c
+++ b/source/blender/blenkernel/intern/lib_id.c
@@ -508,14 +508,10 @@ bool BKE_lib_id_make_local(Main *bmain, ID *id, const bool test, const int flags
       }
       return true;
     case ID_LA:
-      if (!test) {
-        BKE_light_make_local(bmain, (Light *)id, flags);
-      }
+      BLI_assert(0);
       return true;
     case ID_CA:
-      if (!test) {
-        BKE_camera_make_local(bmain, (Camera *)id, flags);
-      }
+      BLI_assert(0);
       return true;
     case ID_SPK:
       if (!test) 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list