IDTypeInfo: add flag to indicate that ID has no animation data
This is part of T75724. Reviewers: mont29 Differential Revision: https://developer.blender.org/D9134
This commit is contained in:
@@ -47,6 +47,8 @@ enum {
|
||||
IDTYPE_FLAGS_NO_LIBLINKING = 1 << 1,
|
||||
/** Indicates that the given IDType does not support making a library-linked ID local. */
|
||||
IDTYPE_FLAGS_NO_MAKELOCAL = 1 << 2,
|
||||
/** Indicates that the given IDType does not have animation data. */
|
||||
IDTYPE_FLAGS_NO_ANIMDATA = 1 << 3,
|
||||
};
|
||||
|
||||
typedef struct IDCacheKey {
|
||||
|
||||
@@ -282,7 +282,7 @@ IDTypeInfo IDType_ID_AC = {
|
||||
.name = "Action",
|
||||
.name_plural = "actions",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_ACTION,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = NULL,
|
||||
.copy_data = action_copy_data,
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_fcurve_driver.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_idtype.h"
|
||||
#include "BKE_lib_id.h"
|
||||
#include "BKE_lib_query.h"
|
||||
#include "BKE_main.h"
|
||||
@@ -70,42 +71,11 @@ static CLG_LogRef LOG = {"bke.anim_sys"};
|
||||
/* Check if ID can have AnimData */
|
||||
bool id_type_can_have_animdata(const short id_type)
|
||||
{
|
||||
/* Only some ID-blocks have this info for now */
|
||||
/* TODO: finish adding this for the other blocktypes */
|
||||
switch (id_type) {
|
||||
/* has AnimData */
|
||||
case ID_OB:
|
||||
case ID_ME:
|
||||
case ID_MB:
|
||||
case ID_CU:
|
||||
case ID_AR:
|
||||
case ID_LT:
|
||||
case ID_KE:
|
||||
case ID_PA:
|
||||
case ID_MA:
|
||||
case ID_TE:
|
||||
case ID_NT:
|
||||
case ID_LA:
|
||||
case ID_CA:
|
||||
case ID_WO:
|
||||
case ID_LS:
|
||||
case ID_LP:
|
||||
case ID_SPK:
|
||||
case ID_SCE:
|
||||
case ID_MC:
|
||||
case ID_MSK:
|
||||
case ID_GD:
|
||||
case ID_CF:
|
||||
case ID_HA:
|
||||
case ID_PT:
|
||||
case ID_VO:
|
||||
case ID_SIM:
|
||||
return true;
|
||||
|
||||
/* no AnimData */
|
||||
default:
|
||||
return false;
|
||||
const IDTypeInfo *typeinfo = BKE_idtype_get_info_from_idcode(id_type);
|
||||
if (typeinfo != NULL) {
|
||||
return (typeinfo->flags & IDTYPE_FLAGS_NO_ANIMDATA) == 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool id_can_have_animdata(const ID *id)
|
||||
|
||||
@@ -363,7 +363,7 @@ IDTypeInfo IDType_ID_BR = {
|
||||
.name = "Brush",
|
||||
.name_plural = "brushes",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_BRUSH,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = brush_init_data,
|
||||
.copy_data = brush_copy_data,
|
||||
|
||||
@@ -166,7 +166,7 @@ IDTypeInfo IDType_ID_GR = {
|
||||
.name = "Collection",
|
||||
.name_plural = "collections",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_COLLECTION,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = NULL,
|
||||
.copy_data = collection_copy_data,
|
||||
|
||||
@@ -155,7 +155,7 @@ IDTypeInfo IDType_ID_VF = {
|
||||
.name = "Font",
|
||||
.name_plural = "fonts",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_VFONT,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = vfont_init_data,
|
||||
.copy_data = vfont_copy_data,
|
||||
|
||||
@@ -311,7 +311,7 @@ IDTypeInfo IDType_ID_IM = {
|
||||
.name = "Image",
|
||||
.name_plural = "images",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_IMAGE,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = image_init_data,
|
||||
.copy_data = image_copy_data,
|
||||
|
||||
@@ -117,7 +117,8 @@ IDTypeInfo IDType_ID_IP = {
|
||||
.name = "Ipo",
|
||||
.name_plural = "ipos",
|
||||
.translation_context = "",
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_LIBLINKING | IDTYPE_FLAGS_NO_MAKELOCAL,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_LIBLINKING | IDTYPE_FLAGS_NO_MAKELOCAL |
|
||||
IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = NULL,
|
||||
.copy_data = NULL,
|
||||
|
||||
@@ -68,7 +68,8 @@ IDTypeInfo IDType_ID_LI = {
|
||||
.name = "Library",
|
||||
.name_plural = "libraries",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_LIBRARY,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_LIBLINKING | IDTYPE_FLAGS_NO_MAKELOCAL,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_LIBLINKING | IDTYPE_FLAGS_NO_MAKELOCAL |
|
||||
IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = NULL,
|
||||
.copy_data = NULL,
|
||||
|
||||
@@ -133,7 +133,7 @@ IDTypeInfo IDType_ID_PAL = {
|
||||
.name = "Palette",
|
||||
.name_plural = "palettes",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_PALETTE,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = palette_init_data,
|
||||
.copy_data = palette_copy_data,
|
||||
@@ -194,7 +194,7 @@ IDTypeInfo IDType_ID_PC = {
|
||||
.name = "PaintCurve",
|
||||
.name_plural = "paint_curves",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_PAINTCURVE,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = NULL,
|
||||
.copy_data = paint_curve_copy_data,
|
||||
|
||||
@@ -238,7 +238,7 @@ IDTypeInfo IDType_ID_SCR = {
|
||||
.name = "Screen",
|
||||
.name_plural = "screens",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_SCREEN,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_MAKELOCAL,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_MAKELOCAL | IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = NULL,
|
||||
.copy_data = NULL,
|
||||
|
||||
@@ -197,7 +197,7 @@ IDTypeInfo IDType_ID_SO = {
|
||||
.name = "Sound",
|
||||
.name_plural = "sounds",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_SOUND,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
/* A fuzzy case, think NULLified content is OK here... */
|
||||
.init_data = NULL,
|
||||
|
||||
@@ -243,7 +243,7 @@ IDTypeInfo IDType_ID_TXT = {
|
||||
.name = "Text",
|
||||
.name_plural = "texts",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_TEXT,
|
||||
.flags = 0,
|
||||
.flags = IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = text_init_data,
|
||||
.copy_data = text_copy_data,
|
||||
|
||||
@@ -83,7 +83,7 @@ IDTypeInfo IDType_ID_WS = {
|
||||
.name = "WorkSpace",
|
||||
.name_plural = "workspaces",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_WORKSPACE,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_MAKELOCAL,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_MAKELOCAL | IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = NULL,
|
||||
.copy_data = NULL,
|
||||
|
||||
@@ -106,7 +106,8 @@ IDTypeInfo IDType_ID_WM = {
|
||||
.name = "WindowManager",
|
||||
.name_plural = "window_managers",
|
||||
.translation_context = BLT_I18NCONTEXT_ID_WINDOWMANAGER,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_LIBLINKING | IDTYPE_FLAGS_NO_MAKELOCAL,
|
||||
.flags = IDTYPE_FLAGS_NO_COPY | IDTYPE_FLAGS_NO_LIBLINKING | IDTYPE_FLAGS_NO_MAKELOCAL |
|
||||
IDTYPE_FLAGS_NO_ANIMDATA,
|
||||
|
||||
.init_data = NULL,
|
||||
.copy_data = NULL,
|
||||
|
||||
Reference in New Issue
Block a user