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:
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_asset_types.h14
-rw-r--r--source/blender/makesdna/DNA_cloth_types.h2
-rw-r--r--source/blender/makesdna/DNA_constraint_types.h4
-rw-r--r--source/blender/makesdna/DNA_customdata_types.h9
-rw-r--r--source/blender/makesdna/DNA_gpencil_modifier_defaults.h2
-rw-r--r--source/blender/makesdna/DNA_gpencil_modifier_types.h6
-rw-r--r--source/blender/makesdna/DNA_gpencil_types.h2
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h2
-rw-r--r--source/blender/makesdna/DNA_node_types.h104
-rw-r--r--source/blender/makesdna/DNA_scene_types.h7
-rw-r--r--source/blender/makesdna/DNA_sequence_types.h45
-rw-r--r--source/blender/makesdna/DNA_space_types.h61
-rw-r--r--source/blender/makesdna/DNA_tracking_types.h4
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h13
-rw-r--r--source/blender/makesdna/DNA_uuid_types.h6
15 files changed, 239 insertions, 42 deletions
diff --git a/source/blender/makesdna/DNA_asset_types.h b/source/blender/makesdna/DNA_asset_types.h
index 2975915eccd..f5bdad3e79e 100644
--- a/source/blender/makesdna/DNA_asset_types.h
+++ b/source/blender/makesdna/DNA_asset_types.h
@@ -22,6 +22,7 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#include "DNA_uuid_types.h"
#ifdef __cplusplus
extern "C" {
@@ -58,6 +59,19 @@ typedef struct AssetMetaData {
/** Custom asset meta-data. Cannot store pointers to IDs (#STRUCT_NO_DATABLOCK_IDPROPERTIES)! */
struct IDProperty *properties;
+ /**
+ * Asset Catalog identifier. Should not contain spaces.
+ * Mapped to a path in the asset catalog hierarchy by an #AssetCatalogService.
+ * Use #BKE_asset_metadata_catalog_id_set() to ensure a valid ID is set.
+ */
+ struct bUUID catalog_id;
+ /**
+ * Short name of the asset's catalog. This is for debugging purposes only, to allow (partial)
+ * reconstruction of asset catalogs in the unfortunate case that the mapping from catalog UUID to
+ * catalog path is lost. The catalog's simple name is copied to #catalog_simple_name whenever
+ * #catalog_id is updated. */
+ char catalog_simple_name[64]; /* MAX_NAME */
+
/** Optional description of this asset for display in the UI. Dynamic length. */
char *description;
/** User defined tags for this asset. The asset manager uses these for filtering, but how they
diff --git a/source/blender/makesdna/DNA_cloth_types.h b/source/blender/makesdna/DNA_cloth_types.h
index e2eea5e5422..49b2862032f 100644
--- a/source/blender/makesdna/DNA_cloth_types.h
+++ b/source/blender/makesdna/DNA_cloth_types.h
@@ -42,7 +42,7 @@ extern "C" {
*/
typedef struct ClothSimSettings {
- /** UNUSED atm. */
+ /** UNUSED. */
struct LinkNode *cache;
/** See SB. */
float mingoal;
diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h
index 4b4c24a7a4e..28756395f7d 100644
--- a/source/blender/makesdna/DNA_constraint_types.h
+++ b/source/blender/makesdna/DNA_constraint_types.h
@@ -81,8 +81,8 @@ typedef struct bConstraint {
/** Local influence ipo or driver */
struct Ipo *ipo DNA_DEPRECATED;
- /* below are readonly fields that are set at runtime
- * by the solver for use in the GE (only IK atm) */
+ /* Below are read-only fields that are set at runtime
+ * by the solver for use in the GE (only IK at the moment). */
/** Residual error on constraint expressed in blender unit. */
float lin_error;
/** Residual error on constraint expressed in radiant. */
diff --git a/source/blender/makesdna/DNA_customdata_types.h b/source/blender/makesdna/DNA_customdata_types.h
index 6acea8da15f..36bdd4915ff 100644
--- a/source/blender/makesdna/DNA_customdata_types.h
+++ b/source/blender/makesdna/DNA_customdata_types.h
@@ -84,7 +84,8 @@ typedef struct CustomData {
* MUST be >= CD_NUMTYPES, but we can't use a define here.
* Correct size is ensured in CustomData_update_typemap assert().
*/
- int typemap[51];
+ int typemap[52];
+ char _pad[4];
/** Number of layers, size of layers array. */
int totlayer, maxlayer;
/** In editmode, total size of all data layers. */
@@ -166,7 +167,9 @@ typedef enum CustomDataType {
CD_PROP_BOOL = 50,
- CD_NUMTYPES = 51,
+ CD_HAIRLENGTH = 51,
+
+ CD_NUMTYPES = 52,
} CustomDataType;
/* Bits for CustomDataMask */
@@ -220,6 +223,8 @@ typedef enum CustomDataType {
#define CD_MASK_PROP_FLOAT2 (1ULL << CD_PROP_FLOAT2)
#define CD_MASK_PROP_BOOL (1ULL << CD_PROP_BOOL)
+#define CD_MASK_HAIRLENGTH (1ULL << CD_HAIRLENGTH)
+
/** Multires loop data. */
#define CD_MASK_MULTIRES_GRIDS (CD_MASK_MDISPS | CD_GRID_PAINT_MASK)
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_defaults.h b/source/blender/makesdna/DNA_gpencil_modifier_defaults.h
index 2a3c6f4e3db..11299ae9717 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_defaults.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_defaults.h
@@ -318,7 +318,7 @@
.calculation_flags = LRT_ALLOW_DUPLI_OBJECTS | LRT_ALLOW_CLIPPING_BOUNDARIES | LRT_USE_CREASE_ON_SHARP_EDGES, \
.angle_splitting_threshold = DEG2RAD(60.0f), \
.chaining_image_threshold = 0.001f, \
- .overscan = 0.1f,\
+ .chain_smooth_tolerance = 0.2f,\
}
#define _DNA_DEFAULT_LengthGpencilModifierData \
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h
index 8d967a38808..ea5c81761c6 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_types.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h
@@ -1040,7 +1040,11 @@ typedef struct LineartGpencilModifierData {
/** `0..PI` angle, for splitting strokes at sharp points. */
float angle_splitting_threshold;
- /* Doubles as geometry threshold when geometry space chaining is enabled */
+ /** Strength for smoothing jagged chains. */
+ float chain_smooth_tolerance;
+ int _pad1;
+
+ /* CPU mode */
float chaining_image_threshold;
/* Ported from SceneLineArt flags. */
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 68bd2961f23..0f570f8603d 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -49,6 +49,8 @@ struct MDeformVert;
#define GPENCIL_MIN_FILL_FAC 0.05f
#define GPENCIL_MAX_FILL_FAC 8.0f
+#define GPENCIL_MAX_THICKNESS 5000
+
/* ***************************************** */
/* GP Stroke Points */
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 31daa778b03..631db64ddd3 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -848,7 +848,7 @@ typedef struct CollisionModifierData {
struct MVert *x;
/** Position at the end of the frame. */
struct MVert *xnew;
- /** Unused atm, but was discussed during sprint. */
+ /** Unused at the moment, but was discussed during sprint. */
struct MVert *xold;
/** New position at the actual inter-frame step. */
struct MVert *current_xnew;
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 18545666796..ea87cef1118 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -120,7 +120,10 @@ typedef struct bNodeSocket {
/* XXX deprecated, kept for forward compatibility */
short stack_type DNA_DEPRECATED;
char display_shape;
- char _pad[1];
+
+ /* #AttributeDomain used when the geometry nodes modifier creates an attribute for a group
+ * output. */
+ char attribute_domain;
/* Runtime-only cache of the number of input links, for multi-input sockets. */
short total_inputs;
@@ -445,6 +448,7 @@ typedef struct bNodeLink {
#define NODE_LINK_TEST (1 << 2) /* free test flag, undefined */
#define NODE_LINK_TEMP_HIGHLIGHT (1 << 3) /* Link is highlighted for picking. */
#define NODE_LINK_MUTED (1 << 4) /* Link is muted. */
+#define NODE_LINK_DRAGGED (1 << 5) /* Node link is being dragged by the user. */
/* tree->edit_quality/tree->render_quality */
#define NTREE_QUALITY_HIGH 0
@@ -459,6 +463,16 @@ typedef struct bNodeLink {
#define NTREE_CHUNKSIZE_512 512
#define NTREE_CHUNKSIZE_1024 1024
+/** Workaround to forward-declare C++ type in C header. */
+#ifdef __cplusplus
+namespace blender::nodes {
+struct FieldInferencingInterface;
+}
+using FieldInferencingInterfaceHandle = blender::nodes::FieldInferencingInterface;
+#else
+typedef struct FieldInferencingInterfaceHandle FieldInferencingInterfaceHandle;
+#endif
+
/* the basis for a Node tree, all links and nodes reside internal here */
/* only re-usable node trees are in the library though,
* materials and textures allocate own tree struct */
@@ -481,6 +495,8 @@ typedef struct bNodeTree {
float view_center[2];
ListBase nodes, links;
+ /** Information about how inputs and outputs of the node group interact with fields. */
+ FieldInferencingInterfaceHandle *field_inferencing_interface;
/** Set init on fileread. */
int type, init;
@@ -575,6 +591,9 @@ typedef enum eNodeTreeUpdate {
NTREE_UPDATE_NODES = (1 << 1), /* nodes or sockets have been added or removed */
NTREE_UPDATE_GROUP_IN = (1 << 4), /* group inputs have changed */
NTREE_UPDATE_GROUP_OUT = (1 << 5), /* group outputs have changed */
+ /* The field interface has changed. So e.g. an output that was always a field before is not
+ * anymore. This implies that the field type inferencing has to be done again. */
+ NTREE_UPDATE_FIELD_INFERENCING = (1 << 6),
/* group has changed (generic flag including all other group flags) */
NTREE_UPDATE_GROUP = (NTREE_UPDATE_GROUP_IN | NTREE_UPDATE_GROUP_OUT),
} eNodeTreeUpdate;
@@ -836,7 +855,7 @@ typedef struct NodeVertexCol {
char name[64];
} NodeVertexCol;
-/* qdn: Defocus blur node */
+/** Defocus blur node. */
typedef struct NodeDefocus {
char bktype, _pad0, preview, gamco;
short samples, no_zbuf;
@@ -852,7 +871,7 @@ typedef struct NodeScriptDict {
void *node;
} NodeScriptDict;
-/* qdn: glare node */
+/** glare node. */
typedef struct NodeGlare {
char quality, type, iter;
/* XXX angle is only kept for backward/forward compatibility,
@@ -863,14 +882,14 @@ typedef struct NodeGlare {
char _pad1[4];
} NodeGlare;
-/* qdn: tonemap node */
+/** Tonemap node. */
typedef struct NodeTonemap {
float key, offset, gamma;
float f, m, a, c;
int type;
} NodeTonemap;
-/* qdn: lens distortion node */
+/** Lens distortion node. */
typedef struct NodeLensDist {
short jit, proj, fit;
char _pad[2];
@@ -1222,6 +1241,11 @@ typedef struct NodeAttributeMix {
uint8_t input_type_b;
} NodeAttributeMix;
+typedef struct NodeRandomValue {
+ /* CustomDataType. */
+ uint8_t data_type;
+} NodeRandomValue;
+
typedef struct NodeAttributeRandomize {
/* CustomDataType. */
uint8_t data_type;
@@ -1338,6 +1362,11 @@ typedef struct NodeGeometryAttributeProximity {
uint8_t target_geometry_element;
} NodeGeometryAttributeProximity;
+typedef struct NodeGeometryProximity {
+ /* GeometryNodeProximityTargetType. */
+ uint8_t target_element;
+} NodeGeometryProximity;
+
typedef struct NodeGeometryVolumeToMesh {
/* VolumeToMeshResolutionMode */
uint8_t resolution_mode;
@@ -1487,6 +1516,11 @@ typedef struct NodeGeometryCurveFill {
uint8_t mode;
} NodeGeometryCurveFill;
+typedef struct NodeGeometryMeshToPoints {
+ /* GeometryNodeMeshToPointsMode */
+ uint8_t mode;
+} NodeGeometryMeshToPoints;
+
typedef struct NodeGeometryAttributeCapture {
/* CustomDataType. */
int8_t data_type;
@@ -1494,6 +1528,16 @@ typedef struct NodeGeometryAttributeCapture {
int8_t domain;
} NodeGeometryAttributeCapture;
+typedef struct NodeGeometryStringToCurves {
+ /* GeometryNodeStringToCurvesOverflowMode */
+ uint8_t overflow;
+ /* GeometryNodeStringToCurvesAlignXMode */
+ uint8_t align_x;
+ /* GeometryNodeStringToCurvesAlignYMode */
+ uint8_t align_y;
+ char _pad[1];
+} NodeGeometryStringToCurves;
+
/* script node mode */
#define NODE_SCRIPT_INTERNAL 0
#define NODE_SCRIPT_EXTERNAL 1
@@ -1907,6 +1951,12 @@ typedef enum GeometryNodeAttributeProximityTargetType {
GEO_NODE_PROXIMITY_TARGET_FACES = 2,
} GeometryNodeAttributeProximityTargetType;
+typedef enum GeometryNodeProximityTargetType {
+ GEO_NODE_PROX_TARGET_POINTS = 0,
+ GEO_NODE_PROX_TARGET_EDGES = 1,
+ GEO_NODE_PROX_TARGET_FACES = 2,
+} GeometryNodeProximityTargetType;
+
typedef enum GeometryNodeBooleanOperation {
GEO_NODE_BOOLEAN_INTERSECT = 0,
GEO_NODE_BOOLEAN_UNION = 1,
@@ -1972,11 +2022,21 @@ typedef enum GeometryNodePointDistributeMode {
GEO_NODE_POINT_DISTRIBUTE_POISSON = 1,
} GeometryNodePointDistributeMode;
+typedef enum GeometryNodeDistributePointsOnFacesMode {
+ GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_RANDOM = 0,
+ GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_POISSON = 1,
+} GeometryNodeDistributePointsOnFacesMode;
+
typedef enum GeometryNodeRotatePointsType {
GEO_NODE_POINT_ROTATE_TYPE_EULER = 0,
GEO_NODE_POINT_ROTATE_TYPE_AXIS_ANGLE = 1,
} GeometryNodeRotatePointsType;
+typedef enum FunctionNodeRotatePointsType {
+ FN_NODE_ROTATE_EULER_TYPE_EULER = 0,
+ FN_NODE_ROTATE_EULER_TYPE_AXIS_ANGLE = 1,
+} FunctionNodeRotatePointsType;
+
typedef enum GeometryNodeAttributeVectorRotateMode {
GEO_NODE_VECTOR_ROTATE_TYPE_AXIS = 0,
GEO_NODE_VECTOR_ROTATE_TYPE_AXIS_X = 1,
@@ -1997,6 +2057,11 @@ typedef enum GeometryNodeRotatePointsSpace {
GEO_NODE_POINT_ROTATE_SPACE_POINT = 1,
} GeometryNodeRotatePointsSpace;
+typedef enum FunctionNodeRotateEulerSpace {
+ FN_NODE_ROTATE_EULER_SPACE_OBJECT = 0,
+ FN_NODE_ROTATE_EULER_SPACE_POINT = 1,
+} FunctionNodeRotateEulerSpace;
+
typedef enum GeometryNodeAlignRotationToVectorAxis {
GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_X = 0,
GEO_NODE_ALIGN_ROTATION_TO_VECTOR_AXIS_Y = 1,
@@ -2085,6 +2150,35 @@ typedef enum GeometryNodeCurveFillMode {
GEO_NODE_CURVE_FILL_MODE_NGONS = 1,
} GeometryNodeCurveFillMode;
+typedef enum GeometryNodeMeshToPointsMode {
+ GEO_NODE_MESH_TO_POINTS_VERTICES = 0,
+ GEO_NODE_MESH_TO_POINTS_EDGES = 1,
+ GEO_NODE_MESH_TO_POINTS_FACES = 2,
+ GEO_NODE_MESH_TO_POINTS_CORNERS = 3,
+} GeometryNodeMeshToPointsMode;
+
+typedef enum GeometryNodeStringToCurvesOverflowMode {
+ GEO_NODE_STRING_TO_CURVES_MODE_OVERFLOW = 0,
+ GEO_NODE_STRING_TO_CURVES_MODE_SCALE_TO_FIT = 1,
+ GEO_NODE_STRING_TO_CURVES_MODE_TRUNCATE = 2,
+} GeometryNodeStringToCurvesOverflowMode;
+
+typedef enum GeometryNodeStringToCurvesAlignXMode {
+ GEO_NODE_STRING_TO_CURVES_ALIGN_X_LEFT = 0,
+ GEO_NODE_STRING_TO_CURVES_ALIGN_X_CENTER = 1,
+ GEO_NODE_STRING_TO_CURVES_ALIGN_X_RIGHT = 2,
+ GEO_NODE_STRING_TO_CURVES_ALIGN_X_JUSTIFY = 3,
+ GEO_NODE_STRING_TO_CURVES_ALIGN_X_FLUSH = 4,
+} GeometryNodeStringToCurvesAlignXMode;
+
+typedef enum GeometryNodeStringToCurvesAlignYMode {
+ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_TOP_BASELINE = 0,
+ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_TOP = 1,
+ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_MIDDLE = 2,
+ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_BOTTOM_BASELINE = 3,
+ GEO_NODE_STRING_TO_CURVES_ALIGN_Y_BOTTOM = 4,
+} GeometryNodeStringToCurvesAlignYMode;
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index b28c3ac2b85..9a5c51825e1 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1463,14 +1463,15 @@ typedef struct ToolSettings {
char edge_mode_live_unwrap;
- char _pad1[1];
-
/* Transform */
char transform_pivot_point;
char transform_flag;
- char snap_mode, snap_node_mode;
+ char snap_mode;
+ char snap_node_mode;
char snap_uv_mode;
char snap_flag;
+ /** UV equivalent of `snap_flag`, limited to: #SCE_SNAP_ABS_GRID. */
+ char snap_uv_flag;
char snap_target;
char snap_transform_mode_flag;
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index 25330acd486..a71f86eae9f 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -79,9 +79,13 @@ typedef struct StripTransform {
} StripTransform;
typedef struct StripColorBalance {
+ int method;
float lift[3];
float gamma[3];
float gain[3];
+ float slope[3];
+ float offset[3];
+ float power[3];
int flag;
char _pad[4];
/* float exposure; */
@@ -232,15 +236,21 @@ typedef struct Sequence {
int blend_mode;
float blend_opacity;
+ /* Tag color showed if `SEQ_TIMELINE_SHOW_STRIP_COLOR_TAG` is set. */
+ int8_t color_tag;
+
+ char alpha_mode;
+ char _pad4[2];
+
+ int cache_flag;
+
/* is sfra needed anymore? - it looks like its only used in one place */
/** Starting frame according to the timeline of the scene. */
int sfra;
- char alpha_mode;
- char _pad[2];
-
/* Multiview */
char views_format;
+ char _pad[3];
struct Stereo3dFormat *stereo3d_format;
struct IDProperty *prop;
@@ -248,9 +258,6 @@ typedef struct Sequence {
/* modifiers */
ListBase modifiers;
- int cache_flag;
- int _pad2[3];
-
SequenceRuntime runtime;
} Sequence;
@@ -431,6 +438,11 @@ typedef struct ColorBalanceModifierData {
float color_multiply;
} ColorBalanceModifierData;
+enum {
+ SEQ_COLOR_BALANCE_METHOD_LIFTGAMMAGAIN = 0,
+ SEQ_COLOR_BALANCE_METHOD_SLOPEOFFSETPOWER = 1,
+};
+
typedef struct CurvesModifierData {
SequenceModifierData modifier;
@@ -486,7 +498,7 @@ typedef struct SequencerScopes {
struct ImBuf *histogram_ibuf;
} SequencerScopes;
-#define MAXSEQ 32
+#define MAXSEQ 128
#define SELECT 1
@@ -568,6 +580,9 @@ enum {
#define SEQ_COLOR_BALANCE_INVERSE_GAIN 1
#define SEQ_COLOR_BALANCE_INVERSE_GAMMA 2
#define SEQ_COLOR_BALANCE_INVERSE_LIFT 4
+#define SEQ_COLOR_BALANCE_INVERSE_SLOPE 8
+#define SEQ_COLOR_BALANCE_INVERSE_OFFSET 16
+#define SEQ_COLOR_BALANCE_INVERSE_POWER 32
/* !!! has to be same as IMB_imbuf.h IMB_PROXY_... and IMB_TC_... */
@@ -727,6 +742,22 @@ enum {
SEQ_CACHE_STORE_THUMBNAIL = (1 << 12),
};
+/* Sequence->color_tag. */
+typedef enum SequenceColorTag {
+ SEQUENCE_COLOR_NONE = -1,
+ SEQUENCE_COLOR_01,
+ SEQUENCE_COLOR_02,
+ SEQUENCE_COLOR_03,
+ SEQUENCE_COLOR_04,
+ SEQUENCE_COLOR_05,
+ SEQUENCE_COLOR_06,
+ SEQUENCE_COLOR_07,
+ SEQUENCE_COLOR_08,
+ SEQUENCE_COLOR_09,
+
+ SEQUENCE_COLOR_TOT,
+} SequenceColorTag;
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index e849039fa93..aa74e7712c0 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -599,6 +599,7 @@ typedef struct SequencerTimelineOverlay {
typedef enum eSpaceSeq_SequencerTimelineOverlay_Flag {
SEQ_TIMELINE_SHOW_STRIP_OFFSETS = (1 << 1),
SEQ_TIMELINE_SHOW_THUMBNAILS = (1 << 2),
+ SEQ_TIMELINE_SHOW_STRIP_COLOR_TAG = (1 << 3), /* use Sequence->color_tag */
SEQ_TIMELINE_SHOW_FCURVES = (1 << 5),
SEQ_TIMELINE_ALL_WAVEFORMS = (1 << 7), /* draw all waveforms */
SEQ_TIMELINE_NO_WAVEFORMS = (1 << 8), /* draw no waveforms */
@@ -805,14 +806,25 @@ typedef struct FileAssetSelectParams {
FileSelectParams base_params;
AssetLibraryReference asset_library_ref;
+ short asset_catalog_visibility; /* eFileSel_Params_AssetCatalogVisibility */
+ char _pad[6];
+ /** If #asset_catalog_visibility is #FILE_SHOW_ASSETS_FROM_CATALOG, this sets the ID of the
+ * catalog to show. */
+ bUUID catalog_id;
short import_type; /* eFileAssetImportType */
- char _pad[6];
+ char _pad2[6];
} FileAssetSelectParams;
typedef enum eFileAssetImportType {
+ /** Regular data-block linking. */
FILE_ASSET_IMPORT_LINK = 0,
+ /** Regular data-block appending (basically linking + "Make Local"). */
FILE_ASSET_IMPORT_APPEND = 1,
+ /** Append data-block with the #BLO_LIBLINK_APPEND_LOCAL_ID_REUSE flag enabled. Some typically
+ * heavy data dependencies (e.g. the image data-blocks of a material, the mesh of an object) may
+ * be reused from an earlier append. */
+ FILE_ASSET_IMPORT_APPEND_REUSE = 2,
} eFileAssetImportType;
/**
@@ -965,7 +977,10 @@ enum eFileDetails {
typedef enum eFileSelectType {
FILE_LOADLIB = 1,
FILE_MAIN = 2,
+ /** Load assets from #Main. */
FILE_MAIN_ASSET = 3,
+ /** Load assets of an asset library containing external files. */
+ FILE_ASSET_LIBRARY = 4,
FILE_UNIX = 8,
FILE_BLENDER = 8, /* don't display relative paths */
@@ -984,23 +999,31 @@ typedef enum eFileSel_Action {
* (WM and BLO code area, see #eBLOLibLinkFlags in BLO_readfile.h).
*/
typedef enum eFileSel_Params_Flag {
- FILE_APPEND_SET_FAKEUSER = (1 << 0),
+ FILE_PARAMS_FLAG_UNUSED_1 = (1 << 0),
FILE_RELPATH = (1 << 1),
FILE_LINK = (1 << 2),
FILE_HIDE_DOT = (1 << 3),
FILE_AUTOSELECT = (1 << 4),
FILE_ACTIVE_COLLECTION = (1 << 5),
- FILE_APPEND_RECURSIVE = (1 << 6),
+ FILE_PARAMS_FLAG_UNUSED_2 = (1 << 6),
FILE_DIRSEL_ONLY = (1 << 7),
FILE_FILTER = (1 << 8),
- FILE_OBDATA_INSTANCE = (1 << 9),
- FILE_COLLECTION_INSTANCE = (1 << 10),
+ FILE_PARAMS_FLAG_UNUSED_3 = (1 << 9),
+ FILE_PARAMS_FLAG_UNUSED_4 = (1 << 10),
FILE_SORT_INVERT = (1 << 11),
FILE_HIDE_TOOL_PROPS = (1 << 12),
FILE_CHECK_EXISTING = (1 << 13),
FILE_ASSETS_ONLY = (1 << 14),
+ /** Enables filtering by asset catalog. */
+ FILE_FILTER_ASSET_CATALOG = (1 << 15),
} eFileSel_Params_Flag;
+typedef enum eFileSel_Params_AssetCatalogVisibility {
+ FILE_SHOW_ASSETS_ALL_CATALOGS,
+ FILE_SHOW_ASSETS_FROM_CATALOG,
+ FILE_SHOW_ASSETS_WITHOUT_CATALOG,
+} eFileSel_Params_AssetCatalogVisibility;
+
/* sfile->params->rename_flag */
/* NOTE: short flag. Defined as bitflags, but currently only used as exclusive status markers... */
typedef enum eFileSel_Params_RenameFlag {
@@ -1175,13 +1198,10 @@ typedef struct SpaceImage {
char mode_prev;
char pin;
- char _pad1;
- /**
- * The currently active tile of the image when tile is enabled,
- * is kept in sync with the active faces tile.
- */
- short curtile;
- short lock;
+
+ char pixel_snap_mode;
+
+ char lock;
/** UV draw type. */
char dt_uv;
/** Sticky selection type. */
@@ -1189,14 +1209,19 @@ typedef struct SpaceImage {
char dt_uvstretch;
char around;
- int flag;
+ char _pad1[3];
- char pixel_snap_mode;
- char _pad2[7];
+ int flag;
float uv_opacity;
int tile_grid_shape[2];
+ /**
+ * UV editor custom-grid. Value of `N` will produce `NxN` grid.
+ * Use when #SI_CUSTOM_GRID is set.
+ */
+ int custom_grid_subdiv;
+ char _pad3[4];
MaskSpaceInfo mask_info;
SpaceImageOverlay overlay;
@@ -1252,6 +1277,7 @@ typedef enum eSpaceImage_Flag {
SI_FLAG_UNUSED_7 = (1 << 7), /* cleared */
SI_FLAG_UNUSED_8 = (1 << 8), /* cleared */
SI_COORDFLOATS = (1 << 9),
+
SI_FLAG_UNUSED_10 = (1 << 10),
SI_LIVE_UNWRAP = (1 << 11),
SI_USE_ALPHA = (1 << 12),
@@ -1263,7 +1289,7 @@ typedef enum eSpaceImage_Flag {
SI_FULLWINDOW = (1 << 16),
SI_FLAG_UNUSED_17 = (1 << 17),
- SI_FLAG_UNUSED_18 = (1 << 18), /* cleared */
+ SI_CUSTOM_GRID = (1 << 18),
/**
* This means that the image is drawn until it reaches the view edge,
@@ -1289,6 +1315,9 @@ typedef enum eSpaceImageOverlay_Flag {
SI_OVERLAY_SHOW_OVERLAYS = (1 << 0),
} eSpaceImageOverlay_Flag;
+/** Keep in sync with `STEPS_LEN` in `grid_frag.glsl`. */
+#define SI_GRID_STEPS_LEN 8
+
/** \} */
/* -------------------------------------------------------------------- */
diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h
index fb2d985d353..0e313183300 100644
--- a/source/blender/makesdna/DNA_tracking_types.h
+++ b/source/blender/makesdna/DNA_tracking_types.h
@@ -398,6 +398,8 @@ typedef struct MovieTrackingDopesheetChannel {
int *segments;
/** Longest segment length and total number of tracked frames. */
int max_segment, total_frames;
+ /** These numbers are valid only if tot_segment > 0. */
+ int first_not_disabled_marker_framenr, last_not_disabled_marker_framenr;
} MovieTrackingDopesheetChannel;
typedef struct MovieTrackingDopesheetCoverageSegment {
@@ -592,6 +594,8 @@ enum {
TRACKING_DOPE_SORT_LONGEST = 1,
TRACKING_DOPE_SORT_TOTAL = 2,
TRACKING_DOPE_SORT_AVERAGE_ERROR = 3,
+ TRACKING_DOPE_SORT_START = 4,
+ TRACKING_DOPE_SORT_END = 5,
};
/* MovieTrackingDopesheet->flag */
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index 4f86201ced2..291f6de5ba2 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -458,6 +458,10 @@ typedef struct ThemeCollectionColor {
unsigned char color[4];
} ThemeCollectionColor;
+typedef struct ThemeStripColor {
+ unsigned char color[4];
+} ThemeStripColor;
+
/**
* A theme.
*
@@ -500,8 +504,10 @@ typedef struct bTheme {
/* See COLLECTION_COLOR_TOT for the number of collection colors. */
ThemeCollectionColor collection_color[8];
+ /* See SEQUENCE_COLOR_TOT for the total number of strip colors. */
+ ThemeStripColor strip_color[9];
+
int active_theme_area;
- char _pad0[4];
} bTheme;
#define UI_THEMESPACE_START(btheme) \
@@ -635,7 +641,9 @@ typedef struct UserDef_Experimental {
/* Debug options, always available. */
char use_undo_legacy;
char no_override_auto_resync;
+ char no_proxy_to_override_conversion;
char use_cycles_debug;
+ char use_geometry_nodes_legacy;
char SANITIZE_AFTER_HERE;
/* The following options are automatically sanitized (set to 0)
* when the release cycle is not alpha. */
@@ -646,8 +654,7 @@ typedef struct UserDef_Experimental {
char use_sculpt_tools_tilt;
char use_extended_asset_browser;
char use_override_templates;
- char use_geometry_nodes_fields;
- char _pad[4];
+ char _pad[3];
/** `makesdna` does not allow empty structs. */
} UserDef_Experimental;
diff --git a/source/blender/makesdna/DNA_uuid_types.h b/source/blender/makesdna/DNA_uuid_types.h
index fa0a78f074b..dcebfed6be7 100644
--- a/source/blender/makesdna/DNA_uuid_types.h
+++ b/source/blender/makesdna/DNA_uuid_types.h
@@ -40,6 +40,12 @@ typedef struct bUUID {
uint8_t node[6];
} bUUID;
+/**
+ * Memory required for a string representation of a UUID according to RFC4122.
+ * This is 36 characters for the string + a trailing zero byte.
+ */
+#define UUID_STRING_LEN 37
+
#ifdef __cplusplus
}
#endif