Cleanup: comments (long lines) in makesdna

This commit is contained in:
Campbell Barton 2019-04-22 01:42:45 +10:00
parent e9a01c1d2f
commit 66c3a7c550
15 changed files with 137 additions and 97 deletions

View File

@ -113,13 +113,20 @@ enum {
/* IDP_GROUP */
enum {
IDP_GROUP_SUB_NONE = 0, /* default */
IDP_GROUP_SUB_MODE_OBJECT = 1, /* object mode settings */
IDP_GROUP_SUB_MODE_EDIT = 2, /* mesh edit mode settings */
IDP_GROUP_SUB_ENGINE_RENDER = 3, /* render engine settings */
IDP_GROUP_SUB_OVERRIDE = 4, /* data override */
IDP_GROUP_SUB_MODE_PAINT_WEIGHT = 5, /* weight paint mode settings */
IDP_GROUP_SUB_MODE_PAINT_VERTEX = 6, /* vertex paint mode settings */
/** Default. */
IDP_GROUP_SUB_NONE = 0,
/** Object mode settings. */
IDP_GROUP_SUB_MODE_OBJECT = 1,
/** Mesh edit mode settings. */
IDP_GROUP_SUB_MODE_EDIT = 2,
/** Render engine settings. */
IDP_GROUP_SUB_ENGINE_RENDER = 3,
/** Data override. */
IDP_GROUP_SUB_OVERRIDE = 4,
/** Weight paint mode settings. */
IDP_GROUP_SUB_MODE_PAINT_WEIGHT = 5,
/** Vertex paint mode settings. */
IDP_GROUP_SUB_MODE_PAINT_VERTEX = 6,
};
/*->flag*/
@ -146,7 +153,8 @@ typedef struct IDOverrideStaticPropertyOperation {
char _pad0[4];
/* Sub-item references, if needed (for arrays or collections only).
* We need both reference and local values to allow e.g. insertion into collections (constraints, modifiers...).
* We need both reference and local values to allow e.g. insertion into collections
* (constraints, modifiers...).
* In collection case, if names are defined, they are used in priority.
* Names are pointers (instead of char[64]) to save some space, NULL when unset.
* Indices are -1 when unset. */
@ -465,7 +473,8 @@ enum {
/**
* id->tag (runtime-only).
*
* Those flags belong to three different categories, which have different expected handling in code:
* Those flags belong to three different categories,
* which have different expected handling in code:
*
* - RESET_BEFORE_USE: piece of code that wants to use such flag
* has to ensure they are properly 'reset' first.

View File

@ -574,8 +574,8 @@ typedef enum eItasc_Solver {
* ensure that action-groups never end up being the sole 'owner' of a channel.
*
* This is also exploited for bone-groups. Bone-Groups are stored per bPose, and are used
* primarily to color bones in the 3d-view. There are other benefits too, but those are mostly related
* to Action-Groups.
* primarily to color bones in the 3d-view. There are other benefits too, but those are mostly
* related to Action-Groups.
*
* Note that these two uses each have their own RNA 'ActionGroup' and 'BoneGroup'.
*/
@ -630,13 +630,13 @@ typedef enum eActionGroup_Flag {
/* Action - reusable F-Curve 'bag' (act)
*
* This contains F-Curves that may affect settings from more than one ID blocktype and/or
* datablock (i.e. sub-data linked/used directly to the ID block that the animation data is linked to),
* but with the restriction that the other unrelated data (i.e. data that is not directly used or linked to
* by the source ID block).
* This contains F-Curves that may affect settings from more than one ID blocktype and/or datablock
* (i.e. sub-data linked/used directly to the ID block that the animation data is linked to),
* but with the restriction that the other unrelated data (i.e. data that is not directly used or
* linked to by the source ID block).
*
* It serves as a 'unit' of reusable animation information (i.e. keyframes/motion data), that
* affects a group of related settings (as defined by the user).
* It serves as a 'unit' of reusable animation information (i.e. keyframes/motion data),
* that affects a group of related settings (as defined by the user).
*/
typedef struct bAction {
/** ID-serialisation for relinking. */

View File

@ -456,8 +456,8 @@ typedef enum eDriverVar_Flags {
* the value of some setting semi-procedurally.
*
* Drivers are stored as part of F-Curve data, so that the F-Curve's RNA-path settings (for storing
* what setting the driver will affect). The order in which they are stored defines the order that they're
* evaluated in. This order is set by the Depsgraph's sorting stuff.
* what setting the driver will affect). The order in which they are stored defines the order that
* they're evaluated in. This order is set by the Depsgraph's sorting stuff.
*/
typedef struct ChannelDriver {
/** Targets for this driver (i.e. list of DriverVar). */

View File

@ -20,9 +20,10 @@
/** \file
* \ingroup DNA
* \deprecated
* The contents of this file are now officially deprecated. They were used for the 'old' animation system,
* which has (as of 2.50) been replaced with a completely new system by Joshua Leung (aligorith). All defines,
* etc. are only still maintained to provide backwards compatibility for old files.
* The contents of this file are now officially deprecated.
* They were used for the 'old' animation system,
* which has (as of 2.50) been replaced with a completely new system by Joshua Leung (aligorith).
* All defines, etc. are only still maintained to provide backwards compatibility for old files.
*/
#ifndef __DNA_IPO_TYPES_H__

View File

@ -61,7 +61,8 @@ typedef struct EditMeshData {
} EditMeshData;
/**
* \warning Typical access is done via #BKE_mesh_runtime_looptri_ensure, #BKE_mesh_runtime_looptri_len.
* \warning Typical access is done via
* #BKE_mesh_runtime_looptri_ensure, #BKE_mesh_runtime_looptri_len.
*/
struct MLoopTri_Store {
/* WARNING! swapping between array (ready-to-be-used data) and array_wip

View File

@ -61,8 +61,9 @@ typedef struct MVert {
char flag, bweight;
} MVert;
/* tessellation vertex color data.
* at the moment alpha is abused for vertex painting and not used for transparency, note that red and blue are swapped
/** Tessellation vertex color data.
* at the moment alpha is abused for vertex painting and not used for transparency,
* note that red and blue are swapped
*/
typedef struct MCol {
unsigned char a, r, g, b;
@ -87,10 +88,12 @@ typedef struct MLoop {
} MLoop;
/**
* #MLoopTri's are lightweight triangulation data, for functionality that doesn't support ngons (#MPoly).
* #MLoopTri's are lightweight triangulation data,
* for functionality that doesn't support ngons (#MPoly).
* This is cache data created from (#MPoly, #MLoop & #MVert arrays).
* There is no attempt to maintain this data's validity over time, any changes to the underlying mesh
* invalidate the #MLoopTri array, which will need to be re-calculated.
* There is no attempt to maintain this data's validity over time,
* any changes to the underlying mesh invalidate the #MLoopTri array,
* which will need to be re-calculated.
*
* Users normally access this via #BKE_mesh_runtime_looptri_ensure.
* In rare cases its calculated directly, with #BKE_mesh_recalc_looptri.
@ -102,7 +105,8 @@ typedef struct MLoop {
*
* Storing loop indices (instead of vertex indices) allows us to
* directly access UV's, vertex-colors as well as vertices.
* The index of the source polygon is stored as well, giving access to materials and polygon normals.
* The index of the source polygon is stored as well,
* giving access to materials and polygon normals.
*
* \note This data is runtime only, never written to disk.
*
@ -148,7 +152,8 @@ typedef struct MLoop {
* };
* \endcode
*
* It may also be useful to check whether or not two vertices of a triangle form an edge in the underlying mesh.
* It may also be useful to check whether or not two vertices of a triangle
* form an edge in the underlying mesh.
*
* This can be done by checking the edge of the referenced loop (#MLoop.e),
* the winding of the #MLoopTri and the #MLoop's will always match,

View File

@ -264,13 +264,14 @@ typedef struct bNode {
rctf butr;
/** Optional preview area. */
rctf prvr;
/* XXX TODO
/**
* XXX TODO
* Node totr size depends on the prvr size, which in turn is determined from preview size.
* In earlier versions bNodePreview was stored directly in nodes, but since now there can be
* multiple instances using different preview images it is possible that required node size varies between instances.
* preview_xsize, preview_ysize defines a common reserved size for preview rect for now,
* could be replaced by more accurate node instance drawing, but that requires removing totr from DNA
* and replacing all uses with per-instance data.
* multiple instances using different preview images it is possible that required node size
* varies between instances. preview_xsize, preview_ysize defines a common reserved size for
* preview rect for now, could be replaced by more accurate node instance drawing,
* but that requires removing totr from DNA and replacing all uses with per-instance data.
*/
/** Reserved size of the preview rect. */
short preview_xsize, preview_ysize;
@ -466,10 +467,12 @@ typedef struct bNodeTree {
bNodeInstanceKey active_viewer_key;
char _pad[4];
/* execution data */
/* XXX It would be preferable to completely move this data out of the underlying node tree,
* so node tree execution could finally run independent of the tree itself. This would allow node trees
* to be merely linked by other data (materials, textures, etc.), as ID data is supposed to.
/** Execution data.
*
* XXX It would be preferable to completely move this data out of the underlying node tree,
* so node tree execution could finally run independent of the tree itself.
* This would allow node trees to be merely linked by other data (materials, textures, etc.),
* as ID data is supposed to.
* Execution data is generated from the tree once at execution start and can then be used
* as long as necessary, even while the tree is being modified.
*/

View File

@ -23,7 +23,7 @@
#ifndef __DNA_OBJECT_ENUMS_H__
#define __DNA_OBJECT_ENUMS_H__
/* Object.mode */
/** #Object.mode */
typedef enum eObjectMode {
OB_MODE_OBJECT = 0,
OB_MODE_EDIT = 1 << 0,
@ -39,17 +39,18 @@ typedef enum eObjectMode {
OB_MODE_WEIGHT_GPENCIL = 1 << 10,
} eObjectMode;
/* Any mode where the brush system is used. */
/** Any mode where the brush system is used. */
#define OB_MODE_ALL_PAINT \
(OB_MODE_SCULPT | OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT)
#define OB_MODE_ALL_PAINT_GPENCIL \
(OB_MODE_PAINT_GPENCIL | OB_MODE_SCULPT_GPENCIL | OB_MODE_WEIGHT_GPENCIL)
/* Any mode that uses Object.sculpt. */
/** Any mode that uses Object.sculpt. */
#define OB_MODE_ALL_SCULPT (OB_MODE_SCULPT | OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT)
/* Any mode that has data we need to free when switching modes, see: #ED_object_mode_generic_exit */
/** Any mode that has data we need to free when switching modes,
* see: #ED_object_mode_generic_exit */
#define OB_MODE_ALL_MODE_DATA \
(OB_MODE_EDIT | OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_SCULPT | OB_MODE_POSE)

View File

@ -239,11 +239,12 @@ typedef struct PointCache {
* buf for now it's the same for all points. Without adaptivity this can effect the perceived
* simulation quite a bit though. If for example particles are colliding with a horizontal
* plane (with high damping) they quickly come to a stop on the plane, however there are still
* forces acting on the particle (gravity and collisions), so the particle velocity isn't necessarily
* zero for the whole duration of the frame even if the particle seems stationary. If all simulation
* frames aren't cached (step > 1) these velocities are interpolated into movement for the non-cached
* frames. The result will look like the point is oscillating around the collision location. So for
* now cache step should be set to 1 for accurate reproduction of collisions.
* forces acting on the particle (gravity and collisions), so the particle velocity isn't
* necessarily zero for the whole duration of the frame even if the particle seems stationary.
* If all simulation frames aren't cached (step > 1) these velocities are interpolated into
* movement for the non-cached frames.
* The result will look like the point is oscillating around the collision location.
* So for now cache step should be set to 1 for accurate reproduction of collisions.
*/
int step;

View File

@ -166,9 +166,11 @@ typedef struct Panel {
/**
* Notes on Panel Categories:
*
* - #ARegion.panels_category (#PanelCategoryDyn) is a runtime only list of categories collected during draw.
* - #ARegion.panels_category (#PanelCategoryDyn)
* is a runtime only list of categories collected during draw.
*
* - #ARegion.panels_category_active (#PanelCategoryStack) is basically a list of strings (category id's).
* - #ARegion.panels_category_active (#PanelCategoryStack)
* is basically a list of strings (category id's).
*
* Clicking on a tab moves it to the front of ar->panels_category_active,
* If the context changes so this tab is no longer displayed,
@ -544,7 +546,7 @@ enum {
#define UI_LIST_AUTO_SIZE_THRESHOLD 1
/* uiList filter flags (dyn_data) */
/* WARNING! Those values are used by integer RNA too, which does not handle well values > INT_MAX...
/* WARNING! Those values are used by integer RNA too, which does not handle well values > INT_MAX.
* So please do not use 32nd bit here. */
enum {
UILST_FLT_ITEM = 1 << 30, /* This item has passed the filter process successfully. */

View File

@ -774,11 +774,12 @@ typedef enum eFileSel_Params_Flag {
/* sfile->params->rename_flag */
/* Note: short flag. Defined as bitflags, but currently only used as exclusive status markers... */
typedef enum eFileSel_Params_RenameFlag {
/* Used when we only have the name of the entry we want to rename, but not yet access to its matching file entry. */
/** Used when we only have the name of the entry we want to rename,
* but not yet access to its matching file entry. */
FILE_PARAMS_RENAME_PENDING = 1 << 0,
/* We are actually renaming an entry. */
/** We are actually renaming an entry. */
FILE_PARAMS_RENAME_ACTIVE = 1 << 1,
/* Used to scroll to newly renamed entry. */
/** Used to scroll to newly renamed entry. */
FILE_PARAMS_RENAME_POSTSCROLL_PENDING = 1 << 2,
FILE_PARAMS_RENAME_POSTSCROLL_ACTIVE = 1 << 3,
} eFileSel_Params_RenameFlag;
@ -821,10 +822,12 @@ typedef enum eDirEntry_SelectFlag {
/* ***** Related to file browser, but never saved in DNA, only here to help with RNA. ***** */
/* About Unique identifier.
/**
* About Unique identifier.
*
* Stored in a CustomProps once imported.
* Each engine is free to use it as it likes - it will be the only thing passed to it by blender to identify
* asset/variant/version (concatenating the three into a single 48 bytes one).
* Each engine is free to use it as it likes - it will be the only thing passed to it by blender to
* identify asset/variant/version (concatenating the three into a single 48 bytes one).
* Assumed to be 128bits, handled as four integers due to lack of real bytes proptype in RNA :|.
*/
#define ASSET_UUID_LENGTH 16
@ -918,12 +921,17 @@ typedef struct FileDirEntry {
int act_variant;
} FileDirEntry;
/* Array of direntries. */
/* This struct is used in various, different contexts.
* In Filebrowser UI, it stores the total number of available entries, the number of visible (filtered) entries,
* and a subset of those in 'entries' ListBase, from idx_start (included) to idx_end (excluded).
* In AssetEngine context (i.e. outside of 'browsing' context), entries contain all needed data, there is no filtering,
* so nbr_entries_filtered, entry_idx_start and entry_idx_end should all be set to -1.
/** Array of direntries.
*
* This struct is used in various, different contexts.
*
* In Filebrowser UI, it stores the total number of available entries, the number of visible
* (filtered) entries, and a subset of those in 'entries' ListBase, from idx_start (included)
* to idx_end (excluded).
*
* In AssetEngine context (i.e. outside of 'browsing' context), entries contain all needed data,
* there is no filtering, so nbr_entries_filtered, entry_idx_start and entry_idx_end
* should all be set to -1.
*/
#
#
@ -1278,10 +1286,12 @@ typedef struct SpaceNode {
/** Mouse pos for drawing socketless link and adding nodes. */
float cursor[2];
/* XXX nodetree pointer info is all in the path stack now,
* remove later on and use bNodeTreePath instead. For now these variables are set when pushing/popping
* from path stack, to avoid having to update all the functions and operators. Can be done when
* design is accepted and everything is properly tested.
/**
* XXX nodetree pointer info is all in the path stack now,
* remove later on and use bNodeTreePath instead.
* For now these variables are set when pushing/popping
* from path stack, to avoid having to update all the functions and operators.
* Can be done when design is accepted and everything is properly tested.
*/
ListBase treepath;

View File

@ -949,7 +949,8 @@ typedef enum eZoomFrame_Mode {
} eZoomFrame_Mode;
/** Auto-Keying flag
* #UserDef.autokey_flag (not strictly used when autokeying only - is also used when keyframing these days)
* #UserDef.autokey_flag (not strictly used when autokeying only -
* is also used when keyframing these days).
* \note #eAutokey_Flag is used with a macro, search for lines like IS_AUTOKEY_FLAG(INSERTAVAIL).
*/
typedef enum eAutokey_Flag {

View File

@ -77,8 +77,10 @@ typedef struct bToolRef {
/**
* \brief Wrapper for bScreen.
*
* bScreens are IDs and thus stored in a main list-base. We also want to store a list-base of them within the
* workspace (so each workspace can have its own set of screen-layouts) which would mess with the next/prev pointers.
* #bScreens are IDs and thus stored in a main list-base.
* We also want to store a list-base of them within the workspace
* (so each workspace can have its own set of screen-layouts)
* which would mess with the next/prev pointers.
* So we use this struct to wrap a bScreen pointer with another pair of next/prev pointers.
*/
typedef struct WorkSpaceLayout {

View File

@ -94,37 +94,38 @@
* structs. Only needed to keep a file short though...
*
* ALLOWED AND TESTED CHANGES IN STRUCTS:
* - type change (a char to float will be divided by 255)
* - location within a struct (everything can be randomly mixed up)
* - struct within struct (within struct etc), this is recursive
* - adding new elements, will be default initialized zero
* - removing elements
* - change of array sizes
* - change of a pointer type: when the name doesn't change the contents is copied
* - Type change (a char to float will be divided by 255).
* - Location within a struct (everything can be randomly mixed up).
* - Struct within struct (within struct etc), this is recursive.
* - Adding new elements, will be default initialized zero.
* - Removing elements.
* - Change of array sizes.
* - Change of a pointer type: when the name doesn't change the contents is copied.
*
* NOT YET:
* - array (``vec[3]``) to float struct (``vec3f``)
* - array (``vec[3]``) to float struct (``vec3f``).
*
* DONE:
* - endian compatibility
* - pointer conversion (32-64 bits)
* - Endian compatibility.
* - Pointer conversion (32-64 bits).
*
* IMPORTANT:
* - do not use #defines in structs for array lengths, this cannot be read by the dna functions
* - do not use uint, but unsigned int instead, ushort and ulong are allowed
* - only use a long in Blender if you want this to be the size of a pointer. so it is
* 32 bits or 64 bits, dependent at the cpu architecture
* - chars are always unsigned
* - alignment of variables has to be done in such a way, that any system does
* - Do not use #defines in structs for array lengths, this cannot be read by the dna functions.
* - Do not use uint, but unsigned int instead, ushort and ulong are allowed.
* - Only use a long in Blender if you want this to be the size of a pointer. so it is
* 32 bits or 64 bits, dependent at the cpu architecture.
* - Chars are always unsigned
* - Alignment of variables has to be done in such a way, that any system does
* not create 'padding' (gaps) in structures. So make sure that:
* - short: 2 aligned
* - int: 4 aligned
* - float: 4 aligned
* - double: 8 aligned
* - long: 8 aligned
* - int64: 8 aligned
* - struct: 8 aligned
* - the sdna functions have several error prints builtin, always check blender running from a console.
* - short: 2 aligned.
* - int: 4 aligned.
* - float: 4 aligned.
* - double: 8 aligned.
* - long: 8 aligned.
* - int64: 8 aligned.
* - struct: 8 aligned.
* - the sdna functions have several error prints builtin,
* always check blender running from a console.
*/
#ifdef __BIG_ENDIAN__
@ -543,7 +544,8 @@ SDNA *DNA_sdna_from_data(const void *data,
}
/**
* Using globals is acceptable here, the data is read-only and only changes between Blender versions.
* Using globals is acceptable here,
* the data is read-only and only changes between Blender versions.
*
* So it is safe to create once and reuse.
*/
@ -1499,7 +1501,8 @@ static bool DNA_sdna_patch_struct_member_nr(SDNA *sdna,
}
/**
* Replace \a elem_old with \a elem_new for struct \a struct_name
* handles search & replace, maintaining surrounding non-identifier characters such as pointer & array size.
* handles search & replace, maintaining surrounding non-identifier characters
* such as pointer & array size.
*/
bool DNA_sdna_patch_struct_member(SDNA *sdna,
const char *struct_name,

View File

@ -30,7 +30,8 @@
* - Changes here only change generated code for `makesdna.c` and `makesrna.c`
* without impacting Blender's run-time, besides allowing us to use the new names.
*
* - Renaming something that has already been renamed can be done by editing the existing rename macro.
* - Renaming something that has already been renamed can be done
* by editing the existing rename macro.
* All references to the previous destination name can be removed since they're
* never written to disk.
*