Listing the "Blender Foundation" as copyright holder implied the Blender Foundation holds copyright to files which may include work from many developers. While keeping copyright on headers makes sense for isolated libraries, Blender's own code may be refactored or moved between files in a way that makes the per file copyright holders less meaningful. Copyright references to the "Blender Foundation" have been replaced with "Blender Authors", with the exception of `./extern/` since these this contains libraries which are more isolated, any changed to license headers there can be handled on a case-by-case basis. Some directories in `./intern/` have also been excluded: - `./intern/cycles/` it's own `AUTHORS` file is planned. - `./intern/opensubdiv/`. An "AUTHORS" file has been added, using the chromium projects authors file as a template. Design task: #110784 Ref !110783.
109 lines
3.6 KiB
C
109 lines
3.6 KiB
C
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup DNA
|
|
* \brief Enumerations for `DNA_ID.h`.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum eIconSizes {
|
|
ICON_SIZE_ICON = 0,
|
|
ICON_SIZE_PREVIEW = 1,
|
|
|
|
NUM_ICON_SIZES,
|
|
};
|
|
|
|
/**
|
|
* Defines for working with IDs.
|
|
*
|
|
* The tags represent types! This is a dirty way of enabling RTTI. The
|
|
* sig_byte end endian defines aren't really used much.
|
|
*/
|
|
|
|
#ifdef __BIG_ENDIAN__
|
|
/* big endian */
|
|
# define MAKE_ID2(c, d) ((c) << 8 | (d))
|
|
#else
|
|
/* little endian */
|
|
# define MAKE_ID2(c, d) ((d) << 8 | (c))
|
|
#endif
|
|
|
|
/**
|
|
* ID from database.
|
|
*
|
|
* Written to #BHead.code (for file IO)
|
|
* and the first 2 bytes of #ID.name (for runtime checks, see #GS macro).
|
|
*
|
|
* Update #ID_TYPE_IS_DEPRECATED() when deprecating types.
|
|
*/
|
|
typedef enum ID_Type {
|
|
ID_SCE = MAKE_ID2('S', 'C'), /* Scene */
|
|
ID_LI = MAKE_ID2('L', 'I'), /* Library */
|
|
ID_OB = MAKE_ID2('O', 'B'), /* Object */
|
|
ID_ME = MAKE_ID2('M', 'E'), /* Mesh */
|
|
ID_CU_LEGACY = MAKE_ID2('C', 'U'), /* Curve. ID_CV should be used in the future (see #95355). */
|
|
ID_MB = MAKE_ID2('M', 'B'), /* MetaBall */
|
|
ID_MA = MAKE_ID2('M', 'A'), /* Material */
|
|
ID_TE = MAKE_ID2('T', 'E'), /* Tex (Texture) */
|
|
ID_IM = MAKE_ID2('I', 'M'), /* Image */
|
|
ID_LT = MAKE_ID2('L', 'T'), /* Lattice */
|
|
ID_LA = MAKE_ID2('L', 'A'), /* Light */
|
|
ID_CA = MAKE_ID2('C', 'A'), /* Camera */
|
|
ID_IP = MAKE_ID2('I', 'P'), /* Ipo (depreciated, replaced by FCurves) */
|
|
ID_KE = MAKE_ID2('K', 'E'), /* Key (shape key) */
|
|
ID_WO = MAKE_ID2('W', 'O'), /* World */
|
|
ID_SCR = MAKE_ID2('S', 'R'), /* Screen */
|
|
ID_VF = MAKE_ID2('V', 'F'), /* VFont (Vector Font) */
|
|
ID_TXT = MAKE_ID2('T', 'X'), /* Text */
|
|
ID_SPK = MAKE_ID2('S', 'K'), /* Speaker */
|
|
ID_SO = MAKE_ID2('S', 'O'), /* Sound */
|
|
ID_GR = MAKE_ID2('G', 'R'), /* Collection */
|
|
ID_AR = MAKE_ID2('A', 'R'), /* bArmature */
|
|
ID_AC = MAKE_ID2('A', 'C'), /* bAction */
|
|
ID_NT = MAKE_ID2('N', 'T'), /* bNodeTree */
|
|
ID_BR = MAKE_ID2('B', 'R'), /* Brush */
|
|
ID_PA = MAKE_ID2('P', 'A'), /* ParticleSettings */
|
|
ID_GD_LEGACY = MAKE_ID2('G', 'D'), /* bGPdata, (legacy Grease Pencil) */
|
|
ID_WM = MAKE_ID2('W', 'M'), /* WindowManager */
|
|
ID_MC = MAKE_ID2('M', 'C'), /* MovieClip */
|
|
ID_MSK = MAKE_ID2('M', 'S'), /* Mask */
|
|
ID_LS = MAKE_ID2('L', 'S'), /* FreestyleLineStyle */
|
|
ID_PAL = MAKE_ID2('P', 'L'), /* Palette */
|
|
ID_PC = MAKE_ID2('P', 'C'), /* PaintCurve */
|
|
ID_CF = MAKE_ID2('C', 'F'), /* CacheFile */
|
|
ID_WS = MAKE_ID2('W', 'S'), /* WorkSpace */
|
|
ID_LP = MAKE_ID2('L', 'P'), /* LightProbe */
|
|
ID_CV = MAKE_ID2('C', 'V'), /* Curves */
|
|
ID_PT = MAKE_ID2('P', 'T'), /* PointCloud */
|
|
ID_VO = MAKE_ID2('V', 'O'), /* Volume */
|
|
ID_GP = MAKE_ID2('G', 'P'), /* Grease Pencil */
|
|
} ID_Type;
|
|
|
|
/* Only used as 'placeholder' in .blend files for directly linked data-blocks. */
|
|
#define ID_LINK_PLACEHOLDER MAKE_ID2('I', 'D') /* (internal use only) */
|
|
|
|
/* Deprecated. */
|
|
#define ID_SCRN MAKE_ID2('S', 'N')
|
|
|
|
/* NOTE: Fake IDs, needed for `g.sipo->blocktype` or outliner. */
|
|
#define ID_SEQ MAKE_ID2('S', 'Q')
|
|
/* constraint */
|
|
#define ID_CO MAKE_ID2('C', 'O')
|
|
/* pose (action channel, used to be ID_AC in code, so we keep code for backwards compatible). */
|
|
#define ID_PO MAKE_ID2('A', 'C')
|
|
/* used in outliner... */
|
|
#define ID_NLA MAKE_ID2('N', 'L')
|
|
/* fluidsim Ipo */
|
|
#define ID_FLUIDSIM MAKE_ID2('F', 'S')
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|