Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2020-03-06 13:51:17 +0300
committerBrecht Van Lommel <brecht@blender.org>2020-03-06 14:19:11 +0300
commite96b1035364122178d5fcec7cf4d4bab7c8cb051 (patch)
tree2aaf2403e276bac6285f5b5788105775e62cb634 /source/blender/blenkernel/intern/camera.c
parent297261eb906c56c7decf4401e6a3e06cec1691e8 (diff)
Cleanup: move camera, lights, world to IDTypeInfo
Diffstat (limited to 'source/blender/blenkernel/intern/camera.c')
-rw-r--r--source/blender/blenkernel/intern/camera.c45
1 files changed, 34 insertions, 11 deletions
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 */