[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