diff --git a/intern/opensubdiv/opensubdiv_evaluator_capi.hh b/intern/opensubdiv/opensubdiv_evaluator_capi.hh
index 47a1d9bfc81d6d6e81faa709a5b2bffc3d938904..4098b66387dedfcdc5a6c218ab985b3286084460 100644
--- a/intern/opensubdiv/opensubdiv_evaluator_capi.hh
+++ b/intern/opensubdiv/opensubdiv_evaluator_capi.hh
@@ -237,4 +237,4 @@ void openSubdiv_deleteEvaluatorCache(OpenSubdiv_EvaluatorCache *evaluator_cache)
 
 // Return the GLSL source code from the OpenSubDiv library used for patch evaluation.
 // This function is not thread-safe.
-const char *openSubdiv_getGLSLPatchBasisSource(void);
+const char *openSubdiv_getGLSLPatchBasisSource();
diff --git a/source/blender/animrig/ANIM_bone_collections.hh b/source/blender/animrig/ANIM_bone_collections.hh
index 3e11e709c0afe594be0c929e677849ef790cb2f9..3be9a5938e19d4fd5788a78cf9a97b3952412847 100644
--- a/source/blender/animrig/ANIM_bone_collections.hh
+++ b/source/blender/animrig/ANIM_bone_collections.hh
@@ -40,7 +40,7 @@ struct EditBone;
  *
  * \see #armature_bonecoll_new
  */
-struct BoneCollection *ANIM_bonecoll_new(const char *name) ATTR_WARN_UNUSED_RESULT;
+BoneCollection *ANIM_bonecoll_new(const char *name) ATTR_WARN_UNUSED_RESULT;
 
 /**
  * Free the bone collection.
@@ -50,20 +50,20 @@ struct BoneCollection *ANIM_bonecoll_new(const char *name) ATTR_WARN_UNUSED_RESU
  *
  * \see ANIM_armature_bonecoll_remove
  */
-void ANIM_bonecoll_free(struct BoneCollection *bcoll);
+void ANIM_bonecoll_free(BoneCollection *bcoll);
 
 /**
  * Recalculate the armature & bone runtime data.
  *
  * TODO: move to BKE?
  */
-void ANIM_armature_runtime_refresh(struct bArmature *armature);
+void ANIM_armature_runtime_refresh(bArmature *armature);
 
 /**
  * Free armature & bone runtime data.
  * TODO: move to BKE?
  */
-void ANIM_armature_runtime_free(struct bArmature *armature);
+void ANIM_armature_runtime_free(bArmature *armature);
 
 /**
  * Add a new bone collection to the given armature.
@@ -99,7 +99,7 @@ void ANIM_armature_bonecoll_remove_from_index(bArmature *armature, const int ind
 /**
  * Remove a bone collection from the armature.
  */
-void ANIM_armature_bonecoll_remove(struct bArmature *armature, struct BoneCollection *bcoll);
+void ANIM_armature_bonecoll_remove(bArmature *armature, BoneCollection *bcoll);
 
 /**
  * Set the given bone collection as the active one.
@@ -109,15 +109,14 @@ void ANIM_armature_bonecoll_remove(struct bArmature *armature, struct BoneCollec
  * The bone collection MUST already be owned by this armature. If it is not,
  * this function will simply clear the active bone collection.
  */
-void ANIM_armature_bonecoll_active_set(struct bArmature *armature, struct BoneCollection *bcoll);
+void ANIM_armature_bonecoll_active_set(bArmature *armature, BoneCollection *bcoll);
 
 /**
  * Set the bone collection with the given index as the active one.
  *
  * Pass -1 to clear the active bone collection.
  */
-void ANIM_armature_bonecoll_active_index_set(struct bArmature *armature,
-                                             int bone_collection_index);
+void ANIM_armature_bonecoll_active_index_set(bArmature *armature, int bone_collection_index);
 
 /**
  * Set the bone collection with the given name as the active one.
@@ -125,7 +124,7 @@ void ANIM_armature_bonecoll_active_index_set(struct bArmature *armature,
  * Pass an empty name to clear the active bone collection. A non-existent name will also cause the
  * active bone collection to be cleared.
  */
-void ANIM_armature_bonecoll_active_name_set(struct bArmature *armature, const char *name);
+void ANIM_armature_bonecoll_active_name_set(bArmature *armature, const char *name);
 
 /**
  * Refresh the Armature runtime info about the active bone collection.
@@ -136,7 +135,7 @@ void ANIM_armature_bonecoll_active_name_set(struct bArmature *armature, const ch
  * collection. If that named collection cannot be found, the name will be
  * cleared.
  */
-void ANIM_armature_bonecoll_active_runtime_refresh(struct bArmature *armature);
+void ANIM_armature_bonecoll_active_runtime_refresh(bArmature *armature);
 
 /**
  * Determine whether the given bone collection is editable.
@@ -144,8 +143,7 @@ void ANIM_armature_bonecoll_active_runtime_refresh(struct bArmature *armature);
  * Bone collections are editable when they are local, so either on a local Armature or added to a
  * linked Armature via a library override in the local file.
  */
-bool ANIM_armature_bonecoll_is_editable(const struct bArmature *armature,
-                                        const struct BoneCollection *bcoll);
+bool ANIM_armature_bonecoll_is_editable(const bArmature *armature, const BoneCollection *bcoll);
 
 /**
  * Move the bone collection at from_index to its sibling at to_index.
@@ -196,23 +194,19 @@ int ANIM_armature_bonecoll_move_before_after_index(bArmature *armature,
  * \see blender::animrig::armature_bonecoll_move_to_parent() to move bone
  * collections between different parents.
  */
-bool ANIM_armature_bonecoll_move(struct bArmature *armature,
-                                 struct BoneCollection *bcoll,
-                                 int step);
+bool ANIM_armature_bonecoll_move(bArmature *armature, BoneCollection *bcoll, int step);
 
-struct BoneCollection *ANIM_armature_bonecoll_get_by_name(
-    struct bArmature *armature, const char *name) ATTR_WARN_UNUSED_RESULT;
+BoneCollection *ANIM_armature_bonecoll_get_by_name(bArmature *armature,
+                                                   const char *name) ATTR_WARN_UNUSED_RESULT;
 
 /** Scan the bone collections to find the one with the given name.
  *
  * \return the index of the bone collection, or -1 if not found.
  */
-int ANIM_armature_bonecoll_get_index_by_name(struct bArmature *armature,
+int ANIM_armature_bonecoll_get_index_by_name(bArmature *armature,
                                              const char *name) ATTR_WARN_UNUSED_RESULT;
 
-void ANIM_armature_bonecoll_name_set(struct bArmature *armature,
-                                     struct BoneCollection *bcoll,
-                                     const char *name);
+void ANIM_armature_bonecoll_name_set(bArmature *armature, BoneCollection *bcoll, const char *name);
 
 /**
  * Show this bone collection.
@@ -250,26 +244,23 @@ void ANIM_armature_bonecoll_is_visible_set(bArmature *armature,
  * \return true if the bone was actually assigned, false if not (f.e. when it already was assigned
  * previously).
  */
-bool ANIM_armature_bonecoll_assign(struct BoneCollection *bcoll, struct Bone *bone);
-bool ANIM_armature_bonecoll_assign_editbone(struct BoneCollection *bcoll, struct EditBone *ebone);
-bool ANIM_armature_bonecoll_assign_and_move(struct BoneCollection *bcoll, struct Bone *bone);
-bool ANIM_armature_bonecoll_assign_and_move_editbone(struct BoneCollection *bcoll,
-                                                     struct EditBone *ebone);
-bool ANIM_armature_bonecoll_unassign(struct BoneCollection *bcoll, struct Bone *bone);
-bool ANIM_armature_bonecoll_unassign_editbone(struct BoneCollection *bcoll,
-                                              struct EditBone *ebone);
-void ANIM_armature_bonecoll_unassign_all(struct Bone *bone);
-void ANIM_armature_bonecoll_unassign_all_editbone(struct EditBone *ebone);
+bool ANIM_armature_bonecoll_assign(BoneCollection *bcoll, Bone *bone);
+bool ANIM_armature_bonecoll_assign_editbone(BoneCollection *bcoll, EditBone *ebone);
+bool ANIM_armature_bonecoll_assign_and_move(BoneCollection *bcoll, Bone *bone);
+bool ANIM_armature_bonecoll_assign_and_move_editbone(BoneCollection *bcoll, EditBone *ebone);
+bool ANIM_armature_bonecoll_unassign(BoneCollection *bcoll, Bone *bone);
+bool ANIM_armature_bonecoll_unassign_editbone(BoneCollection *bcoll, EditBone *ebone);
+void ANIM_armature_bonecoll_unassign_all(Bone *bone);
+void ANIM_armature_bonecoll_unassign_all_editbone(EditBone *ebone);
 
 /* Assign the edit bone to the armature's active collection. */
-void ANIM_armature_bonecoll_assign_active(const struct bArmature *armature,
-                                          struct EditBone *ebone);
+void ANIM_armature_bonecoll_assign_active(const bArmature *armature, EditBone *ebone);
 
 /**
  * Return whether the Armature's active bone is assigned to the given bone collection.
  */
-bool ANIM_armature_bonecoll_contains_active_bone(const struct bArmature *armature,
-                                                 const struct BoneCollection *bcoll);
+bool ANIM_armature_bonecoll_contains_active_bone(const bArmature *armature,
+                                                 const BoneCollection *bcoll);
 
 /**
  * Reconstruct the bone collection memberships, based on the bone runtime data.
@@ -277,7 +268,7 @@ bool ANIM_armature_bonecoll_contains_active_bone(const struct bArmature *armatur
  * This is needed to transition out of armature edit mode. That removes all bones, and
  * recreates them from the edit-bones.
  */
-void ANIM_armature_bonecoll_reconstruct(struct bArmature *armature);
+void ANIM_armature_bonecoll_reconstruct(bArmature *armature);
 
 /*
  * Armature/Bone Layer abstractions. These functions are intended as the sole
@@ -290,43 +281,38 @@ void ANIM_armature_bonecoll_reconstruct(struct bArmature *armature);
  */
 
 /** Return true when any of the bone's collections is visible. */
-bool ANIM_bone_in_visible_collection(const struct bArmature *armature, const struct Bone *bone);
+bool ANIM_bone_in_visible_collection(const bArmature *armature, const Bone *bone);
 
-inline bool ANIM_bone_is_visible(const struct bArmature *armature, const struct Bone *bone)
+inline bool ANIM_bone_is_visible(const bArmature *armature, const Bone *bone)
 {
   const bool bone_itself_visible = (bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG)) == 0;
   return bone_itself_visible && ANIM_bone_in_visible_collection(armature, bone);
 }
 
-bool ANIM_bonecoll_is_visible_editbone(const struct bArmature *armature,
-                                       const struct EditBone *ebone);
+bool ANIM_bonecoll_is_visible_editbone(const bArmature *armature, const EditBone *ebone);
 
-inline bool ANIM_bone_is_visible_editbone(const struct bArmature *armature,
-                                          const struct EditBone *ebone)
+inline bool ANIM_bone_is_visible_editbone(const bArmature *armature, const EditBone *ebone)
 {
   const bool bone_itself_visible = (ebone->flag & BONE_HIDDEN_A) == 0;
   return bone_itself_visible && ANIM_bonecoll_is_visible_editbone(armature, ebone);
 }
 
-inline bool ANIM_bonecoll_is_visible_pchan(const struct bArmature *armature,
-                                           const struct bPoseChannel *pchan)
+inline bool ANIM_bonecoll_is_visible_pchan(const bArmature *armature, const bPoseChannel *pchan)
 {
   return ANIM_bone_in_visible_collection(armature, pchan->bone);
 }
 
-inline bool ANIM_bonecoll_is_visible_actbone(const struct bArmature *armature)
+inline bool ANIM_bonecoll_is_visible_actbone(const bArmature *armature)
 {
   return ANIM_bone_in_visible_collection(armature, armature->act_bone);
 }
 
-void ANIM_armature_bonecoll_show_all(struct bArmature *armature);
-void ANIM_armature_bonecoll_hide_all(struct bArmature *armature);
+void ANIM_armature_bonecoll_show_all(bArmature *armature);
+void ANIM_armature_bonecoll_hide_all(bArmature *armature);
 
-void ANIM_armature_bonecoll_show_from_bone(struct bArmature *armature, const struct Bone *bone);
-void ANIM_armature_bonecoll_show_from_ebone(struct bArmature *armature,
-                                            const struct EditBone *ebone);
-void ANIM_armature_bonecoll_show_from_pchan(struct bArmature *armature,
-                                            const struct bPoseChannel *pchan);
+void ANIM_armature_bonecoll_show_from_bone(bArmature *armature, const Bone *bone);
+void ANIM_armature_bonecoll_show_from_ebone(bArmature *armature, const EditBone *ebone);
+void ANIM_armature_bonecoll_show_from_pchan(bArmature *armature, const bPoseChannel *pchan);
 
 namespace blender::animrig {
 
diff --git a/source/blender/animrig/ANIM_bonecolor.hh b/source/blender/animrig/ANIM_bonecolor.hh
index c440196e5f5d2479886f2327e667232844bde340..7f62fb93f331c84bc5b4aa98dbf88bd3a6aa096c 100644
--- a/source/blender/animrig/ANIM_bonecolor.hh
+++ b/source/blender/animrig/ANIM_bonecolor.hh
@@ -42,6 +42,6 @@ class BoneColor : public ::BoneColor {
  * This returns the pose bone's own color, unless it's set to "default", then it defaults to the
  * armature bone color.
  */
-const BoneColor &ANIM_bonecolor_posebone_get(const struct bPoseChannel *pose_bone);
+const BoneColor &ANIM_bonecolor_posebone_get(const bPoseChannel *pose_bone);
 
 };  // namespace blender::animrig
diff --git a/source/blender/blendthumb/src/blendthumb.hh b/source/blender/blendthumb/src/blendthumb.hh
index 2558614e7f4814ca995b12e5d887d9a55732bd60..628da011958c9447b360f4632d47b6d0bbd4f746 100644
--- a/source/blender/blendthumb/src/blendthumb.hh
+++ b/source/blender/blendthumb/src/blendthumb.hh
@@ -42,7 +42,7 @@ std::optional<blender::Vector<uint8_t>> blendthumb_create_png_data_from_thumb(
  * This function extracts the thumbnail from the .blend file into thumb.
  * Returns #BT_OK for success and the relevant error code otherwise.
  */
-eThumbStatus blendthumb_create_thumb_from_file(struct FileReader *rawfile, Thumbnail *thumb);
+eThumbStatus blendthumb_create_thumb_from_file(FileReader *rawfile, Thumbnail *thumb);
 
 /* INTEGER CODES */
 #ifdef __BIG_ENDIAN__
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.hh b/source/blender/blenkernel/BKE_DerivedMesh.hh
index 0cd3b2671db43c7441669937a60b4b6e7eabbda9..139bf33b7beeef027e8e97d71961c332fd85276d 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.hh
+++ b/source/blender/blenkernel/BKE_DerivedMesh.hh
@@ -106,7 +106,7 @@ struct DerivedMesh {
    * *{vert/edge/face}_r (must point to a buffer large enough)
    */
   void (*copyVertArray)(DerivedMesh *dm, float (*r_positions)[3]);
-  void (*copyEdgeArray)(DerivedMesh *dm, struct vec2i *r_edge);
+  void (*copyEdgeArray)(DerivedMesh *dm, vec2i *r_edge);
   void (*copyCornerVertArray)(DerivedMesh *dm, int *r_corner_verts);
   void (*copyCornerEdgeArray)(DerivedMesh *dm, int *r_corner_edges);
   void (*copyPolyArray)(DerivedMesh *dm, int *r_face_offsets);
@@ -123,9 +123,9 @@ struct DerivedMesh {
   /** Optional grid access for subsurf */
   int (*getNumGrids)(DerivedMesh *dm);
   int (*getGridSize)(DerivedMesh *dm);
-  struct CCGElem **(*getGridData)(DerivedMesh *dm);
+  CCGElem **(*getGridData)(DerivedMesh *dm);
   int *(*getGridOffset)(DerivedMesh *dm);
-  void (*getGridKey)(DerivedMesh *dm, struct CCGKey *key);
+  void (*getGridKey)(DerivedMesh *dm, CCGKey *key);
   unsigned int **(*getGridHidden)(DerivedMesh *dm);
 
   /* Direct Access Operations
diff --git a/source/blender/blenkernel/BKE_armature.hh b/source/blender/blenkernel/BKE_armature.hh
index bc07355c3c08b3be57a11c85e5da09d0135a729b..6a329b966d21ec795ea1a587790320dd9be24843 100644
--- a/source/blender/blenkernel/BKE_armature.hh
+++ b/source/blender/blenkernel/BKE_armature.hh
@@ -34,16 +34,16 @@ struct bGPDstroke;
 struct bPose;
 struct bPoseChannel;
 
-typedef struct EditBone {
-  struct EditBone *next, *prev;
+struct EditBone {
+  EditBone *next, *prev;
   /** User-Defined Properties on this Bone */
-  struct IDProperty *prop;
+  IDProperty *prop;
   /**
    * Edit-bones have a one-way link  (i.e. children refer
    * to parents.  This is converted to a two-way link for
    * normal bones when leaving edit-mode.
    */
-  struct EditBone *parent;
+  EditBone *parent;
   /** (64 == MAXBONENAME) */
   char name[64];
   /**
@@ -93,8 +93,8 @@ typedef struct EditBone {
   short bbone_prev_flag;
   short bbone_next_flag;
   /** Next/prev bones to use as handle references when calculating bbones (optional) */
-  struct EditBone *bbone_prev;
-  struct EditBone *bbone_next;
+  EditBone *bbone_prev;
+  EditBone *bbone_next;
 
   /* Used for display */
   /** in Armature space, rest pos matrix */
@@ -105,54 +105,53 @@ typedef struct EditBone {
   float disp_bbone_mat[32][4][4];
 
   /** connected child temporary during drawing */
-  struct EditBone *bbone_child;
+  EditBone *bbone_child;
 
-  BoneColor color; /* MUST be named the same as in bPoseChannel and Bone structs. */
+  ::BoneColor color; /* MUST be named the same as in bPoseChannel and Bone structs. */
   ListBase /*BoneCollectionReference*/ bone_collections;
 
   /* Used to store temporary data */
   union {
-    struct EditBone *ebone;
-    struct Bone *bone;
+    EditBone *ebone;
+    Bone *bone;
     void *p;
     int i;
   } temp;
-} EditBone;
+};
 
-typedef struct PoseTarget {
-  struct PoseTarget *next, *prev;
+struct PoseTarget {
+  PoseTarget *next, *prev;
 
-  struct bConstraint *con; /* the constraint of this target */
-  int tip;                 /* index of tip pchan in PoseTree */
-} PoseTarget;
+  bConstraint *con; /* the constraint of this target */
+  int tip;          /* index of tip pchan in PoseTree */
+};
 
-typedef struct PoseTree {
-  struct PoseTree *next, *prev;
+struct PoseTree {
+  PoseTree *next, *prev;
 
   int type;       /* type of IK that this serves (CONSTRAINT_TYPE_KINEMATIC or ..._SPLINEIK) */
   int totchannel; /* number of pose channels */
 
-  struct ListBase targets;     /* list of targets of the tree */
-  struct bPoseChannel **pchan; /* array of pose channels */
-  int *parent;                 /* and their parents */
+  ListBase targets;     /* list of targets of the tree */
+  bPoseChannel **pchan; /* array of pose channels */
+  int *parent;          /* and their parents */
 
   float (*basis_change)[3][3]; /* basis change result from solver */
   int iterations;              /* iterations from the constraint */
   int stretch;                 /* disable stretching */
-} PoseTree;
+};
 
 /* Core armature functionality. */
 
-struct bArmature *BKE_armature_add(struct Main *bmain, const char *name);
-struct bArmature *BKE_armature_from_object(struct Object *ob);
-int BKE_armature_bonelist_count(const struct ListBase *lb);
-void BKE_armature_bonelist_free(struct ListBase *lb, bool do_id_user);
-void BKE_armature_editbonelist_free(struct ListBase *lb, bool do_id_user);
+bArmature *BKE_armature_add(Main *bmain, const char *name);
+bArmature *BKE_armature_from_object(Object *ob);
+int BKE_armature_bonelist_count(const ListBase *lb);
+void BKE_armature_bonelist_free(ListBase *lb, bool do_id_user);
+void BKE_armature_editbonelist_free(ListBase *lb, bool do_id_user);
 
-void BKE_armature_copy_bone_transforms(struct bArmature *armature_dst,
-                                       const struct bArmature *armature_src);
+void BKE_armature_copy_bone_transforms(bArmature *armature_dst, const bArmature *armature_src);
 
-void BKE_armature_transform(struct bArmature *arm, const float mat[4][4], bool do_props);
+void BKE_armature_transform(bArmature *arm, const float mat[4][4], bool do_props);
 
 std::optional<blender::Bounds<blender::float3>> BKE_armature_min_max(const bPose *pose);
 
@@ -171,8 +170,8 @@ std::optional<blender::Bounds<blender::float3>> BKE_armature_min_max(const bPose
  * \param use_empty_drawtype: When enabled, the draw type of empty custom-objects is taken into
  * account when calculating the bounds.
  */
-void BKE_pchan_minmax(const struct Object *ob,
-                      const struct bPoseChannel *pchan,
+void BKE_pchan_minmax(const Object *ob,
+                      const bPoseChannel *pchan,
                       const bool use_empty_drawtype,
                       float r_min[3],
                       float r_max[3]);
@@ -184,8 +183,7 @@ void BKE_pchan_minmax(const struct Object *ob,
  *
  * \note This uses #BKE_pchan_minmax, see its documentation for details on bounds calculation.
  */
-bool BKE_pose_minmax(
-    struct Object *ob, float r_min[3], float r_max[3], bool use_hidden, bool use_select);
+bool BKE_pose_minmax(Object *ob, float r_min[3], float r_max[3], bool use_hidden, bool use_select);
 
 /**
  * Finds the best possible extension to the name on a particular axis.
@@ -204,12 +202,12 @@ bool bone_autoside_name(char name[64], int strip_number, short axis, float head,
  * #BKE_armature_bone_hash_make first to hash the bone names and speed up
  * queries.
  */
-struct Bone *BKE_armature_find_bone_name(struct bArmature *arm, const char *name);
+Bone *BKE_armature_find_bone_name(bArmature *arm, const char *name);
 
-void BKE_armature_bone_hash_make(struct bArmature *arm);
-void BKE_armature_bone_hash_free(struct bArmature *arm);
+void BKE_armature_bone_hash_make(bArmature *arm);
+void BKE_armature_bone_hash_free(bArmature *arm);
 
-bool BKE_armature_bone_flag_test_recursive(const struct Bone *bone, int flag);
+bool BKE_armature_bone_flag_test_recursive(const Bone *bone, int flag);
 
 /**
  * Using `vec` with dist to bone `b1 - b2`.
@@ -221,25 +219,23 @@ float distfactor_to_bone(
  * Updates vectors and matrices on rest-position level, only needed
  * after editing armature itself, now only on reading file.
  */
-void BKE_armature_where_is(struct bArmature *arm);
+void BKE_armature_where_is(bArmature *arm);
 /**
  * Recursive part, calculates rest-position of entire tree of children.
  * \note Used when exiting edit-mode too.
  */
-void BKE_armature_where_is_bone(struct Bone *bone,
-                                const struct Bone *bone_parent,
-                                bool use_recursion);
+void BKE_armature_where_is_bone(Bone *bone, const Bone *bone_parent, bool use_recursion);
 /**
  * Clear pointers of object's pose
  * (needed in remap case, since we cannot always wait for a complete pose rebuild).
  */
-void BKE_pose_clear_pointers(struct bPose *pose);
-void BKE_pose_remap_bone_pointers(struct bArmature *armature, struct bPose *pose);
+void BKE_pose_clear_pointers(bPose *pose);
+void BKE_pose_remap_bone_pointers(bArmature *armature, bPose *pose);
 /**
  * Update the links for the B-Bone handles from Bone data.
  */
-void BKE_pchan_rebuild_bbone_handles(struct bPose *pose, struct bPoseChannel *pchan);
-void BKE_pose_channels_clear_with_null_bone(struct bPose *pose, bool do_id_user);
+void BKE_pchan_rebuild_bbone_handles(bPose *pose, bPoseChannel *pchan);
+void BKE_pose_channels_clear_with_null_bone(bPose *pose, bool do_id_user);
 /**
  * Only after leave edit-mode, duplicating, validating older files, library syncing.
  *
@@ -247,58 +243,52 @@ void BKE_pose_channels_clear_with_null_bone(struct bPose *pose, bool do_id_user)
  *
  * \param bmain: May be NULL, only used to tag depsgraph as being dirty.
  */
-void BKE_pose_rebuild(struct Main *bmain,
-                      struct Object *ob,
-                      struct bArmature *arm,
-                      bool do_id_user);
+void BKE_pose_rebuild(Main *bmain, Object *ob, bArmature *arm, bool do_id_user);
 /**
  * Ensures object's pose is rebuilt if needed.
  *
  * \param bmain: May be NULL, only used to tag depsgraph as being dirty.
  */
-void BKE_pose_ensure(struct Main *bmain,
-                     struct Object *ob,
-                     struct bArmature *arm,
-                     bool do_id_user);
+void BKE_pose_ensure(Main *bmain, Object *ob, bArmature *arm, bool do_id_user);
 /**
  * \note This is the only function adding poses.
  * \note This only reads anim data from channels, and writes to channels.
  */
-void BKE_pose_where_is(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob);
+void BKE_pose_where_is(Depsgraph *depsgraph, Scene *scene, Object *ob);
 /**
  * The main armature solver, does all constraints excluding IK.
  *
  * \param pchan: pose-channel - validated, as having bone and parent pointer.
  * \param do_extra: when zero skips loc/size/rot, constraints and strip modifiers.
  */
-void BKE_pose_where_is_bone(struct Depsgraph *depsgraph,
-                            struct Scene *scene,
-                            struct Object *ob,
-                            struct bPoseChannel *pchan,
+void BKE_pose_where_is_bone(Depsgraph *depsgraph,
+                            Scene *scene,
+                            Object *ob,
+                            bPoseChannel *pchan,
                             float ctime,
                             bool do_extra);
 /**
  * Calculate tail of pose-channel.
  */
-void BKE_pose_where_is_bone_tail(struct bPoseChannel *pchan);
+void BKE_pose_where_is_bone_tail(bPoseChannel *pchan);
 
 /**
  * Evaluate the action and apply it to the pose. If any pose bones are selected, only FCurves that
  * relate to those bones are evaluated.
  */
-void BKE_pose_apply_action_selected_bones(struct Object *ob,
-                                          struct bAction *action,
-                                          struct AnimationEvalContext *anim_eval_context);
+void BKE_pose_apply_action_selected_bones(Object *ob,
+                                          bAction *action,
+                                          AnimationEvalContext *anim_eval_context);
 /**
  * Evaluate the action and apply it to the pose. Ignore selection state of the bones.
  */
-void BKE_pose_apply_action_all_bones(struct Object *ob,
-                                     struct bAction *action,
-                                     struct AnimationEvalContext *anim_eval_context);
+void BKE_pose_apply_action_all_bones(Object *ob,
+                                     bAction *action,
+                                     AnimationEvalContext *anim_eval_context);
 
-void BKE_pose_apply_action_blend(struct Object *ob,
-                                 struct bAction *action,
-                                 struct AnimationEvalContext *anim_eval_context,
+void BKE_pose_apply_action_blend(Object *ob,
+                                 bAction *action,
+                                 AnimationEvalContext *anim_eval_context,
                                  float blend_factor);
 
 void vec_roll_to_mat3(const float vec[3], float roll, float r_mat[3][3]);
@@ -323,21 +313,19 @@ void mat3_vec_to_roll(const float mat[3][3], const float vec[3], float *r_roll);
 /**
  * Convert World-Space Matrix to Pose-Space Matrix.
  */
-void BKE_armature_mat_world_to_pose(struct Object *ob,
-                                    const float inmat[4][4],
-                                    float outmat[4][4]);
+void BKE_armature_mat_world_to_pose(Object *ob, const float inmat[4][4], float outmat[4][4]);
 /**
  * Convert World-Space Location to Pose-Space Location
  * \note this cannot be used to convert to pose-space location of the supplied
  * pose-channel into its local space (i.e. 'visual'-keyframing).
  */
-void BKE_armature_loc_world_to_pose(struct Object *ob, const float inloc[3], float outloc[3]);
+void BKE_armature_loc_world_to_pose(Object *ob, const float inloc[3], float outloc[3]);
 /**
  * Convert Pose-Space Matrix to Bone-Space Matrix.
  * \note this cannot be used to convert to pose-space transforms of the supplied
  * pose-channel into its local space (i.e. 'visual'-keyframing).
  */
-void BKE_armature_mat_pose_to_bone(struct bPoseChannel *pchan,
+void BKE_armature_mat_pose_to_bone(bPoseChannel *pchan,
                                    const float inmat[4][4],
                                    float outmat[4][4]);
 /**
@@ -345,13 +333,11 @@ void BKE_armature_mat_pose_to_bone(struct bPoseChannel *pchan,
  * \note this cannot be used to convert to pose-space location of the supplied
  * pose-channel into its local space (i.e. 'visual'-keyframing).
  */
-void BKE_armature_loc_pose_to_bone(struct bPoseChannel *pchan,
-                                   const float inloc[3],
-                                   float outloc[3]);
+void BKE_armature_loc_pose_to_bone(bPoseChannel *pchan, const float inloc[3], float outloc[3]);
 /**
  * Convert Bone-Space Matrix to Pose-Space Matrix.
  */
-void BKE_armature_mat_bone_to_pose(struct bPoseChannel *pchan,
+void BKE_armature_mat_bone_to_pose(bPoseChannel *pchan,
                                    const float inmat[4][4],
                                    float outmat[4][4]);
 /**
@@ -363,58 +349,58 @@ void BKE_armature_mat_pose_to_delta(float delta_mat[4][4],
                                     float pose_mat[4][4],
                                     float arm_mat[4][4]);
 
-void BKE_armature_mat_pose_to_bone_ex(struct Depsgraph *depsgraph,
-                                      struct Object *ob,
-                                      struct bPoseChannel *pchan,
+void BKE_armature_mat_pose_to_bone_ex(Depsgraph *depsgraph,
+                                      Object *ob,
+                                      bPoseChannel *pchan,
                                       const float inmat[4][4],
                                       float outmat[4][4]);
 
 /**
  * Same as #BKE_object_mat3_to_rot().
  */
-void BKE_pchan_mat3_to_rot(struct bPoseChannel *pchan, const float mat[3][3], bool use_compat);
+void BKE_pchan_mat3_to_rot(bPoseChannel *pchan, const float mat[3][3], bool use_compat);
 /**
  * Same as #BKE_object_rot_to_mat3().
  */
-void BKE_pchan_rot_to_mat3(const struct bPoseChannel *pchan, float r_mat[3][3]);
+void BKE_pchan_rot_to_mat3(const bPoseChannel *pchan, float r_mat[3][3]);
 /**
  * Apply a 4x4 matrix to the pose bone,
  * similar to #BKE_object_apply_mat4().
  */
-void BKE_pchan_apply_mat4(struct bPoseChannel *pchan, const float mat[4][4], bool use_compat);
+void BKE_pchan_apply_mat4(bPoseChannel *pchan, const float mat[4][4], bool use_compat);
 /**
  * Convert the loc/rot/size to \a r_chanmat (typically #bPoseChannel.chan_mat).
  */
-void BKE_pchan_to_mat4(const struct bPoseChannel *pchan, float r_chanmat[4][4]);
+void BKE_pchan_to_mat4(const bPoseChannel *pchan, float r_chanmat[4][4]);
 
 /**
  * Convert the loc/rot/size to mat4 (`pchan.chan_mat`),
  * used in `constraint.cc` too.
  */
-void BKE_pchan_calc_mat(struct bPoseChannel *pchan);
+void BKE_pchan_calc_mat(bPoseChannel *pchan);
 
 /**
  * Simple helper, computes the offset bone matrix:
  * `offs_bone = yoffs(b-1) + root(b) + bonemat(b)`.
  */
-void BKE_bone_offset_matrix_get(const struct Bone *bone, float offs_bone[4][4]);
+void BKE_bone_offset_matrix_get(const Bone *bone, float offs_bone[4][4]);
 
 /* Transformation inherited from the parent bone. These matrices apply the effects of
  * HINGE/NO_SCALE/NO_LOCAL_LOCATION options over the pchan loc/rot/scale transformations. */
-typedef struct BoneParentTransform {
+struct BoneParentTransform {
   float rotscale_mat[4][4]; /* parent effect on rotation & scale pose channels */
   float loc_mat[4][4];      /* parent effect on location pose channel */
   float post_scale[3];      /* additional scale to apply with post-multiply */
-} BoneParentTransform;
+};
 
 /* Matrix-like algebra operations on the transform */
-void BKE_bone_parent_transform_clear(struct BoneParentTransform *bpt);
-void BKE_bone_parent_transform_invert(struct BoneParentTransform *bpt);
-void BKE_bone_parent_transform_combine(const struct BoneParentTransform *in1,
-                                       const struct BoneParentTransform *in2,
-                                       struct BoneParentTransform *result);
+void BKE_bone_parent_transform_clear(BoneParentTransform *bpt);
+void BKE_bone_parent_transform_invert(BoneParentTransform *bpt);
+void BKE_bone_parent_transform_combine(const BoneParentTransform *in1,
+                                       const BoneParentTransform *in2,
+                                       BoneParentTransform *result);
 
-void BKE_bone_parent_transform_apply(const struct BoneParentTransform *bpt,
+void BKE_bone_parent_transform_apply(const BoneParentTransform *bpt,
                                      const float inmat[4][4],
                                      float outmat[4][4]);
 
@@ -439,8 +425,8 @@ void BKE_bone_parent_transform_apply(const struct BoneParentTransform *bpt,
  * pose-channel into its local space (i.e. 'visual'-keyframing).
  * (NOTE(@mont29): I don't understand that, so I keep it :p).
  */
-void BKE_bone_parent_transform_calc_from_pchan(const struct bPoseChannel *pchan,
-                                               struct BoneParentTransform *r_bpt);
+void BKE_bone_parent_transform_calc_from_pchan(const bPoseChannel *pchan,
+                                               BoneParentTransform *r_bpt);
 /**
  * Compute the parent transform using data decoupled from specific data structures.
  *
@@ -455,7 +441,7 @@ void BKE_bone_parent_transform_calc_from_matrices(int bone_flag,
                                                   const float offs_bone[4][4],
                                                   const float parent_arm_mat[4][4],
                                                   const float parent_pose_mat[4][4],
-                                                  struct BoneParentTransform *r_bpt);
+                                                  BoneParentTransform *r_bpt);
 
 /**
  * Rotation Mode Conversions - Used for Pose-Channels + Objects.
@@ -470,11 +456,11 @@ void BKE_rotMode_change_values(
 /* B-Bone support */
 #define MAX_BBONE_SUBDIV 32
 
-typedef struct Mat4 {
+struct Mat4 {
   float mat[4][4];
-} Mat4;
+};
 
-typedef struct BBoneSplineParameters {
+struct BBoneSplineParameters {
   int segments;
   float length;
 
@@ -494,26 +480,26 @@ typedef struct BBoneSplineParameters {
   float roll1, roll2;
   float scale_in[3], scale_out[3];
   float curve_in_x, curve_in_z, curve_out_x, curve_out_z;
-} BBoneSplineParameters;
+};
 
 /**
  * Get "next" and "prev" bones - these are used for handle calculations.
  */
-void BKE_pchan_bbone_handles_get(struct bPoseChannel *pchan,
-                                 struct bPoseChannel **r_prev,
-                                 struct bPoseChannel **r_next);
+void BKE_pchan_bbone_handles_get(bPoseChannel *pchan,
+                                 bPoseChannel **r_prev,
+                                 bPoseChannel **r_next);
 /**
  * Compute B-Bone spline parameters for the given channel.
  */
-void BKE_pchan_bbone_spline_params_get(struct bPoseChannel *pchan,
+void BKE_pchan_bbone_spline_params_get(bPoseChannel *pchan,
                                        bool rest,
-                                       struct BBoneSplineParameters *r_param);
+                                       BBoneSplineParameters *r_param);
 
 /**
  * Fills the array with the desired amount of bone->segments elements.
  * This calculation is done within unit bone space.
  */
-void BKE_pchan_bbone_spline_setup(struct bPoseChannel *pchan,
+void BKE_pchan_bbone_spline_setup(bPoseChannel *pchan,
                                   bool rest,
                                   bool for_deform,
                                   Mat4 *result_array);
@@ -532,19 +518,18 @@ void BKE_pchan_bbone_handles_compute(const BBoneSplineParameters *param,
  * Fills the array with the desired amount of `bone->segments` elements.
  * This calculation is done within unit bone space.
  */
-int BKE_pchan_bbone_spline_compute(struct BBoneSplineParameters *param,
+int BKE_pchan_bbone_spline_compute(BBoneSplineParameters *param,
                                    bool for_deform,
                                    Mat4 *result_array);
 
 /**
  * Compute and cache the B-Bone shape in the channel runtime struct.
  */
-void BKE_pchan_bbone_segments_cache_compute(struct bPoseChannel *pchan);
+void BKE_pchan_bbone_segments_cache_compute(bPoseChannel *pchan);
 /**
  * Copy cached B-Bone segments from one channel to another.
  */
-void BKE_pchan_bbone_segments_cache_copy(struct bPoseChannel *pchan,
-                                         struct bPoseChannel *pchan_from);
+void BKE_pchan_bbone_segments_cache_copy(bPoseChannel *pchan, bPoseChannel *pchan_from);
 
 /**
  * Calculate index and blend factor for the two B-Bone segment nodes
@@ -555,7 +540,7 @@ void BKE_pchan_bbone_segments_cache_copy(struct bPoseChannel *pchan,
  * \param r_index: OUTPUT index of the first segment joint affecting the point.
  * \param r_blend_next: OUTPUT blend factor between the first and the second segment in [0..1]
  */
-void BKE_pchan_bbone_deform_clamp_segment_index(const struct bPoseChannel *pchan,
+void BKE_pchan_bbone_deform_clamp_segment_index(const bPoseChannel *pchan,
                                                 float head_tail,
                                                 int *r_index,
                                                 float *r_blend_next);
@@ -569,7 +554,7 @@ void BKE_pchan_bbone_deform_clamp_segment_index(const struct bPoseChannel *pchan
  * \param r_index: OUTPUT index of the first segment joint affecting the point.
  * \param r_blend_next: OUTPUT blend factor between the first and the second segment in [0..1]
  */
-void BKE_pchan_bbone_deform_segment_index(const struct bPoseChannel *pchan,
+void BKE_pchan_bbone_deform_segment_index(const bPoseChannel *pchan,
                                           const float *co,
                                           int *r_index,
                                           float *r_blend_next);
@@ -610,57 +595,44 @@ struct bKinematicConstraint;
 struct bPose;
 struct bSplineIKConstraint;
 
-struct bPoseChannel *BKE_armature_ik_solver_find_root(struct bPoseChannel *pchan,
-                                                      struct bKinematicConstraint *data);
-struct bPoseChannel *BKE_armature_splineik_solver_find_root(struct bPoseChannel *pchan,
-                                                            struct bSplineIKConstraint *data);
+bPoseChannel *BKE_armature_ik_solver_find_root(bPoseChannel *pchan, bKinematicConstraint *data);
+bPoseChannel *BKE_armature_splineik_solver_find_root(bPoseChannel *pchan,
+                                                     bSplineIKConstraint *data);
 
-void BKE_pose_splineik_init_tree(struct Scene *scene, struct Object *ob, float ctime);
-void BKE_splineik_execute_tree(struct Depsgraph *depsgraph,
-                               struct Scene *scene,
-                               struct Object *ob,
-                               struct bPoseChannel *pchan_root,
-                               float ctime);
+void BKE_pose_splineik_init_tree(Scene *scene, Object *ob, float ctime);
+void BKE_splineik_execute_tree(
+    Depsgraph *depsgraph, Scene *scene, Object *ob, bPoseChannel *pchan_root, float ctime);
 
-void BKE_pose_pchan_index_rebuild(struct bPose *pose);
+void BKE_pose_pchan_index_rebuild(bPose *pose);
 
-void BKE_pose_eval_init(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object);
+void BKE_pose_eval_init(Depsgraph *depsgraph, Scene *scene, Object *object);
 
-void BKE_pose_eval_init_ik(struct Depsgraph *depsgraph,
-                           struct Scene *scene,
-                           struct Object *object);
+void BKE_pose_eval_init_ik(Depsgraph *depsgraph, Scene *scene, Object *object);
 
-void BKE_pose_eval_bone(struct Depsgraph *depsgraph,
-                        struct Scene *scene,
-                        struct Object *object,
-                        int pchan_index);
+void BKE_pose_eval_bone(Depsgraph *depsgraph, Scene *scene, Object *object, int pchan_index);
 
-void BKE_pose_constraints_evaluate(struct Depsgraph *depsgraph,
-                                   struct Scene *scene,
-                                   struct Object *object,
+void BKE_pose_constraints_evaluate(Depsgraph *depsgraph,
+                                   Scene *scene,
+                                   Object *object,
                                    int pchan_index);
 
-void BKE_pose_bone_done(struct Depsgraph *depsgraph, struct Object *object, int pchan_index);
+void BKE_pose_bone_done(Depsgraph *depsgraph, Object *object, int pchan_index);
 
-void BKE_pose_eval_bbone_segments(struct Depsgraph *depsgraph,
-                                  struct Object *object,
-                                  int pchan_index);
+void BKE_pose_eval_bbone_segments(Depsgraph *depsgraph, Object *object, int pchan_index);
 
-void BKE_pose_iktree_evaluate(struct Depsgraph *depsgraph,
-                              struct Scene *scene,
-                              struct Object *object,
+void BKE_pose_iktree_evaluate(Depsgraph *depsgraph,
+                              Scene *scene,
+                              Object *object,
                               int rootchan_index);
 
-void BKE_pose_splineik_evaluate(struct Depsgraph *depsgraph,
-                                struct Scene *scene,
-                                struct Object *object,
+void BKE_pose_splineik_evaluate(Depsgraph *depsgraph,
+                                Scene *scene,
+                                Object *object,
                                 int rootchan_index);
 
-void BKE_pose_eval_done(struct Depsgraph *depsgraph, struct Object *object);
+void BKE_pose_eval_done(Depsgraph *depsgraph, Object *object);
 
-void BKE_pose_eval_cleanup(struct Depsgraph *depsgraph,
-                           struct Scene *scene,
-                           struct Object *object);
+void BKE_pose_eval_cleanup(Depsgraph *depsgraph, Scene *scene, Object *object);
 
 /* -------------------------------------------------------------------- */
 /** \name Deform 3D Coordinates by Armature (`armature_deform.cc`)
@@ -669,35 +641,35 @@ void BKE_pose_eval_cleanup(struct Depsgraph *depsgraph,
 /* Note that we could have a 'BKE_armature_deform_coords' that doesn't take object data
  * currently there are no callers for this though. */
 
-void BKE_armature_deform_coords_with_gpencil_stroke(const struct Object *ob_arm,
-                                                    const struct Object *ob_target,
+void BKE_armature_deform_coords_with_gpencil_stroke(const Object *ob_arm,
+                                                    const Object *ob_target,
                                                     float (*vert_coords)[3],
                                                     float (*vert_deform_mats)[3][3],
                                                     int vert_coords_len,
                                                     int deformflag,
                                                     float (*vert_coords_prev)[3],
                                                     const char *defgrp_name,
-                                                    struct bGPDstroke *gps_target);
+                                                    bGPDstroke *gps_target);
 
-void BKE_armature_deform_coords_with_mesh(const struct Object *ob_arm,
-                                          const struct Object *ob_target,
+void BKE_armature_deform_coords_with_mesh(const Object *ob_arm,
+                                          const Object *ob_target,
                                           float (*vert_coords)[3],
                                           float (*vert_deform_mats)[3][3],
                                           int vert_coords_len,
                                           int deformflag,
                                           float (*vert_coords_prev)[3],
                                           const char *defgrp_name,
-                                          const struct Mesh *me_target);
+                                          const Mesh *me_target);
 
-void BKE_armature_deform_coords_with_editmesh(const struct Object *ob_arm,
-                                              const struct Object *ob_target,
+void BKE_armature_deform_coords_with_editmesh(const Object *ob_arm,
+                                              const Object *ob_target,
                                               float (*vert_coords)[3],
                                               float (*vert_deform_mats)[3][3],
                                               int vert_coords_len,
                                               int deformflag,
                                               float (*vert_coords_prev)[3],
                                               const char *defgrp_name,
-                                              struct BMEditMesh *em_target);
+                                              BMEditMesh *em_target);
 
 /** \} */
 
diff --git a/source/blender/blenkernel/BKE_asset.hh b/source/blender/blenkernel/BKE_asset.hh
index 50cf61fe4b5d89c8a5d512fdcabfeb24aebf0230..110c0af74695ca59792702743a949ef6dceed90f 100644
--- a/source/blender/blenkernel/BKE_asset.hh
+++ b/source/blender/blenkernel/BKE_asset.hh
@@ -34,7 +34,7 @@ struct AssetTypeInfo {
   OnMarkAssetFn on_mark_asset_fn;
 };
 
-AssetMetaData *BKE_asset_metadata_create(void);
+AssetMetaData *BKE_asset_metadata_create();
 void BKE_asset_metadata_free(AssetMetaData **asset_data);
 
 /**
diff --git a/source/blender/blenkernel/BKE_blendfile.hh b/source/blender/blenkernel/BKE_blendfile.hh
index 7eb3eb68927d4280405099dc3a80e114e78891ae..cdc26d7776cd7bf9f05d79438fa264ac9a918918 100644
--- a/source/blender/blenkernel/BKE_blendfile.hh
+++ b/source/blender/blenkernel/BKE_blendfile.hh
@@ -50,7 +50,7 @@ bool BKE_blendfile_library_path_explode(const char *path,
  *
  * \note Currently does attempt to open and read (part of) the given file.
  */
-bool BKE_blendfile_is_readable(const char *path, struct ReportList *reports);
+bool BKE_blendfile_is_readable(const char *path, ReportList *reports);
 
 /**
  * Shared setup function that makes the data from `bfd` into the current blend file,
@@ -116,7 +116,7 @@ UserDef *BKE_blendfile_userdef_read(const char *filepath, ReportList *reports);
 UserDef *BKE_blendfile_userdef_read_from_memory(const void *filebuf,
                                                 int filelength,
                                                 ReportList *reports);
-UserDef *BKE_blendfile_userdef_from_defaults(void);
+UserDef *BKE_blendfile_userdef_from_defaults();
 
 /**
  * Only write the #UserDef in a `.blend`.
diff --git a/source/blender/blenkernel/BKE_blendfile_link_append.hh b/source/blender/blenkernel/BKE_blendfile_link_append.hh
index d8c586f08d2c75459dcb95b4c097c3b5f44ab459..23821db2556e6a22e3a134cf93a81d1c501304f4 100644
--- a/source/blender/blenkernel/BKE_blendfile_link_append.hh
+++ b/source/blender/blenkernel/BKE_blendfile_link_append.hh
@@ -13,8 +13,8 @@ struct Library;
 struct LibraryLink_Params;
 struct ReportList;
 
-typedef struct BlendfileLinkAppendContext BlendfileLinkAppendContext;
-typedef struct BlendfileLinkAppendContextItem BlendfileLinkAppendContextItem;
+struct BlendfileLinkAppendContext;
+struct BlendfileLinkAppendContextItem;
 
 /**
  * Allocate and initialize a new context to link/append data-blocks.
@@ -136,10 +136,10 @@ enum eBlendfileLinkAppendForeachItemFlag {
  *
  * \return `true` if iteration should continue, `false` otherwise.
  */
-typedef bool (*BKE_BlendfileLinkAppendContexteItemFunction)(
-    BlendfileLinkAppendContext *lapp_context,
-    BlendfileLinkAppendContextItem *item,
-    void *userdata);
+using BKE_BlendfileLinkAppendContexteItemFunction =
+    bool (*)(BlendfileLinkAppendContext *lapp_context,
+             BlendfileLinkAppendContextItem *item,
+             void *userdata);
 /**
  * Iterate over all (or a subset) of the items listed in given #BlendfileLinkAppendContext,
  * and call the `callback_function` on them.
diff --git a/source/blender/blenkernel/BKE_colorband.hh b/source/blender/blenkernel/BKE_colorband.hh
index c70cde67d04e37161444739d9446377d5380fcbe..519c7b565f45a59bb2c25e766760392656782dac 100644
--- a/source/blender/blenkernel/BKE_colorband.hh
+++ b/source/blender/blenkernel/BKE_colorband.hh
@@ -7,19 +7,20 @@
  * \ingroup bke
  */
 
+struct CBData;
 struct ColorBand;
 
 /** #ColorBand.data length. */
 #define MAXCOLORBAND 32
 
-void BKE_colorband_init(struct ColorBand *coba, bool rangetype);
-void BKE_colorband_init_from_table_rgba(struct ColorBand *coba,
+void BKE_colorband_init(ColorBand *coba, bool rangetype);
+void BKE_colorband_init_from_table_rgba(ColorBand *coba,
                                         const float (*array)[4],
                                         int array_len,
                                         bool filter_sample);
-struct ColorBand *BKE_colorband_add(bool rangetype);
-bool BKE_colorband_evaluate(const struct ColorBand *coba, float in, float out[4]);
-void BKE_colorband_evaluate_table_rgba(const struct ColorBand *coba, float **array, int *size);
-struct CBData *BKE_colorband_element_add(struct ColorBand *coba, float position);
-bool BKE_colorband_element_remove(struct ColorBand *coba, int index);
-void BKE_colorband_update_sort(struct ColorBand *coba);
+ColorBand *BKE_colorband_add(bool rangetype);
+bool BKE_colorband_evaluate(const ColorBand *coba, float in, float out[4]);
+void BKE_colorband_evaluate_table_rgba(const ColorBand *coba, float **array, int *size);
+CBData *BKE_colorband_element_add(ColorBand *coba, float position);
+bool BKE_colorband_element_remove(ColorBand *coba, int index);
+void BKE_colorband_update_sort(ColorBand *coba);
diff --git a/source/blender/blenkernel/BKE_colortools.hh b/source/blender/blenkernel/BKE_colortools.hh
index e256ebbf60c724065e96edb6cae757f053954182..a12c009892735b4cfa13cceb1ab9dfaf0d0ea679 100644
--- a/source/blender/blenkernel/BKE_colortools.hh
+++ b/source/blender/blenkernel/BKE_colortools.hh
@@ -20,22 +20,22 @@ struct ImBuf;
 struct Scopes;
 struct rctf;
 
-void BKE_curvemapping_set_defaults(struct CurveMapping *cumap,
+void BKE_curvemapping_set_defaults(CurveMapping *cumap,
                                    int tot,
                                    float minx,
                                    float miny,
                                    float maxx,
                                    float maxy,
                                    short default_handle_type);
-struct CurveMapping *BKE_curvemapping_add(int tot, float minx, float miny, float maxx, float maxy);
-void BKE_curvemapping_free_data(struct CurveMapping *cumap);
-void BKE_curvemapping_free(struct CurveMapping *cumap);
-void BKE_curvemapping_copy_data(struct CurveMapping *target, const struct CurveMapping *cumap);
-struct CurveMapping *BKE_curvemapping_copy(const struct CurveMapping *cumap);
+CurveMapping *BKE_curvemapping_add(int tot, float minx, float miny, float maxx, float maxy);
+void BKE_curvemapping_free_data(CurveMapping *cumap);
+void BKE_curvemapping_free(CurveMapping *cumap);
+void BKE_curvemapping_copy_data(CurveMapping *target, const CurveMapping *cumap);
+CurveMapping *BKE_curvemapping_copy(const CurveMapping *cumap);
 void BKE_curvemapping_set_black_white_ex(const float black[3],
                                          const float white[3],
                                          float r_bwmul[3]);
-void BKE_curvemapping_set_black_white(struct CurveMapping *cumap,
+void BKE_curvemapping_set_black_white(CurveMapping *cumap,
                                       const float black[3],
                                       const float white[3]);
 
@@ -48,62 +48,58 @@ enum {
 /**
  * Reset the view for current curve.
  */
-void BKE_curvemapping_reset_view(struct CurveMapping *cumap);
-void BKE_curvemap_reset(struct CurveMap *cuma, const struct rctf *clipr, int preset, int slope);
+void BKE_curvemapping_reset_view(CurveMapping *cumap);
+void BKE_curvemap_reset(CurveMap *cuma, const rctf *clipr, int preset, int slope);
 /**
  * Removes with flag set.
  */
-void BKE_curvemap_remove(struct CurveMap *cuma, short flag);
+void BKE_curvemap_remove(CurveMap *cuma, short flag);
 /**
  * Remove specified point.
  */
-bool BKE_curvemap_remove_point(struct CurveMap *cuma, struct CurveMapPoint *cmp);
-struct CurveMapPoint *BKE_curvemap_insert(struct CurveMap *cuma, float x, float y);
+bool BKE_curvemap_remove_point(CurveMap *cuma, CurveMapPoint *cmp);
+CurveMapPoint *BKE_curvemap_insert(CurveMap *cuma, float x, float y);
 /**
  * \param type: #eBezTriple_Handle
  */
-void BKE_curvemap_handle_set(struct CurveMap *cuma, int type);
+void BKE_curvemap_handle_set(CurveMap *cuma, int type);
 
 /**
  * \note only does current curvemap!.
  */
-void BKE_curvemapping_changed(struct CurveMapping *cumap, bool rem_doubles);
-void BKE_curvemapping_changed_all(struct CurveMapping *cumap);
+void BKE_curvemapping_changed(CurveMapping *cumap, bool rem_doubles);
+void BKE_curvemapping_changed_all(CurveMapping *cumap);
 
 /**
  * Call before _all_ evaluation functions.
  */
-void BKE_curvemapping_init(struct CurveMapping *cumap);
+void BKE_curvemapping_init(CurveMapping *cumap);
 
 /**
  * Keep these `const CurveMap` - to help with thread safety.
  * \note Single curve, no table check.
  * \note Table should be verified.
  */
-float BKE_curvemap_evaluateF(const struct CurveMapping *cumap,
-                             const struct CurveMap *cuma,
-                             float value);
+float BKE_curvemap_evaluateF(const CurveMapping *cumap, const CurveMap *cuma, float value);
 /**
  * Single curve, with table check.
  * Works with curve 'cur'.
  */
-float BKE_curvemapping_evaluateF(const struct CurveMapping *cumap, int cur, float value);
+float BKE_curvemapping_evaluateF(const CurveMapping *cumap, int cur, float value);
 /**
  * Vector case.
  */
-void BKE_curvemapping_evaluate3F(const struct CurveMapping *cumap,
-                                 float vecout[3],
-                                 const float vecin[3]);
+void BKE_curvemapping_evaluate3F(const CurveMapping *cumap, float vecout[3], const float vecin[3]);
 /**
  * RGB case, no black/white points, no pre-multiply.
  */
-void BKE_curvemapping_evaluateRGBF(const struct CurveMapping *cumap,
+void BKE_curvemapping_evaluateRGBF(const CurveMapping *cumap,
                                    float vecout[3],
                                    const float vecin[3]);
 /**
  * Byte version of #BKE_curvemapping_evaluateRGBF.
  */
-void BKE_curvemapping_evaluate_premulRGB(const struct CurveMapping *cumap,
+void BKE_curvemapping_evaluate_premulRGB(const CurveMapping *cumap,
                                          unsigned char vecout_byte[3],
                                          const unsigned char vecin_byte[3]);
 /**
@@ -116,7 +112,7 @@ void BKE_curvemapping_evaluate_premulRGB(const struct CurveMapping *cumap,
  * \param black: Use instead of cumap->black
  * \param bwmul: Use instead of cumap->bwmul
  */
-void BKE_curvemapping_evaluate_premulRGBF_ex(const struct CurveMapping *cumap,
+void BKE_curvemapping_evaluate_premulRGBF_ex(const CurveMapping *cumap,
                                              float vecout[3],
                                              const float vecin[3],
                                              const float black[3],
@@ -124,31 +120,29 @@ void BKE_curvemapping_evaluate_premulRGBF_ex(const struct CurveMapping *cumap,
 /**
  * RGB with black/white points and pre-multiply. tables are checked.
  */
-void BKE_curvemapping_evaluate_premulRGBF(const struct CurveMapping *cumap,
+void BKE_curvemapping_evaluate_premulRGBF(const CurveMapping *cumap,
                                           float vecout[3],
                                           const float vecin[3]);
-bool BKE_curvemapping_RGBA_does_something(const struct CurveMapping *cumap);
-void BKE_curvemapping_table_F(const struct CurveMapping *cumap, float **array, int *size);
-void BKE_curvemapping_table_RGBA(const struct CurveMapping *cumap, float **array, int *size);
+bool BKE_curvemapping_RGBA_does_something(const CurveMapping *cumap);
+void BKE_curvemapping_table_F(const CurveMapping *cumap, float **array, int *size);
+void BKE_curvemapping_table_RGBA(const CurveMapping *cumap, float **array, int *size);
 
 /** Get the minimum x value of each curve map table. */
-void BKE_curvemapping_get_range_minimums(const struct CurveMapping *curve_mapping,
-                                         float minimums[4]);
+void BKE_curvemapping_get_range_minimums(const CurveMapping *curve_mapping, float minimums[4]);
 
 /**
  * Get the reciprocal of the difference between the maximum and the minimum x value of each curve
  * map table. Evaluation parameters can be multiplied by this value to be normalized. If the
  * difference is zero, 1^8 is returned.
  */
-void BKE_curvemapping_compute_range_dividers(const struct CurveMapping *curve_mapping,
-                                             float dividers[4]);
+void BKE_curvemapping_compute_range_dividers(const CurveMapping *curve_mapping, float dividers[4]);
 
 /**
  * Compute the slopes at the start and end points of each curve map. The slopes are multiplied by
  * the range of the curve map to compensate for parameter normalization. If the slope is vertical,
  * 1^8 is returned.
  */
-void BKE_curvemapping_compute_slopes(const struct CurveMapping *curve_mapping,
+void BKE_curvemapping_compute_slopes(const CurveMapping *curve_mapping,
                                      float start_slopes[4],
                                      float end_slopes[4]);
 
@@ -164,36 +158,35 @@ void BKE_curvemapping_compute_slopes(const struct CurveMapping *curve_mapping,
  * - The end point is at (1, 1).
  * Note that this could return false even if the curve map is identity, this happens in the case
  * when more than 2 points exist in the curve map but all points are collinear. */
-bool BKE_curvemapping_is_map_identity(const struct CurveMapping *curve_mapping, int index);
+bool BKE_curvemapping_is_map_identity(const CurveMapping *curve_mapping, int index);
 
 /**
  * Call when you do images etc, needs restore too. also verifies tables.
  * non-const (these modify the curve).
  */
-void BKE_curvemapping_premultiply(struct CurveMapping *cumap, bool restore);
+void BKE_curvemapping_premultiply(CurveMapping *cumap, bool restore);
 
-void BKE_curvemapping_blend_write(struct BlendWriter *writer, const struct CurveMapping *cumap);
-void BKE_curvemapping_curves_blend_write(struct BlendWriter *writer,
-                                         const struct CurveMapping *cumap);
+void BKE_curvemapping_blend_write(BlendWriter *writer, const CurveMapping *cumap);
+void BKE_curvemapping_curves_blend_write(BlendWriter *writer, const CurveMapping *cumap);
 /**
  * \note `cumap` itself has been read already.
  */
-void BKE_curvemapping_blend_read(struct BlendDataReader *reader, struct CurveMapping *cumap);
+void BKE_curvemapping_blend_read(BlendDataReader *reader, CurveMapping *cumap);
 
-void BKE_histogram_update_sample_line(struct Histogram *hist,
-                                      struct ImBuf *ibuf,
-                                      const struct ColorManagedViewSettings *view_settings,
-                                      const struct ColorManagedDisplaySettings *display_settings);
-void BKE_scopes_update(struct Scopes *scopes,
-                       struct ImBuf *ibuf,
-                       const struct ColorManagedViewSettings *view_settings,
-                       const struct ColorManagedDisplaySettings *display_settings);
-void BKE_scopes_free(struct Scopes *scopes);
-void BKE_scopes_new(struct Scopes *scopes);
+void BKE_histogram_update_sample_line(Histogram *hist,
+                                      ImBuf *ibuf,
+                                      const ColorManagedViewSettings *view_settings,
+                                      const ColorManagedDisplaySettings *display_settings);
+void BKE_scopes_update(Scopes *scopes,
+                       ImBuf *ibuf,
+                       const ColorManagedViewSettings *view_settings,
+                       const ColorManagedDisplaySettings *display_settings);
+void BKE_scopes_free(Scopes *scopes);
+void BKE_scopes_new(Scopes *scopes);
 
-void BKE_color_managed_display_settings_init(struct ColorManagedDisplaySettings *settings);
-void BKE_color_managed_display_settings_copy(struct ColorManagedDisplaySettings *new_settings,
-                                             const struct ColorManagedDisplaySettings *settings);
+void BKE_color_managed_display_settings_init(ColorManagedDisplaySettings *settings);
+void BKE_color_managed_display_settings_copy(ColorManagedDisplaySettings *new_settings,
+                                             const ColorManagedDisplaySettings *settings);
 
 /**
  * Initialize view settings to be best suitable for render type of viewing.
@@ -201,8 +194,8 @@ void BKE_color_managed_display_settings_copy(struct ColorManagedDisplaySettings
  * is specified.
  */
 void BKE_color_managed_view_settings_init_render(
-    struct ColorManagedViewSettings *settings,
-    const struct ColorManagedDisplaySettings *display_settings,
+    ColorManagedViewSettings *settings,
+    const ColorManagedDisplaySettings *display_settings,
     const char *view_transform);
 
 /**
@@ -210,23 +203,21 @@ void BKE_color_managed_view_settings_init_render(
  * For example,s movie clips while tracking.
  */
 void BKE_color_managed_view_settings_init_default(
-    struct ColorManagedViewSettings *settings,
-    const struct ColorManagedDisplaySettings *display_settings);
+    ColorManagedViewSettings *settings, const ColorManagedDisplaySettings *display_settings);
 
-void BKE_color_managed_view_settings_copy(struct ColorManagedViewSettings *new_settings,
-                                          const struct ColorManagedViewSettings *settings);
-void BKE_color_managed_view_settings_free(struct ColorManagedViewSettings *settings);
+void BKE_color_managed_view_settings_copy(ColorManagedViewSettings *new_settings,
+                                          const ColorManagedViewSettings *settings);
+void BKE_color_managed_view_settings_free(ColorManagedViewSettings *settings);
 
-void BKE_color_managed_view_settings_blend_write(struct BlendWriter *writer,
-                                                 struct ColorManagedViewSettings *settings);
-void BKE_color_managed_view_settings_blend_read_data(struct BlendDataReader *reader,
-                                                     struct ColorManagedViewSettings *settings);
+void BKE_color_managed_view_settings_blend_write(BlendWriter *writer,
+                                                 ColorManagedViewSettings *settings);
+void BKE_color_managed_view_settings_blend_read_data(BlendDataReader *reader,
+                                                     ColorManagedViewSettings *settings);
 
 void BKE_color_managed_colorspace_settings_init(
-    struct ColorManagedColorspaceSettings *colorspace_settings);
+    ColorManagedColorspaceSettings *colorspace_settings);
 void BKE_color_managed_colorspace_settings_copy(
-    struct ColorManagedColorspaceSettings *colorspace_settings,
-    const struct ColorManagedColorspaceSettings *settings);
-bool BKE_color_managed_colorspace_settings_equals(
-    const struct ColorManagedColorspaceSettings *settings1,
-    const struct ColorManagedColorspaceSettings *settings2);
+    ColorManagedColorspaceSettings *colorspace_settings,
+    const ColorManagedColorspaceSettings *settings);
+bool BKE_color_managed_colorspace_settings_equals(const ColorManagedColorspaceSettings *settings1,
+                                                  const ColorManagedColorspaceSettings *settings2);
diff --git a/source/blender/blenkernel/BKE_file_handler.hh b/source/blender/blenkernel/BKE_file_handler.hh
index 4d70330a1a42fddabcc36ca07954fcbfcb444e4f..11b0c41669fb86a88ce33ac855b0129d4f78fd31 100644
--- a/source/blender/blenkernel/BKE_file_handler.hh
+++ b/source/blender/blenkernel/BKE_file_handler.hh
@@ -8,6 +8,8 @@
 
 #include "RNA_types.hh"
 
+struct bContext;
+
 #define FH_MAX_FILE_EXTENSIONS_STR 512
 
 struct FileHandlerType {
@@ -22,7 +24,7 @@ struct FileHandlerType {
   char file_extensions_str[FH_MAX_FILE_EXTENSIONS_STR];
 
   /** Check if file handler can be used on file drop. */
-  bool (*poll_drop)(const struct bContext *C, FileHandlerType *file_handle_type);
+  bool (*poll_drop)(const bContext *C, FileHandlerType *file_handle_type);
 
   /** List of file extensions supported by the file handler. */
   blender::Vector<std::string> file_extensions;
diff --git a/source/blender/blenkernel/BKE_lib_remap.hh b/source/blender/blenkernel/BKE_lib_remap.hh
index f3bb494bbe342519c170d5be0c638e43b2262c89..0dcefdd4a422c79003953c9c57f21d44cfec80da 100644
--- a/source/blender/blenkernel/BKE_lib_remap.hh
+++ b/source/blender/blenkernel/BKE_lib_remap.hh
@@ -111,13 +111,13 @@ enum {
   ID_REMAP_NO_ORIG_POINTERS_ACCESS = 1 << 20,
 };
 
-typedef enum eIDRemapType {
+enum eIDRemapType {
   /** Remap an ID reference to a new reference. The new reference can also be null. */
   ID_REMAP_TYPE_REMAP = 0,
 
   /** Cleanup all IDs used by a specific one. */
   ID_REMAP_TYPE_CLEANUP = 1,
-} eIDRemapType;
+};
 
 /**
  * Replace all references in given Main using the given \a mappings
@@ -192,15 +192,15 @@ void BKE_libblock_relink_multiple(Main *bmain,
  */
 void BKE_libblock_relink_to_newid(Main *bmain, ID *id, int remap_flag) ATTR_NONNULL();
 
-typedef void (*BKE_library_free_notifier_reference_cb)(const void *);
-typedef void (*BKE_library_remap_editor_id_reference_cb)(const IDRemapper *mappings);
+using BKE_library_free_notifier_reference_cb = void (*)(const void *);
+using BKE_library_remap_editor_id_reference_cb = void (*)(const IDRemapper *mappings);
 
 void BKE_library_callback_free_notifier_reference_set(BKE_library_free_notifier_reference_cb func);
 void BKE_library_callback_remap_editor_id_reference_set(
     BKE_library_remap_editor_id_reference_cb func);
 
 /* IDRemapper */
-typedef enum IDRemapperApplyResult {
+enum IDRemapperApplyResult {
   /** No remapping rules available for the source. */
   ID_REMAP_RESULT_SOURCE_UNAVAILABLE,
   /** Source isn't mappable (e.g. NULL). */
@@ -209,9 +209,9 @@ typedef enum IDRemapperApplyResult {
   ID_REMAP_RESULT_SOURCE_REMAPPED,
   /** Source has been set to NULL. */
   ID_REMAP_RESULT_SOURCE_UNASSIGNED,
-} IDRemapperApplyResult;
+};
 
-typedef enum IDRemapperApplyOptions {
+enum IDRemapperApplyOptions {
   /**
    * Update the user count of the old and new ID data-block.
    *
@@ -240,17 +240,17 @@ typedef enum IDRemapperApplyOptions {
   ID_REMAP_APPLY_UNMAP_WHEN_REMAPPING_TO_SELF = (1 << 2),
 
   ID_REMAP_APPLY_DEFAULT = 0,
-} IDRemapperApplyOptions;
+};
 ENUM_OPERATORS(IDRemapperApplyOptions, ID_REMAP_APPLY_UNMAP_WHEN_REMAPPING_TO_SELF)
 
-typedef void (*IDRemapperIterFunction)(ID *old_id, ID *new_id, void *user_data);
+using IDRemapperIterFunction = void (*)(ID *old_id, ID *new_id, void *user_data);
 
 /**
  * Create a new ID Remapper.
  *
  * An ID remapper stores multiple remapping rules.
  */
-IDRemapper *BKE_id_remapper_create(void);
+IDRemapper *BKE_id_remapper_create();
 
 void BKE_id_remapper_clear(IDRemapper *id_remapper);
 bool BKE_id_remapper_is_empty(const IDRemapper *id_remapper);
diff --git a/source/blender/blenkernel/BKE_main.hh b/source/blender/blenkernel/BKE_main.hh
index 714990133ddb9dc3bf867fc91b7ed03d9d5457b3..11782bfe28242d496bb4ab06dca56440ec15dd09 100644
--- a/source/blender/blenkernel/BKE_main.hh
+++ b/source/blender/blenkernel/BKE_main.hh
@@ -465,7 +465,7 @@ const char *BKE_main_blendfile_path(const Main *bmain) ATTR_NONNULL();
  * \warning Usage is not recommended,
  * you should always try to get a valid Main pointer from context.
  */
-const char *BKE_main_blendfile_path_from_global(void);
+const char *BKE_main_blendfile_path_from_global();
 
 /**
  * \return A pointer to the \a ListBase of given \a bmain for requested \a type ID type.
diff --git a/source/blender/blenkernel/BKE_main_namemap.hh b/source/blender/blenkernel/BKE_main_namemap.hh
index 928a6132b4c93a81950c2492ba95ed93b14edaec..0c27e407559262c62ca7cc8e263beacb78c4d397 100644
--- a/source/blender/blenkernel/BKE_main_namemap.hh
+++ b/source/blender/blenkernel/BKE_main_namemap.hh
@@ -24,7 +24,7 @@ struct ID;
 struct Main;
 struct UniqueName_Map;
 
-UniqueName_Map *BKE_main_namemap_create(void) ATTR_WARN_UNUSED_RESULT;
+UniqueName_Map *BKE_main_namemap_create() ATTR_WARN_UNUSED_RESULT;
 void BKE_main_namemap_destroy(UniqueName_Map **r_name_map) ATTR_NONNULL();
 
 /**
diff --git a/source/blender/blenkernel/BKE_pbvh_api.hh b/source/blender/blenkernel/BKE_pbvh_api.hh
index 0e1a27efdc6e57a752950254d545615b2b74822f..a2f2e0f3f518709586caf689ec574a4c6ba0e02f 100644
--- a/source/blender/blenkernel/BKE_pbvh_api.hh
+++ b/source/blender/blenkernel/BKE_pbvh_api.hh
@@ -85,7 +85,7 @@ struct PBVHFrustumPlanes {
 
 BLI_INLINE BMesh *BKE_pbvh_get_bmesh(PBVH *pbvh)
 {
-  return ((struct PBVHPublic *)pbvh)->bm;
+  return ((PBVHPublic *)pbvh)->bm;
 }
 
 Mesh *BKE_pbvh_get_mesh(PBVH *pbvh);
diff --git a/source/blender/blenkernel/BKE_volume_render.hh b/source/blender/blenkernel/BKE_volume_render.hh
index 0de466516039a455f5ffe0b905cf76a6ea30e3b2..aae351c352dbeac149b303e3e2f42a993a3fb17e 100644
--- a/source/blender/blenkernel/BKE_volume_render.hh
+++ b/source/blender/blenkernel/BKE_volume_render.hh
@@ -35,7 +35,7 @@ void BKE_volume_dense_float_grid_clear(DenseFloatVolumeGrid *dense_grid);
 
 /* Wireframe */
 
-typedef void (*BKE_volume_wireframe_cb)(
+using BKE_volume_wireframe_cb = void (*)(
     void *userdata, const float (*verts)[3], const int (*edges)[2], int totvert, int totedge);
 
 void BKE_volume_grid_wireframe(const Volume *volume,
diff --git a/source/blender/blenkernel/BKE_volume_to_mesh.hh b/source/blender/blenkernel/BKE_volume_to_mesh.hh
index c730da464873eae2bc240ffcb809fc28c2054bf8..5dc5ada8e9533f29b55b265539e8f4e710354df9 100644
--- a/source/blender/blenkernel/BKE_volume_to_mesh.hh
+++ b/source/blender/blenkernel/BKE_volume_to_mesh.hh
@@ -48,10 +48,10 @@ Mesh *volume_to_mesh(const openvdb::GridBase &grid,
  * Convert an OpenVDB volume grid to corresponding mesh data: vertex positions and quad and
  * triangle indices.
  */
-struct OpenVDBMeshData volume_to_mesh_data(const openvdb::GridBase &grid,
-                                           const VolumeToMeshResolution &resolution,
-                                           float threshold,
-                                           float adaptivity);
+OpenVDBMeshData volume_to_mesh_data(const openvdb::GridBase &grid,
+                                    const VolumeToMeshResolution &resolution,
+                                    float threshold,
+                                    float adaptivity);
 
 /**
  * Convert mesh data from the format provided by OpenVDB into Blender's #Mesh data structure.
diff --git a/source/blender/blenlib/BLI_string_utils.hh b/source/blender/blenlib/BLI_string_utils.hh
index 1e540be67fb3174c1d208b05f81398b4633e4a57..983603c1eda6b33d03289b65e3db2f657fac85ff 100644
--- a/source/blender/blenlib/BLI_string_utils.hh
+++ b/source/blender/blenlib/BLI_string_utils.hh
@@ -18,7 +18,7 @@
 
 struct ListBase;
 
-typedef bool (*UniquenameCheckCallback)(void *arg, const char *name);
+using UniquenameCheckCallback = bool (*)(void *arg, const char *name);
 
 /* ------------------------------------------------------------------------- */
 /** \name String Replace
diff --git a/source/blender/blenloader/BLO_read_write.hh b/source/blender/blenloader/BLO_read_write.hh
index c9b1ca4dd6f3b0945363803e33e9a1e30c8358aa..eb54fedca3d05f3919ecaddd77217bcc9364b487 100644
--- a/source/blender/blenloader/BLO_read_write.hh
+++ b/source/blender/blenloader/BLO_read_write.hh
@@ -224,7 +224,7 @@ void *BLO_read_get_new_packed_address(BlendDataReader *reader, const void *old_a
 #define BLO_read_packed_address(reader, ptr_p) \
   *((void **)ptr_p) = BLO_read_get_new_packed_address((reader), *(ptr_p))
 
-typedef void (*BlendReadListFn)(BlendDataReader *reader, void *data);
+using BlendReadListFn = void (*)(BlendDataReader *reader, void *data);
 /**
  * Updates all `->prev` and `->next` pointers of the list elements.
  * Updates the `list->first` and `list->last` pointers.
diff --git a/source/blender/blenloader/BLO_undofile.hh b/source/blender/blenloader/BLO_undofile.hh
index 3d6a175a4153c8ddfefdf019b0e74d61912de65d..c15a2302d6c67cb12a86992fd727dbe24efa740d 100644
--- a/source/blender/blenloader/BLO_undofile.hh
+++ b/source/blender/blenloader/BLO_undofile.hh
@@ -55,14 +55,14 @@ struct MemFileUndoData {
 };
 
 /* FileReader-compatible wrapper for reading MemFiles */
-typedef struct {
+struct UndoReader {
   FileReader reader;
 
   MemFile *memfile;
   int undo_direction;
 
   bool memchunk_identical;
-} UndoReader;
+};
 
 /* Actually only used `writefile.cc`. */
 
diff --git a/source/blender/blenloader/BLO_writefile.hh b/source/blender/blenloader/BLO_writefile.hh
index b1bc0391695d8dcff43f2a16a488d53ba2bad3a9..2bbc7f3be550d4582b29e78e7e140fef02fc30af 100644
--- a/source/blender/blenloader/BLO_writefile.hh
+++ b/source/blender/blenloader/BLO_writefile.hh
@@ -9,10 +9,6 @@
  * \brief external `writefile.cc` function prototypes.
  */
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 struct BlendThumbnail;
 struct Main;
 struct MemFile;
@@ -27,7 +23,7 @@ struct ReportList;
 /**
  * Adjust paths when saving (kept unless #BlendFileWriteParams.use_save_as_copy is set).
  */
-typedef enum eBLO_WritePathRemap {
+enum eBLO_WritePathRemap {
   /** No path manipulation. */
   BLO_WRITE_PATH_REMAP_NONE = 0,
   /** Remap existing relative paths (default). */
@@ -36,7 +32,7 @@ typedef enum eBLO_WritePathRemap {
   BLO_WRITE_PATH_REMAP_RELATIVE_ALL = 2,
   /** Make all paths absolute. */
   BLO_WRITE_PATH_REMAP_ABSOLUTE = 3,
-} eBLO_WritePathRemap;
+};
 
 /** Similar to #BlendFileReadParams. */
 struct BlendFileWriteParams {
@@ -46,28 +42,21 @@ struct BlendFileWriteParams {
   /** On write, restore paths after editing them (see #BLO_WRITE_PATH_REMAP_RELATIVE). */
   uint use_save_as_copy : 1;
   uint use_userdef : 1;
-  const struct BlendThumbnail *thumb;
+  const BlendThumbnail *thumb;
 };
 
 /**
  * \return Success.
  */
-extern bool BLO_write_file(struct Main *mainvar,
+extern bool BLO_write_file(Main *mainvar,
                            const char *filepath,
                            int write_flags,
-                           const struct BlendFileWriteParams *params,
-                           struct ReportList *reports);
+                           const BlendFileWriteParams *params,
+                           ReportList *reports);
 
 /**
  * \return Success.
  */
-extern bool BLO_write_file_mem(struct Main *mainvar,
-                               struct MemFile *compare,
-                               struct MemFile *current,
-                               int write_flags);
+extern bool BLO_write_file_mem(Main *mainvar, MemFile *compare, MemFile *current, int write_flags);
 
 /** \} */
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/source/blender/bmesh/intern/bmesh_construct.hh b/source/blender/bmesh/intern/bmesh_construct.hh
index c14abfc063fcbff3e18157d1459dff7a8edb0c9f..7a5cf2871355af0c71b2c1f43ee668460627f62f 100644
--- a/source/blender/bmesh/intern/bmesh_construct.hh
+++ b/source/blender/bmesh/intern/bmesh_construct.hh
@@ -161,15 +161,13 @@ void BM_elem_select_copy(BMesh *bm_dst, void *ele_dst_v, const void *ele_src_v);
  * as this is the mesh they have control over (active UV layer for rendering for example).
  */
 void BM_mesh_copy_init_customdata_from_mesh_array(BMesh *bm_dst,
-                                                  const struct Mesh *me_src_array[],
+                                                  const Mesh *me_src_array[],
                                                   int me_src_array_len,
-                                                  const struct BMAllocTemplate *allocsize);
+                                                  const BMAllocTemplate *allocsize);
 void BM_mesh_copy_init_customdata_from_mesh(BMesh *bm_dst,
-                                            const struct Mesh *me_src,
-                                            const struct BMAllocTemplate *allocsize);
-void BM_mesh_copy_init_customdata(BMesh *bm_dst,
-                                  BMesh *bm_src,
-                                  const struct BMAllocTemplate *allocsize);
+                                            const Mesh *me_src,
+                                            const BMAllocTemplate *allocsize);
+void BM_mesh_copy_init_customdata(BMesh *bm_dst, BMesh *bm_src, const BMAllocTemplate *allocsize);
 /**
  * Similar to #BM_mesh_copy_init_customdata but copies all layers ignoring
  * flags like #CD_FLAG_NOCOPY.
@@ -182,5 +180,5 @@ void BM_mesh_copy_init_customdata(BMesh *bm_dst,
 void BM_mesh_copy_init_customdata_all_layers(BMesh *bm_dst,
                                              BMesh *bm_src,
                                              char htype,
-                                             const struct BMAllocTemplate *allocsize);
+                                             const BMAllocTemplate *allocsize);
 BMesh *BM_mesh_copy(BMesh *bm_old);
diff --git a/source/blender/bmesh/intern/bmesh_edgeloop.hh b/source/blender/bmesh/intern/bmesh_edgeloop.hh
index fa413ad0f591d1c66f62b4201901240d7834b399..12286ae42a6263db4293c334fd5203e4054f34e5 100644
--- a/source/blender/bmesh/intern/bmesh_edgeloop.hh
+++ b/source/blender/bmesh/intern/bmesh_edgeloop.hh
@@ -17,7 +17,7 @@ struct ListBase;
  * \return listbase of listbases, each linking to a vertex.
  */
 int BM_mesh_edgeloops_find(BMesh *bm,
-                           struct ListBase *r_eloops,
+                           ListBase *r_eloops,
                            bool (*test_fn)(BMEdge *, void *user_data),
                            void *user_data);
 bool BM_mesh_edgeloops_find_path(BMesh *bm,
@@ -27,33 +27,31 @@ bool BM_mesh_edgeloops_find_path(BMesh *bm,
                                  BMVert *v_src,
                                  BMVert *v_dst);
 
-void BM_mesh_edgeloops_free(struct ListBase *eloops);
-void BM_mesh_edgeloops_calc_center(BMesh *bm, struct ListBase *eloops);
-void BM_mesh_edgeloops_calc_normal(BMesh *bm, struct ListBase *eloops);
-void BM_mesh_edgeloops_calc_normal_aligned(BMesh *bm,
-                                           struct ListBase *eloops,
-                                           const float no_align[3]);
+void BM_mesh_edgeloops_free(ListBase *eloops);
+void BM_mesh_edgeloops_calc_center(BMesh *bm, ListBase *eloops);
+void BM_mesh_edgeloops_calc_normal(BMesh *bm, ListBase *eloops);
+void BM_mesh_edgeloops_calc_normal_aligned(BMesh *bm, ListBase *eloops, const float no_align[3]);
 void BM_mesh_edgeloops_calc_order(BMesh *bm, ListBase *eloops, bool use_normals);
 
 /**
  * Copy a single edge-loop.
  * \return new edge-loops.
  */
-struct BMEdgeLoopStore *BM_edgeloop_copy(struct BMEdgeLoopStore *el_store);
-struct BMEdgeLoopStore *BM_edgeloop_from_verts(BMVert **v_arr, int v_arr_tot, bool is_closed);
+BMEdgeLoopStore *BM_edgeloop_copy(BMEdgeLoopStore *el_store);
+BMEdgeLoopStore *BM_edgeloop_from_verts(BMVert **v_arr, int v_arr_tot, bool is_closed);
 
-void BM_edgeloop_free(struct BMEdgeLoopStore *el_store);
-bool BM_edgeloop_is_closed(struct BMEdgeLoopStore *el_store);
-int BM_edgeloop_length_get(struct BMEdgeLoopStore *el_store);
-struct ListBase *BM_edgeloop_verts_get(struct BMEdgeLoopStore *el_store);
-const float *BM_edgeloop_normal_get(struct BMEdgeLoopStore *el_store);
-const float *BM_edgeloop_center_get(struct BMEdgeLoopStore *el_store);
+void BM_edgeloop_free(BMEdgeLoopStore *el_store);
+bool BM_edgeloop_is_closed(BMEdgeLoopStore *el_store);
+int BM_edgeloop_length_get(BMEdgeLoopStore *el_store);
+ListBase *BM_edgeloop_verts_get(BMEdgeLoopStore *el_store);
+const float *BM_edgeloop_normal_get(BMEdgeLoopStore *el_store);
+const float *BM_edgeloop_center_get(BMEdgeLoopStore *el_store);
 /**
  * Edges are assigned to one vert -> the next.
  */
-void BM_edgeloop_edges_get(struct BMEdgeLoopStore *el_store, BMEdge **e_arr);
-void BM_edgeloop_calc_center(BMesh *bm, struct BMEdgeLoopStore *el_store);
-bool BM_edgeloop_calc_normal(BMesh *bm, struct BMEdgeLoopStore *el_store);
+void BM_edgeloop_edges_get(BMEdgeLoopStore *el_store, BMEdge **e_arr);
+void BM_edgeloop_calc_center(BMesh *bm, BMEdgeLoopStore *el_store);
+bool BM_edgeloop_calc_normal(BMesh *bm, BMEdgeLoopStore *el_store);
 /**
  * For open loops that are straight lines,
  * calculating the normal as if it were a polygon is meaningless.
@@ -61,17 +59,13 @@ bool BM_edgeloop_calc_normal(BMesh *bm, struct BMEdgeLoopStore *el_store);
  * Instead use an alignment vector and calculate the normal based on that.
  */
 bool BM_edgeloop_calc_normal_aligned(BMesh *bm,
-                                     struct BMEdgeLoopStore *el_store,
+                                     BMEdgeLoopStore *el_store,
                                      const float no_align[3]);
-void BM_edgeloop_flip(BMesh *bm, struct BMEdgeLoopStore *el_store);
-void BM_edgeloop_expand(BMesh *bm,
-                        struct BMEdgeLoopStore *el_store,
-                        int el_store_len,
-                        bool split,
-                        struct GSet *split_edges);
+void BM_edgeloop_flip(BMesh *bm, BMEdgeLoopStore *el_store);
+void BM_edgeloop_expand(
+    BMesh *bm, BMEdgeLoopStore *el_store, int el_store_len, bool split, GSet *split_edges);
 
-bool BM_edgeloop_overlap_check(struct BMEdgeLoopStore *el_store_a,
-                               struct BMEdgeLoopStore *el_store_b);
+bool BM_edgeloop_overlap_check(BMEdgeLoopStore *el_store_a, BMEdgeLoopStore *el_store_b);
 
 #define BM_EDGELINK_NEXT(el_store, elink) \
   (elink)->next ? \
@@ -80,5 +74,4 @@ bool BM_edgeloop_overlap_check(struct BMEdgeLoopStore *el_store_a,
                                          NULL)
 
 #define BM_EDGELOOP_NEXT(el_store) \
-  (CHECK_TYPE_INLINE(el_store, struct BMEdgeLoopStore *), \
-   (struct BMEdgeLoopStore *)((LinkData *)el_store)->next)
+  (CHECK_TYPE_INLINE(el_store, BMEdgeLoopStore *), (BMEdgeLoopStore *)((LinkData *)el_store)->next)
diff --git a/source/blender/bmesh/intern/bmesh_interp.hh b/source/blender/bmesh/intern/bmesh_interp.hh
index b2101ba8d45d49c007a1df51928d13813d3ca5b3..de26983cfb3d3753dd0e6a614f4a6f9659670605 100644
--- a/source/blender/bmesh/intern/bmesh_interp.hh
+++ b/source/blender/bmesh/intern/bmesh_interp.hh
@@ -110,17 +110,17 @@ void BM_loop_interp_from_face(
  */
 void BM_face_multires_bounds_smooth(BMesh *bm, BMFace *f);
 
-struct LinkNode *BM_vert_loop_groups_data_layer_create(
-    BMesh *bm, BMVert *v, int layer_n, const float *loop_weights, struct MemArena *arena);
+LinkNode *BM_vert_loop_groups_data_layer_create(
+    BMesh *bm, BMVert *v, int layer_n, const float *loop_weights, MemArena *arena);
 /**
  * Take existing custom data and merge each fan's data.
  */
-void BM_vert_loop_groups_data_layer_merge(BMesh *bm, struct LinkNode *groups, int layer_n);
+void BM_vert_loop_groups_data_layer_merge(BMesh *bm, LinkNode *groups, int layer_n);
 /**
  * A version of #BM_vert_loop_groups_data_layer_merge
  * that takes an array of loop-weights (aligned with #BM_LOOPS_OF_VERT iterator).
  */
 void BM_vert_loop_groups_data_layer_merge_weights(BMesh *bm,
-                                                  struct LinkNode *groups,
+                                                  LinkNode *groups,
                                                   int layer_n,
                                                   const float *loop_weights);
diff --git a/source/blender/bmesh/intern/bmesh_iterators.hh b/source/blender/bmesh/intern/bmesh_iterators.hh
index ed0dda182046c514109e6196cf206354f2437bb3..6aaf7b3b78c8c26d1b894acd8747016cfa165fcf 100644
--- a/source/blender/bmesh/intern/bmesh_iterators.hh
+++ b/source/blender/bmesh/intern/bmesh_iterators.hh
@@ -150,21 +150,21 @@ typedef void *(*BMIter__step_cb)(void *);
 /* Iterator Structure */
 /* NOTE: some of these vars are not used,
  * so they have been commented to save stack space since this struct is used all over */
-typedef struct BMIter {
+struct BMIter {
   /* keep union first */
   union {
-    struct BMIter__elem_of_mesh elem_of_mesh;
-
-    struct BMIter__edge_of_vert edge_of_vert;
-    struct BMIter__face_of_vert face_of_vert;
-    struct BMIter__loop_of_vert loop_of_vert;
-    struct BMIter__loop_of_edge loop_of_edge;
-    struct BMIter__loop_of_loop loop_of_loop;
-    struct BMIter__face_of_edge face_of_edge;
-    struct BMIter__vert_of_edge vert_of_edge;
-    struct BMIter__vert_of_face vert_of_face;
-    struct BMIter__edge_of_face edge_of_face;
-    struct BMIter__loop_of_face loop_of_face;
+    BMIter__elem_of_mesh elem_of_mesh;
+
+    BMIter__edge_of_vert edge_of_vert;
+    BMIter__face_of_vert face_of_vert;
+    BMIter__loop_of_vert loop_of_vert;
+    BMIter__loop_of_edge loop_of_edge;
+    BMIter__loop_of_loop loop_of_loop;
+    BMIter__face_of_edge face_of_edge;
+    BMIter__vert_of_edge vert_of_edge;
+    BMIter__vert_of_face vert_of_face;
+    BMIter__edge_of_face edge_of_face;
+    BMIter__loop_of_face loop_of_face;
   } data;
 
   BMIter__begin_cb begin;
@@ -172,7 +172,7 @@ typedef struct BMIter {
 
   int count; /* NOTE: only some iterators set this, don't rely on it. */
   char itype;
-} BMIter;
+};
 
 /**
  * \note Use #BM_vert_at_index / #BM_edge_at_index / #BM_face_at_index for mesh arrays.
diff --git a/source/blender/bmesh/intern/bmesh_log.hh b/source/blender/bmesh/intern/bmesh_log.hh
index ef61b09986e20b407ca6c2417e5662c2b9468adf..a33627dbfe1ded758cb8563908d1b5554eca654f 100644
--- a/source/blender/bmesh/intern/bmesh_log.hh
+++ b/source/blender/bmesh/intern/bmesh_log.hh
@@ -12,9 +12,8 @@ struct BMFace;
 struct BMVert;
 struct BMesh;
 struct RangeTreeUInt;
-
-typedef struct BMLog BMLog;
-typedef struct BMLogEntry BMLogEntry;
+struct BMLog;
+struct BMLogEntry;
 
 /**
  * Allocate, initialize, and assign a new BMLog.
@@ -110,7 +109,7 @@ void BM_log_redo(BMesh *bm, BMLog *log);
  * state so that a subsequent redo operation will restore the newer
  * vertex state.
  */
-void BM_log_vert_before_modified(BMLog *log, struct BMVert *v, int cd_vert_mask_offset);
+void BM_log_vert_before_modified(BMLog *log, BMVert *v, int cd_vert_mask_offset);
 
 /**
  * Log a new vertex as added to the #BMesh.
@@ -119,7 +118,7 @@ void BM_log_vert_before_modified(BMLog *log, struct BMVert *v, int cd_vert_mask_
  * of added vertices, with the key being its ID and the value
  * containing everything needed to reconstruct that vertex.
  */
-void BM_log_vert_added(BMLog *log, struct BMVert *v, int cd_vert_mask_offset);
+void BM_log_vert_added(BMLog *log, BMVert *v, int cd_vert_mask_offset);
 
 /**
  * Log a face before it is modified.
@@ -127,7 +126,7 @@ void BM_log_vert_added(BMLog *log, struct BMVert *v, int cd_vert_mask_offset);
  * This is intended to handle only header flags and we always
  * assume face has been added before.
  */
-void BM_log_face_modified(BMLog *log, struct BMFace *f);
+void BM_log_face_modified(BMLog *log, BMFace *f);
 
 /**
  * Log a new face as added to the #BMesh.
@@ -136,7 +135,7 @@ void BM_log_face_modified(BMLog *log, struct BMFace *f);
  * of added faces, with the key being its ID and the value containing
  * everything needed to reconstruct that face.
  */
-void BM_log_face_added(BMLog *log, struct BMFace *f);
+void BM_log_face_added(BMLog *log, BMFace *f);
 
 /**
  * Log a vertex as removed from the #BMesh.
@@ -155,7 +154,7 @@ void BM_log_face_added(BMLog *log, struct BMFace *f);
  * If there's a move record for the vertex, that's used as the
  * vertices original location, then the move record is deleted.
  */
-void BM_log_vert_removed(BMLog *log, struct BMVert *v, int cd_vert_mask_offset);
+void BM_log_vert_removed(BMLog *log, BMVert *v, int cd_vert_mask_offset);
 
 /**
  * Log a face as removed from the #BMesh.
@@ -171,7 +170,7 @@ void BM_log_vert_removed(BMLog *log, struct BMVert *v, int cd_vert_mask_offset);
  * its ID and the value containing everything needed to reconstruct
  * that face.
  */
-void BM_log_face_removed(BMLog *log, struct BMFace *f);
+void BM_log_face_removed(BMLog *log, BMFace *f);
 
 /**
  * Log all vertices/faces in the #BMesh as added.
diff --git a/source/blender/bmesh/intern/bmesh_mesh.hh b/source/blender/bmesh/intern/bmesh_mesh.hh
index 21aad23a309570db0c37bdd9a01ca114e9109e5b..631ebf1aa2c6c5dec3e41028fef2c666770abd77 100644
--- a/source/blender/bmesh/intern/bmesh_mesh.hh
+++ b/source/blender/bmesh/intern/bmesh_mesh.hh
@@ -28,8 +28,7 @@ struct BMeshCreateParams {
  *
  * \note ob is needed by multires
  */
-BMesh *BM_mesh_create(const struct BMAllocTemplate *allocsize,
-                      const struct BMeshCreateParams *params);
+BMesh *BM_mesh_create(const BMAllocTemplate *allocsize, const BMeshCreateParams *params);
 
 /**
  * \brief BMesh Free Mesh
@@ -162,15 +161,15 @@ void BM_mesh_remap(BMesh *bm, const uint *vert_idx, const uint *edge_idx, const
  * but could also be used for packing fragmented bmeshes.
  */
 void BM_mesh_rebuild(BMesh *bm,
-                     const struct BMeshCreateParams *params,
-                     struct BLI_mempool *vpool,
-                     struct BLI_mempool *epool,
-                     struct BLI_mempool *lpool,
-                     struct BLI_mempool *fpool);
+                     const BMeshCreateParams *params,
+                     BLI_mempool *vpool,
+                     BLI_mempool *epool,
+                     BLI_mempool *lpool,
+                     BLI_mempool *fpool);
 
-typedef struct BMAllocTemplate {
+struct BMAllocTemplate {
   int totvert, totedge, totloop, totface;
-} BMAllocTemplate;
+};
 
 /* used as an extern, defined in bmesh.h */
 extern const BMAllocTemplate bm_mesh_allocsize_default;
diff --git a/source/blender/bmesh/intern/bmesh_mesh_normals.hh b/source/blender/bmesh/intern/bmesh_mesh_normals.hh
index ac2beb6f491793fdce219074345e0a7d266562df..f83059ccd76a3ab62aae076c81060a517d3519ab 100644
--- a/source/blender/bmesh/intern/bmesh_mesh_normals.hh
+++ b/source/blender/bmesh/intern/bmesh_mesh_normals.hh
@@ -25,16 +25,16 @@ struct BMeshNormalsUpdate_Params {
  *
  * Updates the normals of a mesh.
  */
-void BM_mesh_normals_update_ex(BMesh *bm, const struct BMeshNormalsUpdate_Params *param);
+void BM_mesh_normals_update_ex(BMesh *bm, const BMeshNormalsUpdate_Params *param);
 void BM_mesh_normals_update(BMesh *bm);
 /**
  * A version of #BM_mesh_normals_update that updates a subset of geometry,
  * used to avoid the overhead of updating everything.
  */
 void BM_mesh_normals_update_with_partial_ex(BMesh *bm,
-                                            const struct BMPartialUpdate *bmpinfo,
-                                            const struct BMeshNormalsUpdate_Params *param);
-void BM_mesh_normals_update_with_partial(BMesh *bm, const struct BMPartialUpdate *bmpinfo);
+                                            const BMPartialUpdate *bmpinfo,
+                                            const BMeshNormalsUpdate_Params *param);
+void BM_mesh_normals_update_with_partial(BMesh *bm, const BMPartialUpdate *bmpinfo);
 
 /**
  * \brief BMesh Compute Normals from/to external data.
@@ -59,7 +59,7 @@ void BM_loops_calc_normal_vcos(BMesh *bm,
                                const float (*fnos)[3],
                                bool use_split_normals,
                                float (*r_lnos)[3],
-                               struct MLoopNorSpaceArray *r_lnors_spacearr,
+                               MLoopNorSpaceArray *r_lnors_spacearr,
                                short (*clnors_data)[2],
                                int cd_loop_clnors_offset,
                                bool do_rebuild);
@@ -84,16 +84,15 @@ void BM_lnorspace_err(BMesh *bm);
 #endif
 
 /* Loop Generics */
-struct BMLoopNorEditDataArray *BM_loop_normal_editdata_array_init(BMesh *bm,
-                                                                  bool do_all_loops_of_vert);
-void BM_loop_normal_editdata_array_free(struct BMLoopNorEditDataArray *lnors_ed_arr);
+BMLoopNorEditDataArray *BM_loop_normal_editdata_array_init(BMesh *bm, bool do_all_loops_of_vert);
+void BM_loop_normal_editdata_array_free(BMLoopNorEditDataArray *lnors_ed_arr);
 
 /**
  * \warning This function sets #BM_ELEM_TAG on loops & edges via #bm_mesh_loops_calc_normals,
  * take care to run this before setting up tags.
  */
-bool BM_custom_loop_normals_to_vector_layer(struct BMesh *bm);
-void BM_custom_loop_normals_from_vector_layer(struct BMesh *bm, bool add_sharp_edges);
+bool BM_custom_loop_normals_to_vector_layer(BMesh *bm);
+void BM_custom_loop_normals_from_vector_layer(BMesh *bm, bool add_sharp_edges);
 
 /**
  * Define sharp edges as needed to mimic 'autosmooth' from angle threshold.
diff --git a/source/blender/bmesh/intern/bmesh_mesh_partial_update.hh b/source/blender/bmesh/intern/bmesh_mesh_partial_update.hh
index 1b23e96f04267a46b4117e434aaaf71ed2629f38..1c9603b11fb76f3245dac23c91e61d0b9f27c560 100644
--- a/source/blender/bmesh/intern/bmesh_mesh_partial_update.hh
+++ b/source/blender/bmesh/intern/bmesh_mesh_partial_update.hh
@@ -13,10 +13,10 @@
 /**
  * Parameters used to determine which kinds of data needs to be generated.
  */
-typedef struct BMPartialUpdate_Params {
+struct BMPartialUpdate_Params {
   bool do_normals;
   bool do_tessellate;
-} BMPartialUpdate_Params;
+};
 
 /**
  * Cached data to speed up partial updates.
@@ -30,7 +30,7 @@ typedef struct BMPartialUpdate_Params {
  * - Partial normal updates use face & loop indices,
  *   setting them to dirty values between updates will slow down normal recalculation.
  */
-typedef struct BMPartialUpdate {
+struct BMPartialUpdate {
   BMVert **verts;
   BMFace **faces;
   int verts_len, verts_len_alloc;
@@ -38,7 +38,7 @@ typedef struct BMPartialUpdate {
 
   /** Store the parameters used in creation so invalid use can be asserted. */
   BMPartialUpdate_Params params;
-} BMPartialUpdate;
+};
 
 /**
  * All Tagged & Connected, see: #BM_mesh_partial_create_from_verts
diff --git a/source/blender/bmesh/intern/bmesh_mesh_tessellate.hh b/source/blender/bmesh/intern/bmesh_mesh_tessellate.hh
index de30f18977a588599198ac06181bdd4617950adb..a13db52147be69f5a7c3a9478422776c5b9d343d 100644
--- a/source/blender/bmesh/intern/bmesh_mesh_tessellate.hh
+++ b/source/blender/bmesh/intern/bmesh_mesh_tessellate.hh
@@ -20,7 +20,7 @@ struct BMeshCalcTessellation_Params {
 
 void BM_mesh_calc_tessellation_ex(BMesh *bm,
                                   BMLoop *(*looptris)[3],
-                                  const struct BMeshCalcTessellation_Params *params);
+                                  const BMeshCalcTessellation_Params *params);
 void BM_mesh_calc_tessellation(BMesh *bm, BMLoop *(*looptris)[3]);
 
 /**
@@ -30,8 +30,8 @@ void BM_mesh_calc_tessellation_beauty(BMesh *bm, BMLoop *(*looptris)[3]);
 
 void BM_mesh_calc_tessellation_with_partial_ex(BMesh *bm,
                                                BMLoop *(*looptris)[3],
-                                               const struct BMPartialUpdate *bmpinfo,
-                                               const struct BMeshCalcTessellation_Params *params);
+                                               const BMPartialUpdate *bmpinfo,
+                                               const BMeshCalcTessellation_Params *params);
 void BM_mesh_calc_tessellation_with_partial(BMesh *bm,
                                             BMLoop *(*looptris)[3],
-                                            const struct BMPartialUpdate *bmpinfo);
+                                            const BMPartialUpdate *bmpinfo);
diff --git a/source/blender/bmesh/tools/bmesh_bevel.hh b/source/blender/bmesh/tools/bmesh_bevel.hh
index 54b58eaceba3513939b5dab4a1f5d2353ab8c031..8822d52c4d3e045bb0ae69bd27087bec6a849dd8 100644
--- a/source/blender/bmesh/tools/bmesh_bevel.hh
+++ b/source/blender/bmesh/tools/bmesh_bevel.hh
@@ -32,7 +32,7 @@ void BM_mesh_bevel(BMesh *bm,
                    bool affect_type,
                    bool use_weights,
                    bool limit_offset,
-                   const struct MDeformVert *dvert,
+                   const MDeformVert *dvert,
                    int vertex_group,
                    int mat,
                    bool loop_slide,
@@ -43,5 +43,5 @@ void BM_mesh_bevel(BMesh *bm,
                    int miter_outer,
                    int miter_inner,
                    float spread,
-                   const struct CurveProfile *custom_profile,
+                   const CurveProfile *custom_profile,
                    int vmesh_method);
diff --git a/source/blender/bmesh/tools/bmesh_path_region_uv.hh b/source/blender/bmesh/tools/bmesh_path_region_uv.hh
index 745ac13d36ef7746b6b6a94d2b8a83ca8a45aa45..cc7eaa67fca60ac83681e4ac54e54fbbc0743f3d 100644
--- a/source/blender/bmesh/tools/bmesh_path_region_uv.hh
+++ b/source/blender/bmesh/tools/bmesh_path_region_uv.hh
@@ -8,26 +8,26 @@
  * \ingroup bmesh
  */
 
-struct LinkNode *BM_mesh_calc_path_uv_region_vert(BMesh *bm,
-                                                  BMElem *ele_src,
-                                                  BMElem *ele_dst,
-                                                  int cd_loop_uv_offset,
-                                                  bool (*filter_fn)(BMLoop *, void *user_data),
-                                                  void *user_data) ATTR_WARN_UNUSED_RESULT
+LinkNode *BM_mesh_calc_path_uv_region_vert(BMesh *bm,
+                                           BMElem *ele_src,
+                                           BMElem *ele_dst,
+                                           int cd_loop_uv_offset,
+                                           bool (*filter_fn)(BMLoop *, void *user_data),
+                                           void *user_data) ATTR_WARN_UNUSED_RESULT
     ATTR_NONNULL(1, 2, 3);
 
-struct LinkNode *BM_mesh_calc_path_uv_region_edge(BMesh *bm,
-                                                  BMElem *ele_src,
-                                                  BMElem *ele_dst,
-                                                  int cd_loop_uv_offset,
-                                                  bool (*filter_fn)(BMLoop *, void *user_data),
-                                                  void *user_data) ATTR_WARN_UNUSED_RESULT
+LinkNode *BM_mesh_calc_path_uv_region_edge(BMesh *bm,
+                                           BMElem *ele_src,
+                                           BMElem *ele_dst,
+                                           int cd_loop_uv_offset,
+                                           bool (*filter_fn)(BMLoop *, void *user_data),
+                                           void *user_data) ATTR_WARN_UNUSED_RESULT
     ATTR_NONNULL(1, 2, 3);
 
-struct LinkNode *BM_mesh_calc_path_uv_region_face(BMesh *bm,
-                                                  BMElem *ele_src,
-                                                  BMElem *ele_dst,
-                                                  int cd_loop_uv_offset,
-                                                  bool (*filter_fn)(BMFace *, void *user_data),
-                                                  void *user_data) ATTR_WARN_UNUSED_RESULT
+LinkNode *BM_mesh_calc_path_uv_region_face(BMesh *bm,
+                                           BMElem *ele_src,
+                                           BMElem *ele_dst,
+                                           int cd_loop_uv_offset,
+                                           bool (*filter_fn)(BMFace *, void *user_data),
+                                           void *user_data) ATTR_WARN_UNUSED_RESULT
     ATTR_NONNULL(1, 2, 3);
diff --git a/source/blender/depsgraph/DEG_depsgraph_build.hh b/source/blender/depsgraph/DEG_depsgraph_build.hh
index a75af424c256f173227ff4562f247b0b3c3e649a..b61c9540231b2f04ce1ac4e1a80cc6e9b27fd46d 100644
--- a/source/blender/depsgraph/DEG_depsgraph_build.hh
+++ b/source/blender/depsgraph/DEG_depsgraph_build.hh
@@ -76,7 +76,7 @@ void DEG_relations_tag_update(Main *bmain);
  */
 struct DepsNodeHandle;
 
-typedef enum eDepsSceneComponentType {
+enum eDepsSceneComponentType {
   /* Parameters Component - Default when nothing else fits
    * (i.e. just SDNA property setting). */
   DEG_SCENE_COMP_PARAMETERS,
@@ -85,9 +85,9 @@ typedef enum eDepsSceneComponentType {
   DEG_SCENE_COMP_ANIMATION,
   /* Sequencer Component (Scene Only). */
   DEG_SCENE_COMP_SEQUENCER,
-} eDepsSceneComponentType;
+};
 
-typedef enum eDepsObjectComponentType {
+enum eDepsObjectComponentType {
   /* Used in query API, to denote which component caller is interested in. */
   DEG_OB_COMP_ANY,
 
@@ -114,7 +114,7 @@ typedef enum eDepsObjectComponentType {
   DEG_OB_COMP_SHADING,
   /* Cache Component */
   DEG_OB_COMP_CACHE,
-} eDepsObjectComponentType;
+};
 
 void DEG_add_scene_relation(DepsNodeHandle *node_handle,
                             Scene *scene,
diff --git a/source/blender/depsgraph/DEG_depsgraph_query.hh b/source/blender/depsgraph/DEG_depsgraph_query.hh
index 35927c26099e68e723529ead6efea0fb3cfaf14b..3b1d6dc6a32172e0d463ab38e9903727d0fce936 100644
--- a/source/blender/depsgraph/DEG_depsgraph_query.hh
+++ b/source/blender/depsgraph/DEG_depsgraph_query.hh
@@ -133,13 +133,13 @@ bool DEG_is_fully_evaluated(const Depsgraph *depsgraph);
 /** \name DEG object iterators
  * \{ */
 
-typedef enum DegIterFlag {
+enum DegIterFlag {
   DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY = (1 << 0),
   DEG_ITER_OBJECT_FLAG_LINKED_INDIRECTLY = (1 << 1),
   DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET = (1 << 2),
   DEG_ITER_OBJECT_FLAG_VISIBLE = (1 << 3),
   DEG_ITER_OBJECT_FLAG_DUPLI = (1 << 4),
-} DegIterFlag;
+};
 ENUM_OPERATORS(DegIterFlag, DEG_ITER_OBJECT_FLAG_DUPLI)
 
 struct DEGObjectIterSettings {
diff --git a/source/blender/depsgraph/intern/depsgraph.hh b/source/blender/depsgraph/intern/depsgraph.hh
index 2d122f52fce9dbbedcdb0714a43741fc5264a563..b14035e324c6f050426e253e0da335fe969fe2ba 100644
--- a/source/blender/depsgraph/intern/depsgraph.hh
+++ b/source/blender/depsgraph/intern/depsgraph.hh
@@ -43,8 +43,8 @@ struct TimeSourceNode;
 
 /* Dependency Graph object */
 struct Depsgraph {
-  typedef Vector<OperationNode *> OperationNodes;
-  typedef Vector<IDNode *> IDDepsNodes;
+  using OperationNodes = Vector<OperationNode *>;
+  using IDDepsNodes = Vector<IDNode *>;
 
   Depsgraph(Main *bmain, Scene *scene, ViewLayer *view_layer, eEvaluationMode mode);
   ~Depsgraph();
diff --git a/source/blender/depsgraph/intern/depsgraph_type.hh b/source/blender/depsgraph/intern/depsgraph_type.hh
index f0249d4e13952e3e1e665b8522bff7b5610ceddb..a871c8f7072fbb78663b77a0c167c26ebe286c9a 100644
--- a/source/blender/depsgraph/intern/depsgraph_type.hh
+++ b/source/blender/depsgraph/intern/depsgraph_type.hh
@@ -32,7 +32,6 @@
 #include "BLI_vector_set.hh"
 
 struct Depsgraph;
-
 struct CustomData_MeshMasks;
 
 namespace blender::deg {
diff --git a/source/blender/depsgraph/intern/node/deg_node.hh b/source/blender/depsgraph/intern/node/deg_node.hh
index 26d3bbb6bba70d31aa6a8949e9586e23d64b1396..b223640354551271025ba746eb502073ad3f2b38 100644
--- a/source/blender/depsgraph/intern/node/deg_node.hh
+++ b/source/blender/depsgraph/intern/node/deg_node.hh
@@ -169,7 +169,7 @@ struct Node {
    * The reason why all depsgraph nodes are descended from this type (apart
    * from basic serialization benefits - from the typeinfo) is that we can
    * have relationships between these nodes. */
-  typedef Vector<Relation *> Relations;
+  using Relations = Vector<Relation *>;
 
   string name;        /* Identifier - mainly for debugging purposes. */
   NodeType type;      /* Structural type of node. */
diff --git a/source/blender/depsgraph/intern/node/deg_node_id.hh b/source/blender/depsgraph/intern/node/deg_node_id.hh
index d8ec8dbf8f3da0c137c002ee08128b6288d3480a..90bae07f5e93425ec6d62824ec3370e3d35ddf65 100644
--- a/source/blender/depsgraph/intern/node/deg_node_id.hh
+++ b/source/blender/depsgraph/intern/node/deg_node_id.hh
@@ -17,7 +17,7 @@ namespace blender::deg {
 
 struct ComponentNode;
 
-typedef uint64_t IDComponentsMask;
+using IDComponentsMask = uint64_t;
 
 /* NOTE: We use max comparison to mark an id node that is linked more than once
  * So keep this enum ordered accordingly. */
diff --git a/source/blender/depsgraph/intern/node/deg_node_operation.hh b/source/blender/depsgraph/intern/node/deg_node_operation.hh
index 724b2b9b7cda1d51ed5b4ac5a4600fc43cc08891..ac9081d52ae437ed2111b116e7d9053726ebc798 100644
--- a/source/blender/depsgraph/intern/node/deg_node_operation.hh
+++ b/source/blender/depsgraph/intern/node/deg_node_operation.hh
@@ -20,7 +20,7 @@ struct ComponentNode;
 
 /* Evaluation Operation for atomic operation */
 /* XXX: move this to another header that can be exposed? */
-typedef function<void(::Depsgraph *)> DepsEvalOperationCb;
+using DepsEvalOperationCb = function<void(::Depsgraph *)>;
 
 /* Identifiers for common operations (as an enum). */
 enum class OperationCode {
diff --git a/source/blender/draw/intern/draw_subdivision.hh b/source/blender/draw/intern/draw_subdivision.hh
index 4121d8e4395eaf15a69a0b95213e2f62b0d5d2a5..6b51b3ecb6300d6b64ddbf8f19d64b1721c505f4 100644
--- a/source/blender/draw/intern/draw_subdivision.hh
+++ b/source/blender/draw/intern/draw_subdivision.hh
@@ -94,7 +94,7 @@ struct DRWSubdivLooseGeom {
  * This holds the various buffers used to evaluate and render subdivision through OpenGL.
  * \{ */
 
-typedef struct DRWSubdivCache {
+struct DRWSubdivCache {
   Mesh *mesh;
   BMesh *bm;
   Subdiv *subdiv;
@@ -181,7 +181,7 @@ typedef struct DRWSubdivCache {
   /* Extra flags, passed to the UBO. */
   bool is_edit_mode;
   bool use_hide;
-} DRWSubdivCache;
+};
 
 /* Only frees the data of the cache, caller is responsible to free the cache itself if necessary.
  */
diff --git a/source/blender/editors/include/UI_interface_c.hh b/source/blender/editors/include/UI_interface_c.hh
index ae22821ab72ed9f77f5407c8280cea27ae3220c4..5d9be3fd87387724c1341f4a5691f1e7de6e2dbc 100644
--- a/source/blender/editors/include/UI_interface_c.hh
+++ b/source/blender/editors/include/UI_interface_c.hh
@@ -1788,15 +1788,15 @@ void UI_but_func_tooltip_set(uiBut *but, uiButToolTipFunc func, void *arg, uiFre
  */
 void UI_but_func_tooltip_label_set(uiBut *but, std::function<std::string(const uiBut *but)> func);
 
-typedef enum uiTooltipStyle {
+enum uiTooltipStyle {
   UI_TIP_STYLE_NORMAL = 0, /* Regular text. */
   UI_TIP_STYLE_HEADER,     /* Header text. */
   UI_TIP_STYLE_MONO,       /* Mono-spaced text. */
   UI_TIP_STYLE_IMAGE,      /* Image field. */
   UI_TIP_STYLE_SPACER,     /* Padding to separate sections. */
-} uiTooltipStyle;
+};
 
-typedef enum uiTooltipColorID {
+enum uiTooltipColorID {
   UI_TIP_LC_MAIN = 0, /* Color of primary text. */
   UI_TIP_LC_VALUE,    /* Color for the value of buttons (also shortcuts). */
   UI_TIP_LC_ACTIVE,   /* Color of titles of active enum values. */
@@ -1804,7 +1804,7 @@ typedef enum uiTooltipColorID {
   UI_TIP_LC_PYTHON,   /* Color of python snippets. */
   UI_TIP_LC_ALERT,    /* Warning text color, eg: why operator can't run. */
   UI_TIP_LC_MAX
-} uiTooltipColorID;
+};
 
 void UI_but_func_tooltip_custom_set(uiBut *but,
                                     uiButToolTipCustomFunc func,
diff --git a/source/blender/editors/sculpt_paint/paint_intern.hh b/source/blender/editors/sculpt_paint/paint_intern.hh
index 26e2e50122902febcdbb53542acbca8d3c65098c..00433759222724d88519285b9453ac7f4c36f3b6 100644
--- a/source/blender/editors/sculpt_paint/paint_intern.hh
+++ b/source/blender/editors/sculpt_paint/paint_intern.hh
@@ -122,9 +122,9 @@ bool vertex_paint_poll_ignore_tool(bContext *C);
  */
 bool vertex_paint_mode_poll(bContext *C);
 
-typedef void (*VPaintTransform_Callback)(const float col[3],
-                                         const void *user_data,
-                                         float r_col[3]);
+using VPaintTransform_Callback = void (*)(const float col[3],
+                                          const void *user_data,
+                                          float r_col[3]);
 
 void PAINT_OT_weight_paint_toggle(wmOperatorType *ot);
 void PAINT_OT_weight_paint(wmOperatorType *ot);
diff --git a/source/blender/editors/space_image/image_intern.hh b/source/blender/editors/space_image/image_intern.hh
index ff20bf418b3b66bf70cb4ac1f26876c8b3d47298..dd1b96fa7c36c253b102bbc6987d3cabb1c754ea 100644
--- a/source/blender/editors/space_image/image_intern.hh
+++ b/source/blender/editors/space_image/image_intern.hh
@@ -24,77 +24,77 @@ extern const char *image_context_dir[]; /* doc access */
 
 /* `image_draw.cc` */
 
-void draw_image_main_helpers(const struct bContext *C, struct ARegion *region);
-void draw_image_cache(const struct bContext *C, struct ARegion *region);
-void draw_image_sample_line(struct SpaceImage *sima);
+void draw_image_main_helpers(const bContext *C, ARegion *region);
+void draw_image_cache(const bContext *C, ARegion *region);
+void draw_image_sample_line(SpaceImage *sima);
 
 /* `image_ops.cc` */
 
-bool space_image_main_region_poll(struct bContext *C);
-bool space_image_view_center_cursor_poll(struct bContext *C);
-
-void IMAGE_OT_view_all(struct wmOperatorType *ot);
-void IMAGE_OT_view_pan(struct wmOperatorType *ot);
-void IMAGE_OT_view_selected(struct wmOperatorType *ot);
-void IMAGE_OT_view_center_cursor(struct wmOperatorType *ot);
-void IMAGE_OT_view_cursor_center(struct wmOperatorType *ot);
-void IMAGE_OT_view_zoom(struct wmOperatorType *ot);
-void IMAGE_OT_view_zoom_in(struct wmOperatorType *ot);
-void IMAGE_OT_view_zoom_out(struct wmOperatorType *ot);
-void IMAGE_OT_view_zoom_ratio(struct wmOperatorType *ot);
-void IMAGE_OT_view_zoom_border(struct wmOperatorType *ot);
+bool space_image_main_region_poll(bContext *C);
+bool space_image_view_center_cursor_poll(bContext *C);
+
+void IMAGE_OT_view_all(wmOperatorType *ot);
+void IMAGE_OT_view_pan(wmOperatorType *ot);
+void IMAGE_OT_view_selected(wmOperatorType *ot);
+void IMAGE_OT_view_center_cursor(wmOperatorType *ot);
+void IMAGE_OT_view_cursor_center(wmOperatorType *ot);
+void IMAGE_OT_view_zoom(wmOperatorType *ot);
+void IMAGE_OT_view_zoom_in(wmOperatorType *ot);
+void IMAGE_OT_view_zoom_out(wmOperatorType *ot);
+void IMAGE_OT_view_zoom_ratio(wmOperatorType *ot);
+void IMAGE_OT_view_zoom_border(wmOperatorType *ot);
 #ifdef WITH_INPUT_NDOF
-void IMAGE_OT_view_ndof(struct wmOperatorType *ot);
+void IMAGE_OT_view_ndof(wmOperatorType *ot);
 #endif
 
-void IMAGE_OT_new(struct wmOperatorType *ot);
+void IMAGE_OT_new(wmOperatorType *ot);
 /**
  * Called by other space types too.
  */
-void IMAGE_OT_open(struct wmOperatorType *ot);
-void IMAGE_OT_file_browse(struct wmOperatorType *ot);
+void IMAGE_OT_open(wmOperatorType *ot);
+void IMAGE_OT_file_browse(wmOperatorType *ot);
 /**
  * Called by other space types too.
  */
-void IMAGE_OT_match_movie_length(struct wmOperatorType *ot);
-void IMAGE_OT_replace(struct wmOperatorType *ot);
-void IMAGE_OT_reload(struct wmOperatorType *ot);
-void IMAGE_OT_save(struct wmOperatorType *ot);
-void IMAGE_OT_save_as(struct wmOperatorType *ot);
-void IMAGE_OT_save_sequence(struct wmOperatorType *ot);
-void IMAGE_OT_save_all_modified(struct wmOperatorType *ot);
-void IMAGE_OT_pack(struct wmOperatorType *ot);
-void IMAGE_OT_unpack(struct wmOperatorType *ot);
-void IMAGE_OT_clipboard_copy(struct wmOperatorType *ot);
-void IMAGE_OT_clipboard_paste(struct wmOperatorType *ot);
-
-void IMAGE_OT_flip(struct wmOperatorType *ot);
-void IMAGE_OT_invert(struct wmOperatorType *ot);
-void IMAGE_OT_resize(struct wmOperatorType *ot);
-
-void IMAGE_OT_cycle_render_slot(struct wmOperatorType *ot);
-void IMAGE_OT_clear_render_slot(struct wmOperatorType *ot);
-void IMAGE_OT_add_render_slot(struct wmOperatorType *ot);
-void IMAGE_OT_remove_render_slot(struct wmOperatorType *ot);
-
-void IMAGE_OT_sample(struct wmOperatorType *ot);
-void IMAGE_OT_sample_line(struct wmOperatorType *ot);
-void IMAGE_OT_curves_point_set(struct wmOperatorType *ot);
-
-void IMAGE_OT_change_frame(struct wmOperatorType *ot);
-
-void IMAGE_OT_read_viewlayers(struct wmOperatorType *ot);
-void IMAGE_OT_render_border(struct wmOperatorType *ot);
-void IMAGE_OT_clear_render_border(struct wmOperatorType *ot);
-
-void IMAGE_OT_tile_add(struct wmOperatorType *ot);
-void IMAGE_OT_tile_remove(struct wmOperatorType *ot);
-void IMAGE_OT_tile_fill(struct wmOperatorType *ot);
+void IMAGE_OT_match_movie_length(wmOperatorType *ot);
+void IMAGE_OT_replace(wmOperatorType *ot);
+void IMAGE_OT_reload(wmOperatorType *ot);
+void IMAGE_OT_save(wmOperatorType *ot);
+void IMAGE_OT_save_as(wmOperatorType *ot);
+void IMAGE_OT_save_sequence(wmOperatorType *ot);
+void IMAGE_OT_save_all_modified(wmOperatorType *ot);
+void IMAGE_OT_pack(wmOperatorType *ot);
+void IMAGE_OT_unpack(wmOperatorType *ot);
+void IMAGE_OT_clipboard_copy(wmOperatorType *ot);
+void IMAGE_OT_clipboard_paste(wmOperatorType *ot);
+
+void IMAGE_OT_flip(wmOperatorType *ot);
+void IMAGE_OT_invert(wmOperatorType *ot);
+void IMAGE_OT_resize(wmOperatorType *ot);
+
+void IMAGE_OT_cycle_render_slot(wmOperatorType *ot);
+void IMAGE_OT_clear_render_slot(wmOperatorType *ot);
+void IMAGE_OT_add_render_slot(wmOperatorType *ot);
+void IMAGE_OT_remove_render_slot(wmOperatorType *ot);
+
+void IMAGE_OT_sample(wmOperatorType *ot);
+void IMAGE_OT_sample_line(wmOperatorType *ot);
+void IMAGE_OT_curves_point_set(wmOperatorType *ot);
+
+void IMAGE_OT_change_frame(wmOperatorType *ot);
+
+void IMAGE_OT_read_viewlayers(wmOperatorType *ot);
+void IMAGE_OT_render_border(wmOperatorType *ot);
+void IMAGE_OT_clear_render_border(wmOperatorType *ot);
+
+void IMAGE_OT_tile_add(wmOperatorType *ot);
+void IMAGE_OT_tile_remove(wmOperatorType *ot);
+void IMAGE_OT_tile_fill(wmOperatorType *ot);
 
 /* image_panels.c */
 
 /**
  * Gets active viewer user.
  */
-struct ImageUser *ntree_get_active_iuser(struct bNodeTree *ntree);
-void image_buttons_register(struct ARegionType *art);
+ImageUser *ntree_get_active_iuser(bNodeTree *ntree);
+void image_buttons_register(ARegionType *art);
diff --git a/source/blender/editors/space_outliner/outliner_intern.hh b/source/blender/editors/space_outliner/outliner_intern.hh
index feb5c43ae743429bc4038089aceef3b7a01daf9b..b81ff4437f187f71536dd3448f1517b202a461f1 100644
--- a/source/blender/editors/space_outliner/outliner_intern.hh
+++ b/source/blender/editors/space_outliner/outliner_intern.hh
@@ -86,7 +86,7 @@ enum TreeTraversalAction {
   TRAVERSE_SKIP_CHILDS,
 };
 
-typedef TreeTraversalAction (*TreeTraversalFunc)(TreeElement *te, void *customdata);
+using TreeTraversalFunc = TreeTraversalAction (*)(TreeElement *te, void *customdata);
 
 struct TreeElement {
   TreeElement *next, *prev, *parent;
@@ -382,13 +382,13 @@ bool outliner_is_co_within_mode_column(SpaceOutliner *space_outliner, const floa
 void outliner_item_mode_toggle(bContext *C, TreeViewContext *tvc, TreeElement *te, bool do_extend);
 
 /* `outliner_edit.cc` */
-typedef void (*outliner_operation_fn)(bContext *C,
-                                      ReportList *,
-                                      Scene *scene,
-                                      TreeElement *,
-                                      TreeStoreElem *,
-                                      TreeStoreElem *,
-                                      void *);
+using outliner_operation_fn = void (*)(bContext *C,
+                                       ReportList *,
+                                       Scene *scene,
+                                       TreeElement *,
+                                       TreeStoreElem *,
+                                       TreeStoreElem *,
+                                       void *);
 
 /**
  * \param recurse_selected: Set to false for operations which are already
diff --git a/source/blender/gpu/GPU_select.hh b/source/blender/gpu/GPU_select.hh
index 09f1c0f9c5f09ad46f32a7db57b70d27ce0e092a..72f7396d918c4f4b998089ca35d952d76c48f2d0 100644
--- a/source/blender/gpu/GPU_select.hh
+++ b/source/blender/gpu/GPU_select.hh
@@ -15,7 +15,7 @@
 struct rcti;
 
 /** Flags for mode of operation. */
-typedef enum eGPUSelectMode {
+enum eGPUSelectMode {
   GPU_SELECT_ALL = 1,
   /* gpu_select_query */
   GPU_SELECT_NEAREST_FIRST_PASS = 2,
@@ -23,12 +23,12 @@ typedef enum eGPUSelectMode {
   /* gpu_select_pick */
   GPU_SELECT_PICK_ALL = 4,
   GPU_SELECT_PICK_NEAREST = 5,
-} eGPUSelectMode;
+};
 
 /**
  * The result of calling #GPU_select_begin & #GPU_select_end.
  */
-typedef struct GPUSelectResult {
+struct GPUSelectResult {
   /** The selection identifier matching the value passed in by #GPU_select_load_id. */
   unsigned int id;
   /**
@@ -39,7 +39,7 @@ typedef struct GPUSelectResult {
    *   this has not been included as Blender doesn't need this however support could be added.
    */
   unsigned int depth;
-} GPUSelectResult;
+};
 
 using GPUSelectStorage = blender::Vector<GPUSelectResult, 2500>;
 struct GPUSelectBuffer {
@@ -50,7 +50,7 @@ struct GPUSelectBuffer {
  * Initialize and provide buffer for results.
  */
 void GPU_select_begin(GPUSelectBuffer *buffer,
-                      const struct rcti *input,
+                      const rcti *input,
                       eGPUSelectMode mode,
                       int oldhits);
 /**
@@ -58,7 +58,7 @@ void GPU_select_begin(GPUSelectBuffer *buffer,
  * Uses the new Select-Next engine if enabled.
  */
 void GPU_select_begin_next(GPUSelectBuffer *buffer,
-                           const struct rcti *input,
+                           const rcti *input,
                            eGPUSelectMode mode,
                            int oldhits);
 /**
@@ -99,4 +99,4 @@ uint GPU_select_buffer_remove_by_id(blender::MutableSpan<GPUSelectResult> hit_re
 /**
  * Part of the solution copied from `rect_subregion_stride_calc`.
  */
-void GPU_select_buffer_stride_realign(const struct rcti *src, const struct rcti *dst, uint *r_buf);
+void GPU_select_buffer_stride_realign(const rcti *src, const rcti *dst, uint *r_buf);
diff --git a/source/blender/io/common/IO_dupli_persistent_id.hh b/source/blender/io/common/IO_dupli_persistent_id.hh
index 39c91c79cb1d1372c78245d9b13a22dd62c648b5..482a98bc75170b96258d65954f0384e0ade0456f 100644
--- a/source/blender/io/common/IO_dupli_persistent_id.hh
+++ b/source/blender/io/common/IO_dupli_persistent_id.hh
@@ -17,7 +17,7 @@ namespace blender::io {
 class PersistentID {
  protected:
   constexpr static int array_length_ = MAX_DUPLI_RECUR;
-  typedef std::array<int, array_length_> PIDArray;
+  using PIDArray = std::array<int, array_length_>;
   PIDArray persistent_id_;
 
   explicit PersistentID(const PIDArray &persistent_id_values);
diff --git a/source/blender/makesrna/RNA_access.hh b/source/blender/makesrna/RNA_access.hh
index 6b787782a163889478fca98deab8307d4f0f6766..16b78d07f0d46cf81dd4ef5d19dbbd3abff54d19 100644
--- a/source/blender/makesrna/RNA_access.hh
+++ b/source/blender/makesrna/RNA_access.hh
@@ -755,7 +755,7 @@ void _RNA_warning(const char *format, ...) ATTR_PRINTF_FORMAT(1, 2);
  * \note In practice, #EQ_STRICT and #EQ_COMPARE have same behavior currently,
  * and will yield same result.
  */
-typedef enum eRNACompareMode {
+enum eRNACompareMode {
   /* Only care about equality, not full comparison. */
   /** Set/unset ignored. */
   RNA_EQ_STRICT,
@@ -765,7 +765,7 @@ typedef enum eRNACompareMode {
   RNA_EQ_UNSET_MATCH_NONE,
   /** Full comparison. */
   RNA_EQ_COMPARE,
-} eRNACompareMode;
+};
 
 bool RNA_property_equals(
     Main *bmain, PointerRNA *ptr_a, PointerRNA *ptr_b, PropertyRNA *prop, eRNACompareMode mode);
@@ -774,7 +774,7 @@ bool RNA_struct_equals(Main *bmain, PointerRNA *ptr_a, PointerRNA *ptr_b, eRNACo
 /* Override. */
 
 /** Flags for #RNA_struct_override_matches. */
-typedef enum eRNAOverrideMatch {
+enum eRNAOverrideMatch {
   /** Do not compare properties that are not overridable. */
   RNA_OVERRIDE_COMPARE_IGNORE_NON_OVERRIDABLE = 1 << 0,
   /** Do not compare properties that are already overridden. */
@@ -786,10 +786,10 @@ typedef enum eRNAOverrideMatch {
   RNA_OVERRIDE_COMPARE_RESTORE = 1 << 17,
   /** Tag for restoration of property's value(s) to reference ones, if needed and possible. */
   RNA_OVERRIDE_COMPARE_TAG_FOR_RESTORE = 1 << 18,
-} eRNAOverrideMatch;
+};
 ENUM_OPERATORS(eRNAOverrideMatch, RNA_OVERRIDE_COMPARE_TAG_FOR_RESTORE)
 
-typedef enum eRNAOverrideMatchResult {
+enum eRNAOverrideMatchResult {
   RNA_OVERRIDE_MATCH_RESULT_INIT = 0,
 
   /**
@@ -804,10 +804,10 @@ typedef enum eRNAOverrideMatchResult {
   RNA_OVERRIDE_MATCH_RESULT_RESTORE_TAGGED = 1 << 1,
   /** Some properties were reset to reference values. */
   RNA_OVERRIDE_MATCH_RESULT_RESTORED = 1 << 2,
-} eRNAOverrideMatchResult;
+};
 ENUM_OPERATORS(eRNAOverrideMatchResult, RNA_OVERRIDE_MATCH_RESULT_RESTORED)
 
-typedef enum eRNAOverrideStatus {
+enum eRNAOverrideStatus {
   /** The property is overridable. */
   RNA_OVERRIDE_STATUS_OVERRIDABLE = 1 << 0,
   /** The property is overridden. */
@@ -816,7 +816,7 @@ typedef enum eRNAOverrideStatus {
   RNA_OVERRIDE_STATUS_MANDATORY = 1 << 2,
   /** The override status of this property is locked. */
   RNA_OVERRIDE_STATUS_LOCKED = 1 << 3,
-} eRNAOverrideStatus;
+};
 ENUM_OPERATORS(eRNAOverrideStatus, RNA_OVERRIDE_STATUS_LOCKED)
 
 /**
@@ -848,7 +848,7 @@ bool RNA_struct_override_store(Main *bmain,
                                PointerRNA *ptr_storage,
                                IDOverrideLibrary *override);
 
-typedef enum eRNAOverrideApplyFlag {
+enum eRNAOverrideApplyFlag {
   RNA_OVERRIDE_APPLY_FLAG_NOP = 0,
   /**
    * Hack to work around/fix older broken overrides: Do not apply override operations affecting ID
@@ -861,7 +861,7 @@ typedef enum eRNAOverrideApplyFlag {
 
   /** Only perform restore operations. */
   RNA_OVERRIDE_APPLY_FLAG_RESTORE_ONLY = 1 << 2,
-} eRNAOverrideApplyFlag;
+};
 
 /**
  * Apply given \a override operations on \a id_ptr_dst, using \a id_ptr_src
diff --git a/source/blender/nodes/NOD_node_declaration.hh b/source/blender/nodes/NOD_node_declaration.hh
index 7f795988a276b43778ed36c99b1399326146d2ac..861aa99c67bc921c4b3625d5ee8eff68e5588722 100644
--- a/source/blender/nodes/NOD_node_declaration.hh
+++ b/source/blender/nodes/NOD_node_declaration.hh
@@ -387,7 +387,7 @@ class SocketDeclarationBuilder : public BaseSocketDeclarationBuilder {
 
 using SocketDeclarationPtr = std::unique_ptr<SocketDeclaration>;
 
-typedef void (*PanelDrawButtonsFunction)(uiLayout *, bContext *, PointerRNA *);
+using PanelDrawButtonsFunction = void (*)(uiLayout *, bContext *, PointerRNA *);
 
 /**
  * Describes a panel containing sockets or other panels.
diff --git a/source/blender/nodes/shader/node_shader_util.hh b/source/blender/nodes/shader/node_shader_util.hh
index 20b87d1b7b5c8b3002fd20e8ce1cc0c04e79bc24..a7041dccdfa451dd7bf7d233efe7ae1117e076a8 100644
--- a/source/blender/nodes/shader/node_shader_util.hh
+++ b/source/blender/nodes/shader/node_shader_util.hh
@@ -30,7 +30,6 @@
 #endif
 
 struct bContext;
-typedef struct bContext bContext;
 struct bNodeExecContext;
 struct bNodeExecData;
 struct bNodeTreeExec;
diff --git a/source/blender/nodes/texture/node_texture_util.hh b/source/blender/nodes/texture/node_texture_util.hh
index a38d797ca046dafbe992afe6d8296389d7537f2f..4d8c5b98bc63f441894af602cc40ae0286998f9b 100644
--- a/source/blender/nodes/texture/node_texture_util.hh
+++ b/source/blender/nodes/texture/node_texture_util.hh
@@ -50,7 +50,7 @@ struct TexParams {
   const MTex *mtex;
 };
 
-typedef void (*TexFn)(float *out, TexParams *params, bNode *node, bNodeStack **in, short thread);
+using TexFn = void (*)(float *out, TexParams *params, bNode *node, bNodeStack **in, short thread);
 
 struct TexDelegate {
   TexCallData *cdata;
diff --git a/source/blender/sequencer/SEQ_add.hh b/source/blender/sequencer/SEQ_add.hh
index a84c53c527ed862f140ec539d4cc43f543066f35..8bd6b6859e781044cc2070071daaa475262babba 100644
--- a/source/blender/sequencer/SEQ_add.hh
+++ b/source/blender/sequencer/SEQ_add.hh
@@ -14,8 +14,11 @@
 
 struct ListBase;
 struct Main;
+struct Mask;
+struct MovieClip;
 struct Scene;
 struct Sequence;
+struct Stereo3dFormat;
 
 /** #SeqLoadData.flags */
 enum eSeqLoadFlags {
@@ -36,22 +39,22 @@ struct SeqLoadData {
   struct {
     int len;
     int end_frame;
-  } image;                /* Only for image strips. */
-  struct Scene *scene;    /* Only for scene strips. */
-  struct MovieClip *clip; /* Only for clip strips. */
-  struct Mask *mask;      /* Only for mask strips. */
+  } image;         /* Only for image strips. */
+  Scene *scene;    /* Only for scene strips. */
+  MovieClip *clip; /* Only for clip strips. */
+  Mask *mask;      /* Only for mask strips. */
   struct {
     int type;
     int end_frame;
-    struct Sequence *seq1;
-    struct Sequence *seq2;
-    struct Sequence *seq3;
+    Sequence *seq1;
+    Sequence *seq2;
+    Sequence *seq3;
   } effect; /* Only for effect strips. */
   eSeqLoadFlags flags;
   eSeqImageFitMethod fit_method;
   bool use_multiview;
   char views_format;
-  struct Stereo3dFormat *stereo3d_format;
+  Stereo3dFormat *stereo3d_format;
   bool allow_invalid_file;     /* Used by RNA API to create placeholder strips. */
   double r_video_stream_start; /* For AV synchronization. Set by `SEQ_add_movie_strip`. */
   bool adjust_playback_rate;
diff --git a/source/blender/sequencer/SEQ_edit.hh b/source/blender/sequencer/SEQ_edit.hh
index 5902665280a4cefd9344efecc62421528a1c0564..1b54dec2b7fd5d563b34caf3e631aa7343bc43e4 100644
--- a/source/blender/sequencer/SEQ_edit.hh
+++ b/source/blender/sequencer/SEQ_edit.hh
@@ -52,10 +52,10 @@ void SEQ_edit_flag_for_removal(Scene *scene, ListBase *seqbase, Sequence *seq);
 void SEQ_edit_remove_flagged_sequences(Scene *scene, ListBase *seqbase);
 void SEQ_edit_update_muting(Editing *ed);
 
-typedef enum eSeqSplitMethod {
+enum eSeqSplitMethod {
   SEQ_SPLIT_SOFT,
   SEQ_SPLIT_HARD,
-} eSeqSplitMethod;
+};
 
 /**
  * Split Sequence at timeline_frame in two.
diff --git a/source/blender/sequencer/SEQ_effects.hh b/source/blender/sequencer/SEQ_effects.hh
index 997859749059fc60948208f2a1666d9b31868c72..a8d62f8c6ecaec7ee234584a0a5d4bdc176cb9d7 100644
--- a/source/blender/sequencer/SEQ_effects.hh
+++ b/source/blender/sequencer/SEQ_effects.hh
@@ -33,7 +33,7 @@ struct SeqEffectHandle {
 
   /* number of input strips needed
    * (called directly after construction) */
-  int (*num_inputs)(void);
+  int (*num_inputs)();
 
   /* load is called first time after readblenfile in
    * get_sequence_effect automatically */
diff --git a/source/blender/sequencer/SEQ_iterator.hh b/source/blender/sequencer/SEQ_iterator.hh
index 41c46584cfa82221018360c9704e2b96c02ef3d8..3df455855c7f58c67cd9173d0499f4626d44ad93 100644
--- a/source/blender/sequencer/SEQ_iterator.hh
+++ b/source/blender/sequencer/SEQ_iterator.hh
@@ -15,7 +15,7 @@ struct Sequence;
 /**
  * Callback format for the for_each function below.
  */
-typedef bool (*SeqForEachFunc)(Sequence *seq, void *user_data);
+using SeqForEachFunc = bool (*)(Sequence *seq, void *user_data);
 
 /**
  * Utility function to recursively iterate through all sequence strips in a `seqbase` list.
diff --git a/source/blender/sequencer/SEQ_transform.hh b/source/blender/sequencer/SEQ_transform.hh
index 5528396051a52f48224672b7cec6398db99617a4..2e8d8d50e3d03b2215c0948b0748fcc48eeb896c 100644
--- a/source/blender/sequencer/SEQ_transform.hh
+++ b/source/blender/sequencer/SEQ_transform.hh
@@ -28,28 +28,26 @@ bool SEQ_transform_seqbase_shuffle_ex(ListBase *seqbasep,
                                       Sequence *test,
                                       Scene *evil_scene,
                                       int channel_delta);
-bool SEQ_transform_seqbase_shuffle(struct ListBase *seqbasep,
-                                   struct Sequence *test,
-                                   struct Scene *evil_scene);
+bool SEQ_transform_seqbase_shuffle(ListBase *seqbasep, Sequence *test, Scene *evil_scene);
 bool SEQ_transform_seqbase_shuffle_time(blender::Span<Sequence *> strips_to_shuffle,
                                         blender::Span<Sequence *> time_dependent_strips,
-                                        struct ListBase *seqbasep,
-                                        struct Scene *evil_scene,
-                                        struct ListBase *markers,
+                                        ListBase *seqbasep,
+                                        Scene *evil_scene,
+                                        ListBase *markers,
                                         bool use_sync_markers);
 bool SEQ_transform_seqbase_shuffle_time(blender::Span<Sequence *> strips_to_shuffle,
-                                        struct ListBase *seqbasep,
-                                        struct Scene *evil_scene,
-                                        struct ListBase *markers,
+                                        ListBase *seqbasep,
+                                        Scene *evil_scene,
+                                        ListBase *markers,
                                         bool use_sync_markers);
 
-void SEQ_transform_handle_overlap(struct Scene *scene,
-                                  struct ListBase *seqbasep,
+void SEQ_transform_handle_overlap(Scene *scene,
+                                  ListBase *seqbasep,
                                   blender::Span<Sequence *> transformed_strips,
                                   blender::Span<Sequence *> time_dependent_strips,
                                   bool use_sync_markers);
-void SEQ_transform_handle_overlap(struct Scene *scene,
-                                  struct ListBase *seqbasep,
+void SEQ_transform_handle_overlap(Scene *scene,
+                                  ListBase *seqbasep,
                                   blender::Span<Sequence *> transformed_strips,
                                   bool use_sync_markers);
 /**
@@ -126,7 +124,7 @@ void SEQ_image_preview_unit_from_px(const Scene *scene, const float co_src[2], f
  * \param r_min: Minimum x and y values
  * \param r_max: Maximum x and y values
  */
-void SEQ_image_transform_bounding_box_from_collection(struct Scene *scene,
+void SEQ_image_transform_bounding_box_from_collection(Scene *scene,
                                                       blender::Span<Sequence *> strips,
                                                       bool apply_rotation,
                                                       float r_min[2],
diff --git a/source/blender/sequencer/intern/image_cache.hh b/source/blender/sequencer/intern/image_cache.hh
index ba93e13a4551df140994071ebb18da424989ddb5..1f7b5de46dd267a33250cde47d7c7b8bf5a3775d 100644
--- a/source/blender/sequencer/intern/image_cache.hh
+++ b/source/blender/sequencer/intern/image_cache.hh
@@ -13,16 +13,17 @@
 struct ImBuf;
 struct Main;
 struct Scene;
+struct SeqCache;
 struct SeqRenderData;
 struct Sequence;
 
 struct SeqCacheKey {
-  struct SeqCache *cache_owner;
+  SeqCache *cache_owner;
   void *userkey;
-  struct SeqCacheKey *link_prev; /* Used for linking intermediate items to final frame. */
-  struct SeqCacheKey *link_next; /* Used for linking intermediate items to final frame. */
-  struct Sequence *seq;
-  struct SeqRenderData context;
+  SeqCacheKey *link_prev; /* Used for linking intermediate items to final frame. */
+  SeqCacheKey *link_next; /* Used for linking intermediate items to final frame. */
+  Sequence *seq;
+  SeqRenderData context;
   float frame_index;    /* Usually same as timeline_frame. Mapped to media for RAW entries. */
   float timeline_frame; /* Only for reference - used for freeing when cache is full. */
   float cost;           /* In short: render time(s) divided by playback frame duration(s) */
diff --git a/source/blender/sequencer/intern/multiview.hh b/source/blender/sequencer/intern/multiview.hh
index 879bf773bc451f8e62a0711cbda47ad5f1c10f7d..da8055ee713dd1ea09a98b24d4413797ad53dc61 100644
--- a/source/blender/sequencer/intern/multiview.hh
+++ b/source/blender/sequencer/intern/multiview.hh
@@ -8,10 +8,6 @@
  * \ingroup sequencer
  */
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 struct Scene;
 
 /* **********************************************************************
@@ -21,18 +17,10 @@ struct Scene;
  * **********************************************************************
  */
 
-void seq_anim_add_suffix(struct Scene *scene, struct anim *anim, int view_id);
-void seq_multiview_name(struct Scene *scene,
-                        int view_id,
-                        const char *prefix,
-                        const char *ext,
-                        char *r_path,
-                        size_t r_size);
+void seq_anim_add_suffix(Scene *scene, anim *anim, int view_id);
+void seq_multiview_name(
+    Scene *scene, int view_id, const char *prefix, const char *ext, char *r_path, size_t r_size);
 /**
  * The number of files will vary according to the stereo format.
  */
-int seq_num_files(struct Scene *scene, char views_format, bool is_multiview);
-
-#ifdef __cplusplus
-}
-#endif
+int seq_num_files(Scene *scene, char views_format, bool is_multiview);
diff --git a/source/blender/windowmanager/WM_types.hh b/source/blender/windowmanager/WM_types.hh
index 33777aa709b0c4b63d2863a2c2a4fd638d58dd7a..c0ce3dcbca1c16c5a48b952d31f68017ccc96e23 100644
--- a/source/blender/windowmanager/WM_types.hh
+++ b/source/blender/windowmanager/WM_types.hh
@@ -131,7 +131,7 @@ class AssetRepresentation;
 }
 using AssetRepresentationHandle = blender::asset_system::AssetRepresentation;
 
-typedef void (*wmGenericUserDataFreeFn)(void *data);
+using wmGenericUserDataFreeFn = void (*)(void *data);
 
 struct wmGenericUserData {
   void *data;
@@ -919,17 +919,17 @@ struct wmTimer {
   bool sleep;
 };
 
-typedef enum wmWarningSize {
+enum wmWarningSize {
   WM_WARNING_SIZE_SMALL = 0,
   WM_WARNING_SIZE_LARGE,
-} wmWarningSize;
+};
 
-typedef enum wmWarningPosition {
+enum wmWarningPosition {
   WM_WARNING_POSITION_MOUSE = 0,
   WM_WARNING_POSITION_CENTER,
-} wmWarningPosition;
+};
 
-typedef struct wmWarningDetails {
+struct wmWarningDetails {
   char title[1024];
   char message[1024];
   char message2[1024];
@@ -942,7 +942,7 @@ typedef struct wmWarningDetails {
   bool cancel_default;
   bool mouse_move_quit;
   bool red_alert;
-} wmWarningDetails;
+};
 
 /**
  * Communication/status data owned by the wmJob, and passed to the worker code when calling
@@ -1074,7 +1074,7 @@ struct wmOperatorType {
   /**
    * If using WM_operator_confirm the following can override all parts of the dialog.
    */
-  void (*warning)(struct bContext *C, struct wmOperator *, wmWarningDetails *warning);
+  void (*warning)(bContext *C, wmOperator *, wmWarningDetails *warning);
 
   /** RNA for properties */
   StructRNA *srna;
diff --git a/source/blender/windowmanager/gizmo/WM_gizmo_api.hh b/source/blender/windowmanager/gizmo/WM_gizmo_api.hh
index 075dca759f53e130c36adf8488cef95601858ae6..e8663399806e73f6f6ad6083f7def823ce1540fc 100644
--- a/source/blender/windowmanager/gizmo/WM_gizmo_api.hh
+++ b/source/blender/windowmanager/gizmo/WM_gizmo_api.hh
@@ -39,38 +39,31 @@ struct wmWindowManager;
 /* -------------------------------------------------------------------- */
 /* wmGizmo */
 
-struct wmGizmo *WM_gizmo_new_ptr(const struct wmGizmoType *gzt,
-                                 struct wmGizmoGroup *gzgroup,
-                                 struct PointerRNA *properties);
+wmGizmo *WM_gizmo_new_ptr(const wmGizmoType *gzt, wmGizmoGroup *gzgroup, PointerRNA *properties);
 /**
  * \param idname: Must be a valid gizmo type name,
  * if you need to check it exists use #WM_gizmo_new_ptr
  * because callers of this function don't NULL check the return value.
  */
-struct wmGizmo *WM_gizmo_new(const char *idname,
-                             struct wmGizmoGroup *gzgroup,
-                             struct PointerRNA *properties);
+wmGizmo *WM_gizmo_new(const char *idname, wmGizmoGroup *gzgroup, PointerRNA *properties);
 /**
  * \warning this doesn't check #wmGizmoMap (highlight, selection etc).
  * Typical use is when freeing the windowing data,
  * where caller can manage clearing selection, highlight... etc.
  */
-void WM_gizmo_free(struct wmGizmo *gz);
+void WM_gizmo_free(wmGizmo *gz);
 /**
  * Free \a gizmo and unlink from \a gizmolist.
  * \a gizmolist is allowed to be NULL.
  */
-void WM_gizmo_unlink(ListBase *gizmolist,
-                     struct wmGizmoMap *gzmap,
-                     struct wmGizmo *gz,
-                     struct bContext *C);
+void WM_gizmo_unlink(ListBase *gizmolist, wmGizmoMap *gzmap, wmGizmo *gz, bContext *C);
 
 /**
  * Remove from selection array without running callbacks.
  */
-bool WM_gizmo_select_unlink(struct wmGizmoMap *gzmap, struct wmGizmo *gz);
-bool WM_gizmo_select_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz, bool select);
-bool WM_gizmo_highlight_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz);
+bool WM_gizmo_select_unlink(wmGizmoMap *gzmap, wmGizmo *gz);
+bool WM_gizmo_select_set(wmGizmoMap *gzmap, wmGizmo *gz, bool select);
+bool WM_gizmo_highlight_set(wmGizmoMap *gzmap, wmGizmo *gz);
 
 /**
  * Special function to run from setup so gizmos start out interactive.
@@ -78,68 +71,62 @@ bool WM_gizmo_highlight_set(struct wmGizmoMap *gzmap, struct wmGizmo *gz);
  * We could do this when linking them,
  * but this complicates things since the window update code needs to run first.
  */
-void WM_gizmo_modal_set_from_setup(struct wmGizmoMap *gzmap,
-                                   struct bContext *C,
-                                   struct wmGizmo *gz,
-                                   int part_index,
-                                   const struct wmEvent *event);
+void WM_gizmo_modal_set_from_setup(
+    wmGizmoMap *gzmap, bContext *C, wmGizmo *gz, int part_index, const wmEvent *event);
 
 /**
  * Replaces the current gizmo modal.
  * The substitute gizmo start out interactive.
  * It is similar to #WM_gizmo_modal_set_from_setup but without operator initialization.
  */
-void WM_gizmo_modal_set_while_modal(struct wmGizmoMap *gzmap,
-                                    struct bContext *C,
-                                    struct wmGizmo *gz,
-                                    const struct wmEvent *event);
-
-struct wmGizmoOpElem *WM_gizmo_operator_get(struct wmGizmo *gz, int part_index);
-struct PointerRNA *WM_gizmo_operator_set(struct wmGizmo *gz,
-                                         int part_index,
-                                         struct wmOperatorType *ot,
-                                         struct IDProperty *properties);
-int WM_gizmo_operator_invoke(struct bContext *C,
-                             struct wmGizmo *gz,
-                             struct wmGizmoOpElem *gzop,
-                             const struct wmEvent *event);
+void WM_gizmo_modal_set_while_modal(wmGizmoMap *gzmap,
+                                    bContext *C,
+                                    wmGizmo *gz,
+                                    const wmEvent *event);
+
+wmGizmoOpElem *WM_gizmo_operator_get(wmGizmo *gz, int part_index);
+PointerRNA *WM_gizmo_operator_set(wmGizmo *gz,
+                                  int part_index,
+                                  wmOperatorType *ot,
+                                  IDProperty *properties);
+int WM_gizmo_operator_invoke(bContext *C, wmGizmo *gz, wmGizmoOpElem *gzop, const wmEvent *event);
 
 /* Callbacks. */
 
-void WM_gizmo_set_fn_custom_modal(struct wmGizmo *gz, wmGizmoFnModal fn);
+void WM_gizmo_set_fn_custom_modal(wmGizmo *gz, wmGizmoFnModal fn);
 
-void WM_gizmo_set_matrix_location(struct wmGizmo *gz, const float origin[3]);
+void WM_gizmo_set_matrix_location(wmGizmo *gz, const float origin[3]);
 /**
  * #wmGizmo.matrix utility, set the orientation by its Z axis.
  */
-void WM_gizmo_set_matrix_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3]);
+void WM_gizmo_set_matrix_rotation_from_z_axis(wmGizmo *gz, const float z_axis[3]);
 /**
  * #wmGizmo.matrix utility, set the orientation by its Y/Z axis.
  */
-void WM_gizmo_set_matrix_rotation_from_yz_axis(struct wmGizmo *gz,
+void WM_gizmo_set_matrix_rotation_from_yz_axis(wmGizmo *gz,
                                                const float y_axis[3],
                                                const float z_axis[3]);
 
-void WM_gizmo_set_matrix_offset_location(struct wmGizmo *gz, const float offset[3]);
+void WM_gizmo_set_matrix_offset_location(wmGizmo *gz, const float offset[3]);
 /**
  * #wmGizmo.matrix_offset utility, set the orientation by its Z axis.
  */
-void WM_gizmo_set_matrix_offset_rotation_from_z_axis(struct wmGizmo *gz, const float z_axis[3]);
+void WM_gizmo_set_matrix_offset_rotation_from_z_axis(wmGizmo *gz, const float z_axis[3]);
 /**
  * #wmGizmo.matrix_offset utility, set the orientation by its Y/Z axis.
  */
-void WM_gizmo_set_matrix_offset_rotation_from_yz_axis(struct wmGizmo *gz,
+void WM_gizmo_set_matrix_offset_rotation_from_yz_axis(wmGizmo *gz,
                                                       const float y_axis[3],
                                                       const float z_axis[3]);
 
-void WM_gizmo_set_flag(struct wmGizmo *gz, int flag, bool enable);
-void WM_gizmo_set_scale(struct wmGizmo *gz, float scale);
-void WM_gizmo_set_line_width(struct wmGizmo *gz, float line_width);
+void WM_gizmo_set_flag(wmGizmo *gz, int flag, bool enable);
+void WM_gizmo_set_scale(wmGizmo *gz, float scale);
+void WM_gizmo_set_line_width(wmGizmo *gz, float line_width);
 
-void WM_gizmo_get_color(const struct wmGizmo *gz, float color[4]);
-void WM_gizmo_set_color(struct wmGizmo *gz, const float color[4]);
-void WM_gizmo_get_color_highlight(const struct wmGizmo *gz, float color_hi[4]);
-void WM_gizmo_set_color_highlight(struct wmGizmo *gz, const float color[4]);
+void WM_gizmo_get_color(const wmGizmo *gz, float color[4]);
+void WM_gizmo_set_color(wmGizmo *gz, const float color[4]);
+void WM_gizmo_get_color_highlight(const wmGizmo *gz, float color_hi[4]);
+void WM_gizmo_set_color_highlight(wmGizmo *gz, const float color[4]);
 
 /**
  * Leaving values NULL use values from #wmGizmo.
@@ -151,25 +138,23 @@ struct WM_GizmoMatrixParams {
   const float *scale_final;
 };
 
-void WM_gizmo_calc_matrix_final_params(const struct wmGizmo *gz,
-                                       const struct WM_GizmoMatrixParams *params,
+void WM_gizmo_calc_matrix_final_params(const wmGizmo *gz,
+                                       const WM_GizmoMatrixParams *params,
                                        float r_mat[4][4]);
-void WM_gizmo_calc_matrix_final_no_offset(const struct wmGizmo *gz, float r_mat[4][4]);
+void WM_gizmo_calc_matrix_final_no_offset(const wmGizmo *gz, float r_mat[4][4]);
 
-void WM_gizmo_calc_matrix_final(const struct wmGizmo *gz, float r_mat[4][4]);
+void WM_gizmo_calc_matrix_final(const wmGizmo *gz, float r_mat[4][4]);
 
 /* Properties. */
 
-void WM_gizmo_properties_create_ptr(struct PointerRNA *ptr, struct wmGizmoType *gzt);
-void WM_gizmo_properties_create(struct PointerRNA *ptr, const char *gtstring);
+void WM_gizmo_properties_create_ptr(PointerRNA *ptr, wmGizmoType *gzt);
+void WM_gizmo_properties_create(PointerRNA *ptr, const char *gtstring);
 /**
  * Similar to #WM_gizmo_properties_create
  * except its uses ID properties used for key-maps and macros.
  */
-void WM_gizmo_properties_alloc(struct PointerRNA **ptr,
-                               struct IDProperty **properties,
-                               const char *gtstring);
-void WM_gizmo_properties_sanitize(struct PointerRNA *ptr, bool no_context);
+void WM_gizmo_properties_alloc(PointerRNA **ptr, IDProperty **properties, const char *gtstring);
+void WM_gizmo_properties_sanitize(PointerRNA *ptr, bool no_context);
 /**
  * Set all props to their default.
  *
@@ -178,178 +163,165 @@ void WM_gizmo_properties_sanitize(struct PointerRNA *ptr, bool no_context);
  * \note There's nothing specific to gizmos here.
  * This could be made a general function.
  */
-bool WM_gizmo_properties_default(struct PointerRNA *ptr, bool do_update);
+bool WM_gizmo_properties_default(PointerRNA *ptr, bool do_update);
 /**
  * Remove all props without #PROP_SKIP_SAVE.
  */
-void WM_gizmo_properties_reset(struct wmGizmo *gz);
-void WM_gizmo_properties_clear(struct PointerRNA *ptr);
-void WM_gizmo_properties_free(struct PointerRNA *ptr);
+void WM_gizmo_properties_reset(wmGizmo *gz);
+void WM_gizmo_properties_clear(PointerRNA *ptr);
+void WM_gizmo_properties_free(PointerRNA *ptr);
 
 /* `wm_gizmo_type.cc` */
 
-const struct wmGizmoType *WM_gizmotype_find(const char *idname, bool quiet);
-void WM_gizmotype_append(void (*gtfunc)(struct wmGizmoType *));
-void WM_gizmotype_append_ptr(void (*gtfunc)(struct wmGizmoType *, void *), void *userdata);
-bool WM_gizmotype_remove(struct bContext *C, struct Main *bmain, const char *idname);
-void WM_gizmotype_remove_ptr(struct bContext *C, struct Main *bmain, struct wmGizmoType *gzt);
+const wmGizmoType *WM_gizmotype_find(const char *idname, bool quiet);
+void WM_gizmotype_append(void (*gtfunc)(wmGizmoType *));
+void WM_gizmotype_append_ptr(void (*gtfunc)(wmGizmoType *, void *), void *userdata);
+bool WM_gizmotype_remove(bContext *C, Main *bmain, const char *idname);
+void WM_gizmotype_remove_ptr(bContext *C, Main *bmain, wmGizmoType *gzt);
 /**
  * Free but don't remove from #GHash.
  */
-void WM_gizmotype_free_ptr(struct wmGizmoType *gzt);
+void WM_gizmotype_free_ptr(wmGizmoType *gzt);
 /**
  * Caller must free.
  */
-void WM_gizmotype_iter(struct GHashIterator *ghi);
+void WM_gizmotype_iter(GHashIterator *ghi);
 
 /* `wm_gizmo_group_type.cc` */
 
-struct wmGizmoGroupType *WM_gizmogrouptype_find(const char *idname, bool quiet);
-struct wmGizmoGroupType *WM_gizmogrouptype_append(void (*wtfunc)(struct wmGizmoGroupType *));
-struct wmGizmoGroupType *WM_gizmogrouptype_append_ptr(void (*wtfunc)(struct wmGizmoGroupType *,
-                                                                     void *),
-                                                      void *userdata);
+wmGizmoGroupType *WM_gizmogrouptype_find(const char *idname, bool quiet);
+wmGizmoGroupType *WM_gizmogrouptype_append(void (*wtfunc)(wmGizmoGroupType *));
+wmGizmoGroupType *WM_gizmogrouptype_append_ptr(void (*wtfunc)(wmGizmoGroupType *, void *),
+                                               void *userdata);
 /**
  * Caller must free.
  */
-void WM_gizmogrouptype_iter(struct GHashIterator *ghi);
+void WM_gizmogrouptype_iter(GHashIterator *ghi);
 
 /**
  * Append and insert into a gizmo type-map.
  * This is most common for C gizmos which are enabled by default.
  */
-struct wmGizmoGroupTypeRef *WM_gizmogrouptype_append_and_link(
-    struct wmGizmoMapType *gzmap_type, void (*wtfunc)(struct wmGizmoGroupType *));
+wmGizmoGroupTypeRef *WM_gizmogrouptype_append_and_link(wmGizmoMapType *gzmap_type,
+                                                       void (*wtfunc)(wmGizmoGroupType *));
 
 /* `wm_gizmo_map.cc` */
 
 /* Dynamic Updates (for RNA runtime registration) */
-void WM_gizmoconfig_update_tag_group_type_init(struct wmGizmoMapType *gzmap_type,
-                                               struct wmGizmoGroupType *gzgt);
-void WM_gizmoconfig_update_tag_group_type_remove(struct wmGizmoMapType *gzmap_type,
-                                                 struct wmGizmoGroupType *gzgt);
+void WM_gizmoconfig_update_tag_group_type_init(wmGizmoMapType *gzmap_type, wmGizmoGroupType *gzgt);
+void WM_gizmoconfig_update_tag_group_type_remove(wmGizmoMapType *gzmap_type,
+                                                 wmGizmoGroupType *gzgt);
 /**
  * Run in case new types have been added (runs often, early exit where possible).
  * Follows #WM_keyconfig_update conventions.
  */
-void WM_gizmoconfig_update(struct Main *bmain);
+void WM_gizmoconfig_update(Main *bmain);
 
-void WM_gizmoconfig_update_tag_group_remove(struct wmGizmoMap *gzmap);
+void WM_gizmoconfig_update_tag_group_remove(wmGizmoMap *gzmap);
 
 /* wm_maniulator_target_props.c */
 
-struct wmGizmoProperty *WM_gizmo_target_property_array(struct wmGizmo *gz);
-struct wmGizmoProperty *WM_gizmo_target_property_at_index(struct wmGizmo *gz, int index);
-struct wmGizmoProperty *WM_gizmo_target_property_find(struct wmGizmo *gz, const char *idname);
+wmGizmoProperty *WM_gizmo_target_property_array(wmGizmo *gz);
+wmGizmoProperty *WM_gizmo_target_property_at_index(wmGizmo *gz, int index);
+wmGizmoProperty *WM_gizmo_target_property_find(wmGizmo *gz, const char *idname);
 
-void WM_gizmo_target_property_def_rna_ptr(struct wmGizmo *gz,
-                                          const struct wmGizmoPropertyType *gz_prop_type,
-                                          struct PointerRNA *ptr,
-                                          struct PropertyRNA *prop,
+void WM_gizmo_target_property_def_rna_ptr(wmGizmo *gz,
+                                          const wmGizmoPropertyType *gz_prop_type,
+                                          PointerRNA *ptr,
+                                          PropertyRNA *prop,
                                           int index);
-void WM_gizmo_target_property_def_rna(struct wmGizmo *gz,
-                                      const char *idname,
-                                      struct PointerRNA *ptr,
-                                      const char *propname,
-                                      int index);
-
-void WM_gizmo_target_property_def_func_ptr(struct wmGizmo *gz,
-                                           const struct wmGizmoPropertyType *gz_prop_type,
-                                           const struct wmGizmoPropertyFnParams *params);
-void WM_gizmo_target_property_def_func(struct wmGizmo *gz,
+void WM_gizmo_target_property_def_rna(
+    wmGizmo *gz, const char *idname, PointerRNA *ptr, const char *propname, int index);
+
+void WM_gizmo_target_property_def_func_ptr(wmGizmo *gz,
+                                           const wmGizmoPropertyType *gz_prop_type,
+                                           const wmGizmoPropertyFnParams *params);
+void WM_gizmo_target_property_def_func(wmGizmo *gz,
                                        const char *idname,
-                                       const struct wmGizmoPropertyFnParams *params);
-
-void WM_gizmo_target_property_clear_rna_ptr(struct wmGizmo *gz,
-                                            const struct wmGizmoPropertyType *gz_prop_type);
-void WM_gizmo_target_property_clear_rna(struct wmGizmo *gz, const char *idname);
-
-bool WM_gizmo_target_property_is_valid_any(struct wmGizmo *gz);
-bool WM_gizmo_target_property_is_valid(const struct wmGizmoProperty *gz_prop);
-float WM_gizmo_target_property_float_get(const struct wmGizmo *gz,
-                                         struct wmGizmoProperty *gz_prop);
-void WM_gizmo_target_property_float_set(struct bContext *C,
-                                        const struct wmGizmo *gz,
-                                        struct wmGizmoProperty *gz_prop,
+                                       const wmGizmoPropertyFnParams *params);
+
+void WM_gizmo_target_property_clear_rna_ptr(wmGizmo *gz, const wmGizmoPropertyType *gz_prop_type);
+void WM_gizmo_target_property_clear_rna(wmGizmo *gz, const char *idname);
+
+bool WM_gizmo_target_property_is_valid_any(wmGizmo *gz);
+bool WM_gizmo_target_property_is_valid(const wmGizmoProperty *gz_prop);
+float WM_gizmo_target_property_float_get(const wmGizmo *gz, wmGizmoProperty *gz_prop);
+void WM_gizmo_target_property_float_set(bContext *C,
+                                        const wmGizmo *gz,
+                                        wmGizmoProperty *gz_prop,
                                         float value);
 
-void WM_gizmo_target_property_float_get_array(const struct wmGizmo *gz,
-                                              struct wmGizmoProperty *gz_prop,
+void WM_gizmo_target_property_float_get_array(const wmGizmo *gz,
+                                              wmGizmoProperty *gz_prop,
                                               float *value);
-void WM_gizmo_target_property_float_set_array(struct bContext *C,
-                                              const struct wmGizmo *gz,
-                                              struct wmGizmoProperty *gz_prop,
+void WM_gizmo_target_property_float_set_array(bContext *C,
+                                              const wmGizmo *gz,
+                                              wmGizmoProperty *gz_prop,
                                               const float *value);
 
-bool WM_gizmo_target_property_float_range_get(const struct wmGizmo *gz,
-                                              struct wmGizmoProperty *gz_prop,
+bool WM_gizmo_target_property_float_range_get(const wmGizmo *gz,
+                                              wmGizmoProperty *gz_prop,
                                               float range[2]);
 
-int WM_gizmo_target_property_array_length(const struct wmGizmo *gz,
-                                          struct wmGizmoProperty *gz_prop);
+int WM_gizmo_target_property_array_length(const wmGizmo *gz, wmGizmoProperty *gz_prop);
 
 /* Definitions. */
 
-const struct wmGizmoPropertyType *WM_gizmotype_target_property_find(const struct wmGizmoType *gzt,
-                                                                    const char *idname);
-void WM_gizmotype_target_property_def(struct wmGizmoType *gzt,
+const wmGizmoPropertyType *WM_gizmotype_target_property_find(const wmGizmoType *gzt,
+                                                             const char *idname);
+void WM_gizmotype_target_property_def(wmGizmoType *gzt,
                                       const char *idname,
                                       int data_type,
                                       int array_length);
 
 /* Utilities. */
 
-void WM_gizmo_do_msg_notify_tag_refresh(struct bContext *C,
-                                        struct wmMsgSubscribeKey *msg_key,
-                                        struct wmMsgSubscribeValue *msg_val);
+void WM_gizmo_do_msg_notify_tag_refresh(bContext *C,
+                                        wmMsgSubscribeKey *msg_key,
+                                        wmMsgSubscribeValue *msg_val);
 /**
  * Runs on the "prepare draw" pass, drawing the region clears.
  */
-void WM_gizmo_target_property_subscribe_all(struct wmGizmo *gz,
-                                            struct wmMsgBus *mbus,
-                                            struct ARegion *region);
+void WM_gizmo_target_property_subscribe_all(wmGizmo *gz, wmMsgBus *mbus, ARegion *region);
 
 /**
  * Auto-key function if auto-key is enabled.
  */
-void WM_gizmo_target_property_anim_autokey(struct bContext *C,
-                                           const struct wmGizmo *gz,
-                                           struct wmGizmoProperty *gz_prop);
+void WM_gizmo_target_property_anim_autokey(bContext *C,
+                                           const wmGizmo *gz,
+                                           wmGizmoProperty *gz_prop);
 
 /* -------------------------------------------------------------------- */
 /* wmGizmoGroup */
 
 /* Callbacks for 'wmGizmoGroupType.setup_keymap' */
-struct wmKeyMap *WM_gizmogroup_setup_keymap_generic(const struct wmGizmoGroupType *gzgt,
-                                                    struct wmKeyConfig *kc);
-struct wmKeyMap *WM_gizmogroup_setup_keymap_generic_select(const struct wmGizmoGroupType *gzgt,
-                                                           struct wmKeyConfig *kc);
-struct wmKeyMap *WM_gizmogroup_setup_keymap_generic_drag(const struct wmGizmoGroupType *gzgt,
-                                                         struct wmKeyConfig *kc);
-struct wmKeyMap *WM_gizmogroup_setup_keymap_generic_maybe_drag(const struct wmGizmoGroupType *gzgt,
-                                                               struct wmKeyConfig *kc);
+wmKeyMap *WM_gizmogroup_setup_keymap_generic(const wmGizmoGroupType *gzgt, wmKeyConfig *kc);
+wmKeyMap *WM_gizmogroup_setup_keymap_generic_select(const wmGizmoGroupType *gzgt, wmKeyConfig *kc);
+wmKeyMap *WM_gizmogroup_setup_keymap_generic_drag(const wmGizmoGroupType *gzgt, wmKeyConfig *kc);
+wmKeyMap *WM_gizmogroup_setup_keymap_generic_maybe_drag(const wmGizmoGroupType *gzgt,
+                                                        wmKeyConfig *kc);
 
 /* Utility functions (not callbacks). */
 
-struct wmKeyMap *WM_gizmo_keymap_generic_with_keyconfig(struct wmKeyConfig *kc);
-struct wmKeyMap *WM_gizmo_keymap_generic(struct wmWindowManager *wm);
+wmKeyMap *WM_gizmo_keymap_generic_with_keyconfig(wmKeyConfig *kc);
+wmKeyMap *WM_gizmo_keymap_generic(wmWindowManager *wm);
 
-struct wmKeyMap *WM_gizmo_keymap_generic_select_with_keyconfig(struct wmKeyConfig *kc);
-struct wmKeyMap *WM_gizmo_keymap_generic_select(struct wmWindowManager *wm);
+wmKeyMap *WM_gizmo_keymap_generic_select_with_keyconfig(wmKeyConfig *kc);
+wmKeyMap *WM_gizmo_keymap_generic_select(wmWindowManager *wm);
 
-struct wmKeyMap *WM_gizmo_keymap_generic_drag_with_keyconfig(struct wmKeyConfig *kc);
-struct wmKeyMap *WM_gizmo_keymap_generic_drag(struct wmWindowManager *wm);
+wmKeyMap *WM_gizmo_keymap_generic_drag_with_keyconfig(wmKeyConfig *kc);
+wmKeyMap *WM_gizmo_keymap_generic_drag(wmWindowManager *wm);
 
-struct wmKeyMap *WM_gizmo_keymap_generic_click_drag_with_keyconfig(struct wmKeyConfig *kc);
-struct wmKeyMap *WM_gizmo_keymap_generic_click_drag(struct wmWindowManager *wm);
+wmKeyMap *WM_gizmo_keymap_generic_click_drag_with_keyconfig(wmKeyConfig *kc);
+wmKeyMap *WM_gizmo_keymap_generic_click_drag(wmWindowManager *wm);
 
 /**
  * Drag or press depending on preference.
  */
-struct wmKeyMap *WM_gizmo_keymap_generic_maybe_drag_with_keyconfig(struct wmKeyConfig *kc);
-struct wmKeyMap *WM_gizmo_keymap_generic_maybe_drag(struct wmWindowManager *wm);
+wmKeyMap *WM_gizmo_keymap_generic_maybe_drag_with_keyconfig(wmKeyConfig *kc);
+wmKeyMap *WM_gizmo_keymap_generic_maybe_drag(wmWindowManager *wm);
 
-void WM_gizmogroup_ensure_init(const struct bContext *C, struct wmGizmoGroup *gzgroup);
+void WM_gizmogroup_ensure_init(const bContext *C, wmGizmoGroup *gzgroup);
 
 /* Sort utilities for use with 'BLI_listbase_sort'. */
 
@@ -362,125 +334,110 @@ int WM_gizmo_cmp_temp_fl_reverse(const void *gz_a_ptr, const void *gz_b_ptr);
 /**
  * Creates a gizmo-map with all registered gizmos for that type
  */
-struct wmGizmoMap *WM_gizmomap_new_from_type(const struct wmGizmoMapType_Params *gzmap_params);
+wmGizmoMap *WM_gizmomap_new_from_type(const wmGizmoMapType_Params *gzmap_params);
 /**
  * Re-create the gizmos (use when changing theme settings).
  */
-void WM_gizmomap_reinit(struct wmGizmoMap *gzmap);
-const struct ListBase *WM_gizmomap_group_list(struct wmGizmoMap *gzmap);
-struct wmGizmoGroup *WM_gizmomap_group_find(struct wmGizmoMap *gzmap, const char *idname);
-struct wmGizmoGroup *WM_gizmomap_group_find_ptr(struct wmGizmoMap *gzmap,
-                                                const struct wmGizmoGroupType *gzgt);
-
-eWM_GizmoFlagMapDrawStep WM_gizmomap_drawstep_from_gizmo_group(const struct wmGizmoGroup *gzgroup);
-void WM_gizmomap_tag_refresh_drawstep(struct wmGizmoMap *gzmap, eWM_GizmoFlagMapDrawStep drawstep);
-void WM_gizmomap_tag_refresh(struct wmGizmoMap *gzmap);
-
-bool WM_gizmomap_tag_delay_refresh_for_tweak_check(struct wmGizmoMap *gzmap);
-
-void WM_gizmomap_draw(struct wmGizmoMap *gzmap,
-                      const struct bContext *C,
-                      eWM_GizmoFlagMapDrawStep drawstep);
-void WM_gizmomap_add_handlers(struct ARegion *region, struct wmGizmoMap *gzmap);
+void WM_gizmomap_reinit(wmGizmoMap *gzmap);
+const ListBase *WM_gizmomap_group_list(wmGizmoMap *gzmap);
+wmGizmoGroup *WM_gizmomap_group_find(wmGizmoMap *gzmap, const char *idname);
+wmGizmoGroup *WM_gizmomap_group_find_ptr(wmGizmoMap *gzmap, const wmGizmoGroupType *gzgt);
+
+eWM_GizmoFlagMapDrawStep WM_gizmomap_drawstep_from_gizmo_group(const wmGizmoGroup *gzgroup);
+void WM_gizmomap_tag_refresh_drawstep(wmGizmoMap *gzmap, eWM_GizmoFlagMapDrawStep drawstep);
+void WM_gizmomap_tag_refresh(wmGizmoMap *gzmap);
+
+bool WM_gizmomap_tag_delay_refresh_for_tweak_check(wmGizmoMap *gzmap);
+
+void WM_gizmomap_draw(wmGizmoMap *gzmap, const bContext *C, eWM_GizmoFlagMapDrawStep drawstep);
+void WM_gizmomap_add_handlers(ARegion *region, wmGizmoMap *gzmap);
 /**
  * Select/Deselect all selectable gizmos in \a gzmap.
  * \return if selection has changed.
  *
  * TODO: select all by type.
  */
-bool WM_gizmomap_select_all(struct bContext *C, struct wmGizmoMap *gzmap, int action);
-bool WM_gizmomap_cursor_set(const struct wmGizmoMap *gzmap, struct wmWindow *win);
-void WM_gizmomap_message_subscribe(const struct bContext *C,
-                                   struct wmGizmoMap *gzmap,
-                                   struct ARegion *region,
-                                   struct wmMsgBus *mbus);
-bool WM_gizmomap_is_any_selected(const struct wmGizmoMap *gzmap);
-struct wmGizmo *WM_gizmomap_get_modal(const struct wmGizmoMap *gzmap);
+bool WM_gizmomap_select_all(bContext *C, wmGizmoMap *gzmap, int action);
+bool WM_gizmomap_cursor_set(const wmGizmoMap *gzmap, wmWindow *win);
+void WM_gizmomap_message_subscribe(const bContext *C,
+                                   wmGizmoMap *gzmap,
+                                   ARegion *region,
+                                   wmMsgBus *mbus);
+bool WM_gizmomap_is_any_selected(const wmGizmoMap *gzmap);
+wmGizmo *WM_gizmomap_get_modal(const wmGizmoMap *gzmap);
 
 /**
  * \note We could use a callback to define bounds, for now just use matrix location.
  */
-bool WM_gizmomap_minmax(const struct wmGizmoMap *gzmap,
-                        bool use_hidden,
-                        bool use_select,
-                        float r_min[3],
-                        float r_max[3]);
-
-struct ARegion *WM_gizmomap_tooltip_init(struct bContext *C,
-                                         struct ARegion *region,
-                                         int *pass,
-                                         double *pass_delay,
-                                         bool *r_exit_on_event);
+bool WM_gizmomap_minmax(
+    const wmGizmoMap *gzmap, bool use_hidden, bool use_select, float r_min[3], float r_max[3]);
+
+ARegion *WM_gizmomap_tooltip_init(
+    bContext *C, ARegion *region, int *pass, double *pass_delay, bool *r_exit_on_event);
 
 /* -------------------------------------------------------------------- */
 /* wmGizmoMapType */
 
-struct wmGizmoMapType *WM_gizmomaptype_find(const struct wmGizmoMapType_Params *gzmap_params);
-struct wmGizmoMapType *WM_gizmomaptype_ensure(const struct wmGizmoMapType_Params *gzmap_params);
+wmGizmoMapType *WM_gizmomaptype_find(const wmGizmoMapType_Params *gzmap_params);
+wmGizmoMapType *WM_gizmomaptype_ensure(const wmGizmoMapType_Params *gzmap_params);
 
-struct wmGizmoGroupTypeRef *WM_gizmomaptype_group_find(struct wmGizmoMapType *gzmap_type,
-                                                       const char *idname);
-struct wmGizmoGroupTypeRef *WM_gizmomaptype_group_find_ptr(struct wmGizmoMapType *gzmap_type,
-                                                           const struct wmGizmoGroupType *gzgt);
+wmGizmoGroupTypeRef *WM_gizmomaptype_group_find(wmGizmoMapType *gzmap_type, const char *idname);
+wmGizmoGroupTypeRef *WM_gizmomaptype_group_find_ptr(wmGizmoMapType *gzmap_type,
+                                                    const wmGizmoGroupType *gzgt);
 /**
  * Use this for registering gizmos on startup.
  * For runtime, use #WM_gizmomaptype_group_link_runtime.
  */
-struct wmGizmoGroupTypeRef *WM_gizmomaptype_group_link(struct wmGizmoMapType *gzmap_type,
-                                                       const char *idname);
-struct wmGizmoGroupTypeRef *WM_gizmomaptype_group_link_ptr(struct wmGizmoMapType *gzmap_type,
-                                                           struct wmGizmoGroupType *gzgt);
-
-void WM_gizmomaptype_group_init_runtime_keymap(const struct Main *bmain,
-                                               struct wmGizmoGroupType *gzgt);
-void WM_gizmomaptype_group_init_runtime(const struct Main *bmain,
-                                        struct wmGizmoMapType *gzmap_type,
-                                        struct wmGizmoGroupType *gzgt);
-wmGizmoGroup *WM_gizmomaptype_group_init_runtime_with_region(struct wmGizmoMapType *gzmap_type,
-                                                             struct wmGizmoGroupType *gzgt,
-                                                             struct ARegion *region);
-void WM_gizmomaptype_group_unlink(struct bContext *C,
-                                  struct Main *bmain,
-                                  struct wmGizmoMapType *gzmap_type,
-                                  const struct wmGizmoGroupType *gzgt);
+wmGizmoGroupTypeRef *WM_gizmomaptype_group_link(wmGizmoMapType *gzmap_type, const char *idname);
+wmGizmoGroupTypeRef *WM_gizmomaptype_group_link_ptr(wmGizmoMapType *gzmap_type,
+                                                    wmGizmoGroupType *gzgt);
+
+void WM_gizmomaptype_group_init_runtime_keymap(const Main *bmain, wmGizmoGroupType *gzgt);
+void WM_gizmomaptype_group_init_runtime(const Main *bmain,
+                                        wmGizmoMapType *gzmap_type,
+                                        wmGizmoGroupType *gzgt);
+wmGizmoGroup *WM_gizmomaptype_group_init_runtime_with_region(wmGizmoMapType *gzmap_type,
+                                                             wmGizmoGroupType *gzgt,
+                                                             ARegion *region);
+void WM_gizmomaptype_group_unlink(bContext *C,
+                                  Main *bmain,
+                                  wmGizmoMapType *gzmap_type,
+                                  const wmGizmoGroupType *gzgt);
 
 /**
  * Unlike #WM_gizmomaptype_group_unlink this doesn't maintain correct state, simply free.
  */
-void WM_gizmomaptype_group_free(struct wmGizmoGroupTypeRef *gzgt);
+void WM_gizmomaptype_group_free(wmGizmoGroupTypeRef *gzgt);
 
 /* -------------------------------------------------------------------- */
 /* GizmoGroup */
 
 /* Add/Ensure/Remove (High level API) */
 
-void WM_gizmo_group_type_add_ptr_ex(struct wmGizmoGroupType *gzgt,
-                                    struct wmGizmoMapType *gzmap_type);
-void WM_gizmo_group_type_add_ptr(struct wmGizmoGroupType *gzgt);
+void WM_gizmo_group_type_add_ptr_ex(wmGizmoGroupType *gzgt, wmGizmoMapType *gzmap_type);
+void WM_gizmo_group_type_add_ptr(wmGizmoGroupType *gzgt);
 void WM_gizmo_group_type_add(const char *idname);
 
-bool WM_gizmo_group_type_ensure_ptr_ex(struct wmGizmoGroupType *gzgt,
-                                       struct wmGizmoMapType *gzmap_type);
-bool WM_gizmo_group_type_ensure_ptr(struct wmGizmoGroupType *gzgt);
+bool WM_gizmo_group_type_ensure_ptr_ex(wmGizmoGroupType *gzgt, wmGizmoMapType *gzmap_type);
+bool WM_gizmo_group_type_ensure_ptr(wmGizmoGroupType *gzgt);
 bool WM_gizmo_group_type_ensure(const char *idname);
 
 /**
  * Call #WM_gizmo_group_type_free_ptr after to remove & free.
  */
-void WM_gizmo_group_type_remove_ptr_ex(struct Main *bmain,
-                                       struct wmGizmoGroupType *gzgt,
-                                       struct wmGizmoMapType *gzmap_type);
-void WM_gizmo_group_type_remove_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt);
-void WM_gizmo_group_type_remove(struct Main *bmain, const char *idname);
-
-void WM_gizmo_group_type_unlink_delayed_ptr_ex(struct wmGizmoGroupType *gzgt,
-                                               struct wmGizmoMapType *gzmap_type);
-void WM_gizmo_group_type_unlink_delayed_ptr(struct wmGizmoGroupType *gzgt);
+void WM_gizmo_group_type_remove_ptr_ex(Main *bmain,
+                                       wmGizmoGroupType *gzgt,
+                                       wmGizmoMapType *gzmap_type);
+void WM_gizmo_group_type_remove_ptr(Main *bmain, wmGizmoGroupType *gzgt);
+void WM_gizmo_group_type_remove(Main *bmain, const char *idname);
+
+void WM_gizmo_group_type_unlink_delayed_ptr_ex(wmGizmoGroupType *gzgt, wmGizmoMapType *gzmap_type);
+void WM_gizmo_group_type_unlink_delayed_ptr(wmGizmoGroupType *gzgt);
 void WM_gizmo_group_type_unlink_delayed(const char *idname);
 
-void WM_gizmo_group_unlink_delayed_ptr_from_space(struct wmGizmoGroupType *gzgt,
-                                                  struct wmGizmoMapType *gzmap_type,
-                                                  struct ScrArea *area);
+void WM_gizmo_group_unlink_delayed_ptr_from_space(wmGizmoGroupType *gzgt,
+                                                  wmGizmoMapType *gzmap_type,
+                                                  ScrArea *area);
 
 void WM_gizmo_group_type_free_ptr(wmGizmoGroupType *gzgt);
 bool WM_gizmo_group_type_free(const char *idname);
@@ -488,24 +445,24 @@ bool WM_gizmo_group_type_free(const char *idname);
 /**
  * Has the result of unlinking and linking (re-initializes gizmo's).
  */
-void WM_gizmo_group_type_reinit_ptr_ex(struct Main *bmain,
-                                       struct wmGizmoGroupType *gzgt,
-                                       struct wmGizmoMapType *gzmap_type);
-void WM_gizmo_group_type_reinit_ptr(struct Main *bmain, struct wmGizmoGroupType *gzgt);
-void WM_gizmo_group_type_reinit(struct Main *bmain, const char *idname);
+void WM_gizmo_group_type_reinit_ptr_ex(Main *bmain,
+                                       wmGizmoGroupType *gzgt,
+                                       wmGizmoMapType *gzmap_type);
+void WM_gizmo_group_type_reinit_ptr(Main *bmain, wmGizmoGroupType *gzgt);
+void WM_gizmo_group_type_reinit(Main *bmain, const char *idname);
 
 /* Utilities */
 
-bool WM_gizmo_context_check_drawstep(const struct bContext *C, eWM_GizmoFlagMapDrawStep step);
+bool WM_gizmo_context_check_drawstep(const bContext *C, eWM_GizmoFlagMapDrawStep step);
 
-void WM_gizmo_group_remove_by_tool(struct bContext *C,
-                                   struct Main *bmain,
-                                   const struct wmGizmoGroupType *gzgt,
-                                   const struct bToolRef *tref);
+void WM_gizmo_group_remove_by_tool(bContext *C,
+                                   Main *bmain,
+                                   const wmGizmoGroupType *gzgt,
+                                   const bToolRef *tref);
 
-void WM_gizmo_group_tag_remove(struct wmGizmoGroup *gzgroup);
+void WM_gizmo_group_tag_remove(wmGizmoGroup *gzgroup);
 
 /* Wrap Group Type Callbacks. */
 
-bool WM_gizmo_group_type_poll(const struct bContext *C, const struct wmGizmoGroupType *gzgt);
-void WM_gizmo_group_refresh(const struct bContext *C, struct wmGizmoGroup *gzgroup);
+bool WM_gizmo_group_type_poll(const bContext *C, const wmGizmoGroupType *gzgt);
+void WM_gizmo_group_refresh(const bContext *C, wmGizmoGroup *gzgroup);
diff --git a/source/blender/windowmanager/gizmo/WM_gizmo_types.hh b/source/blender/windowmanager/gizmo/WM_gizmo_types.hh
index 48164c36ec761c736f4ea2f0fa9f2a35d173638b..7aa2bc3cb694089563b189dccad31c2a844b838e 100644
--- a/source/blender/windowmanager/gizmo/WM_gizmo_types.hh
+++ b/source/blender/windowmanager/gizmo/WM_gizmo_types.hh
@@ -19,11 +19,15 @@
 #include "DNA_listBase.h"
 
 struct wmGizmo;
+struct wmGizmoType;
 struct wmGizmoGroup;
 struct wmGizmoGroupType;
+struct wmGizmoMap;
 struct wmGizmoMapType;
 struct wmGizmoProperty;
+struct wmGizmoPropertyType;
 struct wmKeyConfig;
+struct wmOperatorType;
 
 /* -------------------------------------------------------------------- */
 /* Enum Typedef's */
@@ -31,20 +35,20 @@ struct wmKeyConfig;
 /**
  * #wmGizmo.state
  */
-typedef enum eWM_GizmoFlagState {
+enum eWM_GizmoFlagState {
   /** While hovered. */
   WM_GIZMO_STATE_HIGHLIGHT = (1 << 0),
   /** While dragging. */
   WM_GIZMO_STATE_MODAL = (1 << 1),
   WM_GIZMO_STATE_SELECT = (1 << 2),
-} eWM_GizmoFlagState;
+};
 ENUM_OPERATORS(eWM_GizmoFlagState, WM_GIZMO_STATE_SELECT)
 
 /**
  * #wmGizmo.flag
  * Flags for individual gizmos.
  */
-typedef enum eWM_GizmoFlag {
+enum eWM_GizmoFlag {
   /** Draw *only* while hovering. */
   WM_GIZMO_DRAW_HOVER = (1 << 0),
   /** Draw while dragging. */
@@ -80,7 +84,7 @@ typedef enum eWM_GizmoFlag {
 
   /** Don't use tool-tips for this gizmo (can be distracting). */
   WM_GIZMO_NO_TOOLTIP = (1 << 12),
-} eWM_GizmoFlag;
+};
 
 ENUM_OPERATORS(eWM_GizmoFlag, WM_GIZMO_NO_TOOLTIP);
 
@@ -88,7 +92,7 @@ ENUM_OPERATORS(eWM_GizmoFlag, WM_GIZMO_NO_TOOLTIP);
  * #wmGizmoGroupType.flag
  * Flags that influence the behavior of all gizmos in the group.
  */
-typedef enum eWM_GizmoFlagGroupTypeFlag {
+enum eWM_GizmoFlagGroupTypeFlag {
   /** Mark gizmo-group as being 3D */
   WM_GIZMOGROUPTYPE_3D = (1 << 0),
   /** Scale gizmos as 3D object that respects zoom (otherwise zoom independent draw size).
@@ -146,25 +150,25 @@ typedef enum eWM_GizmoFlagGroupTypeFlag {
    * however for VR it's sometimes needed.
    */
   WM_GIZMOGROUPTYPE_VR_REDRAWS = (1 << 10),
-} eWM_GizmoFlagGroupTypeFlag;
+};
 
 ENUM_OPERATORS(eWM_GizmoFlagGroupTypeFlag, WM_GIZMOGROUPTYPE_VR_REDRAWS);
 
 /**
  * #wmGizmoGroup.init_flag
  */
-typedef enum eWM_GizmoFlagGroupInitFlag {
+enum eWM_GizmoFlagGroupInitFlag {
   /** Gizmo-group has been initialized. */
   WM_GIZMOGROUP_INIT_SETUP = (1 << 0),
   WM_GIZMOGROUP_INIT_REFRESH = (1 << 1),
-} eWM_GizmoFlagGroupInitFlag;
+};
 ENUM_OPERATORS(eWM_GizmoFlagGroupInitFlag, WM_GIZMOGROUP_INIT_REFRESH)
 
 /**
  * #wmGizmoMapType.type_update_flag
  * Gizmo-map type update flag
  */
-typedef enum eWM_GizmoFlagMapTypeUpdateFlag {
+enum eWM_GizmoFlagMapTypeUpdateFlag {
   /** A new type has been added, needs to be initialized for all views. */
   WM_GIZMOMAPTYPE_UPDATE_INIT = (1 << 0),
   WM_GIZMOMAPTYPE_UPDATE_REMOVE = (1 << 1),
@@ -172,7 +176,7 @@ typedef enum eWM_GizmoFlagMapTypeUpdateFlag {
   /** Needed because keymap may be registered before and after window initialization.
    * So we need to keep track of keymap initialization separately. */
   WM_GIZMOMAPTYPE_KEYMAP_INIT = (1 << 2),
-} eWM_GizmoFlagMapTypeUpdateFlag;
+};
 ENUM_OPERATORS(eWM_GizmoFlagMapTypeUpdateFlag, WM_GIZMOMAPTYPE_KEYMAP_INIT)
 
 /* -------------------------------------------------------------------- */
@@ -184,45 +188,45 @@ ENUM_OPERATORS(eWM_GizmoFlagMapTypeUpdateFlag, WM_GIZMOMAPTYPE_KEYMAP_INIT)
  *
  * \note Gizmos are responsible for handling this #wmGizmo.modal callback.
  */
-typedef enum {
+enum eWM_GizmoFlagTweak {
   /* Drag with extra precision (Shift). */
   WM_GIZMO_TWEAK_PRECISE = (1 << 0),
   /* Drag with snap enabled (Ctrl). */
   WM_GIZMO_TWEAK_SNAP = (1 << 1),
-} eWM_GizmoFlagTweak;
+};
 
 #include "wm_gizmo_fn.hh"
 
-typedef struct wmGizmoOpElem {
-  struct wmOperatorType *type;
+struct wmGizmoOpElem {
+  wmOperatorType *type;
   /** Operator properties if gizmo spawns and controls an operator,
    * or owner pointer if gizmo spawns and controls a property. */
   PointerRNA ptr;
 
   bool is_redo;
-} wmGizmoOpElem;
+};
 
 /* gizmos are set per region by registering them on gizmo-maps */
 struct wmGizmo {
-  struct wmGizmo *next, *prev;
+  wmGizmo *next, *prev;
 
   /** While we don't have a real type, use this to put type-like vars. */
-  const struct wmGizmoType *type;
+  const wmGizmoType *type;
 
   /** Overrides 'type->modal' when set.
    * Note that this is a workaround, remove if we can. */
   wmGizmoFnModal custom_modal;
 
   /** Pointer back to group this gizmo is in (just for quick access). */
-  struct wmGizmoGroup *parent_gzgroup;
+  wmGizmoGroup *parent_gzgroup;
 
   /** Optional keymap to use for this gizmo (overrides #wmGizmoGroupType.keymap) */
-  struct wmKeyMap *keymap;
+  wmKeyMap *keymap;
 
   void *py_instance;
 
   /** Rna pointer to access properties. */
-  struct PointerRNA *ptr;
+  PointerRNA *ptr;
 
   /** Flags that influence the behavior or how the gizmos are drawn. */
   eWM_GizmoFlag flag;
@@ -274,7 +278,7 @@ struct wmGizmo {
   wmGizmoOpElem *op_data;
   int op_data_len;
 
-  struct IDProperty *properties;
+  IDProperty *properties;
 
   /** Redraw tag. */
   bool do_draw;
@@ -288,8 +292,8 @@ struct wmGizmo {
 };
 
 /** Similar to #PropertyElemRNA, but has an identifier. */
-typedef struct wmGizmoProperty {
-  const struct wmGizmoPropertyType *type;
+struct wmGizmoProperty {
+  const wmGizmoPropertyType *type;
 
   PointerRNA ptr;
   PropertyRNA *prop;
@@ -303,10 +307,10 @@ typedef struct wmGizmoProperty {
     wmGizmoPropertyFnFree free_fn;
     void *user_data;
   } custom_func;
-} wmGizmoProperty;
+};
 
-typedef struct wmGizmoPropertyType {
-  struct wmGizmoPropertyType *next, *prev;
+struct wmGizmoPropertyType {
+  wmGizmoPropertyType *next, *prev;
   /** #PropertyType, typically #PROP_FLOAT. */
   int data_type;
   int array_length;
@@ -316,21 +320,21 @@ typedef struct wmGizmoPropertyType {
 
   /** over alloc. */
   char idname[0];
-} wmGizmoPropertyType;
+};
 
 /**
  * Simple utility wrapper for storing a single gizmo as wmGizmoGroup.customdata (which gets freed).
  */
-typedef struct wmGizmoWrapper {
-  struct wmGizmo *gizmo;
-} wmGizmoWrapper;
+struct wmGizmoWrapper {
+  wmGizmo *gizmo;
+};
 
 struct wmGizmoMapType_Params {
   short spaceid;
   short regionid;
 };
 
-typedef struct wmGizmoType {
+struct wmGizmoType {
 
   const char *idname; /* MAX_NAME */
 
@@ -389,27 +393,26 @@ typedef struct wmGizmoType {
   wmGizmoFnFree free;
 
   /** RNA for properties. */
-  struct StructRNA *srna;
+  StructRNA *srna;
 
   /** RNA integration. */
   ExtensionRNA rna_ext;
 
   ListBase target_property_defs;
   int target_property_defs_len;
-
-} wmGizmoType;
+};
 
 /* -------------------------------------------------------------------- */
 /* wmGizmoGroup */
 
 /** Factory class for a gizmo-group type, gets called every time a new area is spawned. */
-typedef struct wmGizmoGroupTypeRef {
-  struct wmGizmoGroupTypeRef *next, *prev;
-  struct wmGizmoGroupType *type;
-} wmGizmoGroupTypeRef;
+struct wmGizmoGroupTypeRef {
+  wmGizmoGroupTypeRef *next, *prev;
+  wmGizmoGroupType *type;
+};
 
 /* factory class for a gizmo-group type, gets called every time a new area is spawned */
-typedef struct wmGizmoGroupType {
+struct wmGizmoGroupType {
   const char *idname; /* MAX_NAME */
   /** Gizmo-group name - displayed in UI (keymap editor). */
   const char *name;
@@ -436,15 +439,15 @@ typedef struct wmGizmoGroupType {
   wmGizmoGroupFnMsgBusSubscribe message_subscribe;
 
   /** Keymap created with callback from above. */
-  struct wmKeyMap *keymap;
+  wmKeyMap *keymap;
   /** Only for convenient removal. */
-  struct wmKeyConfig *keyconf;
+  wmKeyConfig *keyconf;
 
   /* NOTE: currently gizmo-group instances don't store properties,
    * they're kept in the tool properties. */
 
   /** RNA for properties. */
-  struct StructRNA *srna;
+  StructRNA *srna;
 
   /** RNA integration. */
   ExtensionRNA rna_ext;
@@ -455,28 +458,27 @@ typedef struct wmGizmoGroupType {
   eWM_GizmoFlagMapTypeUpdateFlag type_update_flag;
 
   /** Same as gizmo-maps, so registering/unregistering goes to the correct region. */
-  struct wmGizmoMapType_Params gzmap_params;
+  wmGizmoMapType_Params gzmap_params;
 
   /**
    * Number of #wmGizmoGroup instances.
    * Decremented when 'tag_remove' is set, or when removed.
    */
   int users;
+};
 
-} wmGizmoGroupType;
-
-typedef struct wmGizmoGroup {
-  struct wmGizmoGroup *next, *prev;
+struct wmGizmoGroup {
+  wmGizmoGroup *next, *prev;
 
-  struct wmGizmoGroupType *type;
+  wmGizmoGroupType *type;
   ListBase gizmos;
 
-  struct wmGizmoMap *parent_gzmap;
+  wmGizmoMap *parent_gzmap;
 
   /** Python stores the class instance here. */
   void *py_instance;
   /** Errors and warnings storage. */
-  struct ReportList *reports;
+  ReportList *reports;
 
   /** Has the same result as hiding all gizmos individually. */
   union {
@@ -494,7 +496,7 @@ typedef struct wmGizmoGroup {
   /** For freeing customdata from above. */
   void (*customdata_free)(void *);
   eWM_GizmoFlagGroupInitFlag init_flag;
-} wmGizmoGroup;
+};
 
 /* -------------------------------------------------------------------- */
 /* wmGizmoMap */
@@ -502,10 +504,10 @@ typedef struct wmGizmoGroup {
 /**
  * Pass a value of this enum to #WM_gizmomap_draw to tell it what to draw.
  */
-typedef enum eWM_GizmoFlagMapDrawStep {
+enum eWM_GizmoFlagMapDrawStep {
   /** Draw 2D gizmo-groups (#WM_GIZMOGROUPTYPE_3D not set). */
   WM_GIZMOMAP_DRAWSTEP_2D = 0,
   /** Draw 3D gizmo-groups (#WM_GIZMOGROUPTYPE_3D set). */
   WM_GIZMOMAP_DRAWSTEP_3D,
-} eWM_GizmoFlagMapDrawStep;
+};
 #define WM_GIZMOMAP_DRAWSTEP_MAX 2
diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_intern.hh b/source/blender/windowmanager/gizmo/intern/wm_gizmo_intern.hh
index d96b2214c6d8dc7adcbc85bee37538902cb5525a..3f3cdf02c4e81734b4d365faf8c475d7fdd49aa8 100644
--- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_intern.hh
+++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_intern.hh
@@ -14,10 +14,6 @@ struct wmKeyConfig;
 
 #include "wm_gizmo_fn.hh"
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 /* -------------------------------------------------------------------- */
 /* wmGizmo */
 
@@ -28,13 +24,13 @@ extern "C" {
  * \return if the selection has changed.
  */
 bool wm_gizmo_select_set_ex(
-    struct wmGizmoMap *gzmap, struct wmGizmo *gz, bool select, bool use_array, bool use_callback);
-bool wm_gizmo_select_and_highlight(bContext *C, struct wmGizmoMap *gzmap, struct wmGizmo *gz);
+    wmGizmoMap *gzmap, wmGizmo *gz, bool select, bool use_array, bool use_callback);
+bool wm_gizmo_select_and_highlight(bContext *C, wmGizmoMap *gzmap, wmGizmo *gz);
 
-void wm_gizmo_calculate_scale(struct wmGizmo *gz, const bContext *C);
-void wm_gizmo_update(struct wmGizmo *gz, const bContext *C, bool refresh_map);
+void wm_gizmo_calculate_scale(wmGizmo *gz, const bContext *C);
+void wm_gizmo_update(wmGizmo *gz, const bContext *C, bool refresh_map);
 
-int wm_gizmo_is_visible(struct wmGizmo *gz);
+int wm_gizmo_is_visible(wmGizmo *gz);
 enum {
   WM_GIZMO_IS_VISIBLE_UPDATE = (1 << 0),
   WM_GIZMO_IS_VISIBLE_DRAW = (1 << 1),
@@ -55,47 +51,44 @@ enum {
 /**
  * Create a new gizmo-group from \a gzgt.
  */
-struct wmGizmoGroup *wm_gizmogroup_new_from_type(struct wmGizmoMap *gzmap,
-                                                 struct wmGizmoGroupType *gzgt);
-void wm_gizmogroup_free(bContext *C, struct wmGizmoGroup *gzgroup);
+wmGizmoGroup *wm_gizmogroup_new_from_type(wmGizmoMap *gzmap, wmGizmoGroupType *gzgt);
+void wm_gizmogroup_free(bContext *C, wmGizmoGroup *gzgroup);
 /**
  * Add \a gizmo to \a gzgroup and make sure its name is unique within the group.
  */
-void wm_gizmogroup_gizmo_register(struct wmGizmoGroup *gzgroup, struct wmGizmo *gz);
-struct wmGizmoGroup *wm_gizmogroup_find_by_type(const struct wmGizmoMap *gzmap,
-                                                const struct wmGizmoGroupType *gzgt);
-struct wmGizmo *wm_gizmogroup_find_intersected_gizmo(wmWindowManager *wm,
-                                                     const struct wmGizmoGroup *gzgroup,
-                                                     struct bContext *C,
-                                                     int event_modifier,
-                                                     const int mval[2],
-                                                     int *r_part);
+void wm_gizmogroup_gizmo_register(wmGizmoGroup *gzgroup, wmGizmo *gz);
+wmGizmoGroup *wm_gizmogroup_find_by_type(const wmGizmoMap *gzmap, const wmGizmoGroupType *gzgt);
+wmGizmo *wm_gizmogroup_find_intersected_gizmo(wmWindowManager *wm,
+                                              const wmGizmoGroup *gzgroup,
+                                              bContext *C,
+                                              int event_modifier,
+                                              const int mval[2],
+                                              int *r_part);
 /**
  * Adds all gizmos of \a gzgroup that can be selected to the head of \a listbase.
  * Added items need freeing!
  */
 void wm_gizmogroup_intersectable_gizmos_to_list(wmWindowManager *wm,
-                                                const struct wmGizmoGroup *gzgroup,
+                                                const wmGizmoGroup *gzgroup,
                                                 int event_modifier,
-                                                struct BLI_Buffer *visible_gizmos);
-bool wm_gizmogroup_is_visible_in_drawstep(const struct wmGizmoGroup *gzgroup,
+                                                BLI_Buffer *visible_gizmos);
+bool wm_gizmogroup_is_visible_in_drawstep(const wmGizmoGroup *gzgroup,
                                           eWM_GizmoFlagMapDrawStep drawstep);
 
-void wm_gizmogrouptype_setup_keymap(struct wmGizmoGroupType *gzgt, struct wmKeyConfig *keyconf);
+void wm_gizmogrouptype_setup_keymap(wmGizmoGroupType *gzgt, wmKeyConfig *keyconf);
 
-wmKeyMap *wm_gizmogroup_tweak_modal_keymap(struct wmKeyConfig *keyconf);
+wmKeyMap *wm_gizmogroup_tweak_modal_keymap(wmKeyConfig *keyconf);
 
 /* -------------------------------------------------------------------- */
 /* wmGizmoMap */
 
-typedef struct wmGizmoMapSelectState {
+struct wmGizmoMapSelectState {
   struct wmGizmo **items;
   int len, len_alloc;
-} wmGizmoMapSelectState;
+};
 
 struct wmGizmoMap {
-
-  struct wmGizmoMapType *type;
+  wmGizmoMapType *type;
   ListBase groups; /* wmGizmoGroup */
 
   /* private, update tagging (enum defined in C source). */
@@ -115,11 +108,11 @@ struct wmGizmoMap {
    */
   struct {
     /* we redraw the gizmo-map when this changes */
-    struct wmGizmo *highlight;
+    wmGizmo *highlight;
     /* User has clicked this gizmo and it gets all input. */
-    struct wmGizmo *modal;
+    wmGizmo *modal;
     /* array for all selected gizmos */
-    struct wmGizmoMapSelectState select;
+    wmGizmoMapSelectState select;
     /* cursor location at point of entering modal (see: WM_GIZMO_MOVE_CURSOR) */
     int event_xy[2];
     short event_grabcursor;
@@ -135,7 +128,7 @@ struct wmGizmoMap {
  * \note There is only ever one of these for every (area, region) combination.
  */
 struct wmGizmoMapType {
-  struct wmGizmoMapType *next, *prev;
+  wmGizmoMapType *next, *prev;
   short spaceid, regionid;
   /* types of gizmo-groups for this gizmo-map type */
   ListBase grouptype_refs;
@@ -144,16 +137,12 @@ struct wmGizmoMapType {
   eWM_GizmoFlagMapTypeUpdateFlag type_update_flag;
 };
 
-void wm_gizmomap_select_array_clear(struct wmGizmoMap *gzmap);
+void wm_gizmomap_select_array_clear(wmGizmoMap *gzmap);
 /**
  * Deselect all selected gizmos in \a gzmap.
  * \return if selection has changed.
  */
-bool wm_gizmomap_deselect_all(struct wmGizmoMap *gzmap);
-void wm_gizmomap_select_array_shrink(struct wmGizmoMap *gzmap, int len_subtract);
-void wm_gizmomap_select_array_push_back(struct wmGizmoMap *gzmap, wmGizmo *gz);
-void wm_gizmomap_select_array_remove(struct wmGizmoMap *gzmap, wmGizmo *gz);
-
-#ifdef __cplusplus
-}
-#endif
+bool wm_gizmomap_deselect_all(wmGizmoMap *gzmap);
+void wm_gizmomap_select_array_shrink(wmGizmoMap *gzmap, int len_subtract);
+void wm_gizmomap_select_array_push_back(wmGizmoMap *gzmap, wmGizmo *gz);
+void wm_gizmomap_select_array_remove(wmGizmoMap *gzmap, wmGizmo *gz);
diff --git a/source/blender/windowmanager/gizmo/wm_gizmo_fn.hh b/source/blender/windowmanager/gizmo/wm_gizmo_fn.hh
index 7e0cedaf3bfd6536371a2db911ac92ecfe84f6c5..c6832e1f46383376a27efb5808260e3a845d0258 100644
--- a/source/blender/windowmanager/gizmo/wm_gizmo_fn.hh
+++ b/source/blender/windowmanager/gizmo/wm_gizmo_fn.hh
@@ -12,65 +12,57 @@
 
 #include "BLI_compiler_attrs.h"
 
+struct wmKeyMap;
 struct wmMsgBus;
 
 /* wmGizmoGroup */
-typedef bool (*wmGizmoGroupFnPoll)(const struct bContext *,
-                                   struct wmGizmoGroupType *) ATTR_WARN_UNUSED_RESULT;
-typedef void (*wmGizmoGroupFnInit)(const struct bContext *, struct wmGizmoGroup *);
-typedef void (*wmGizmoGroupFnRefresh)(const struct bContext *, struct wmGizmoGroup *);
-typedef void (*wmGizmoGroupFnDrawPrepare)(const struct bContext *, struct wmGizmoGroup *);
-typedef void (*wmGizmoGroupFnInvokePrepare)(const struct bContext *,
-                                            struct wmGizmoGroup *,
-                                            struct wmGizmo *,
-                                            const struct wmEvent *);
-typedef struct wmKeyMap *(*wmGizmoGroupFnSetupKeymap)(const struct wmGizmoGroupType *,
-                                                      struct wmKeyConfig *)ATTR_WARN_UNUSED_RESULT;
-typedef void (*wmGizmoGroupFnMsgBusSubscribe)(const struct bContext *,
-                                              struct wmGizmoGroup *,
-                                              struct wmMsgBus *);
+using wmGizmoGroupFnPoll = bool (*)(const bContext *, wmGizmoGroupType *);
+using wmGizmoGroupFnInit = void (*)(const bContext *, wmGizmoGroup *);
+using wmGizmoGroupFnRefresh = void (*)(const bContext *, wmGizmoGroup *);
+using wmGizmoGroupFnDrawPrepare = void (*)(const bContext *, wmGizmoGroup *);
+using wmGizmoGroupFnInvokePrepare = void (*)(const bContext *,
+                                             wmGizmoGroup *,
+                                             wmGizmo *,
+                                             const wmEvent *);
+using wmGizmoGroupFnSetupKeymap = wmKeyMap *(*)(const wmGizmoGroupType *, wmKeyConfig *);
+using wmGizmoGroupFnMsgBusSubscribe = void (*)(const bContext *, wmGizmoGroup *, wmMsgBus *);
 
 /* wmGizmo */
 /* See: wmGizmoType for docs on each type. */
 
-typedef void (*wmGizmoFnSetup)(struct wmGizmo *);
-typedef void (*wmGizmoFnDraw)(const struct bContext *, struct wmGizmo *);
-typedef void (*wmGizmoFnDrawSelect)(const struct bContext *, struct wmGizmo *, int);
-typedef int (*wmGizmoFnTestSelect)(struct bContext *, struct wmGizmo *, const int mval[2]);
-typedef int (*wmGizmoFnModal)(struct bContext *,
-                              struct wmGizmo *,
-                              const struct wmEvent *,
-                              eWM_GizmoFlagTweak);
-typedef void (*wmGizmoFnPropertyUpdate)(struct wmGizmo *, struct wmGizmoProperty *);
-typedef void (*wmGizmoFnMatrixBasisGet)(const struct wmGizmo *, float[4][4]);
-typedef int (*wmGizmoFnInvoke)(struct bContext *, struct wmGizmo *, const struct wmEvent *);
-typedef void (*wmGizmoFnExit)(struct bContext *, struct wmGizmo *, const bool);
-typedef int (*wmGizmoFnCursorGet)(struct wmGizmo *);
-typedef bool (*wmGizmoFnScreenBoundsGet)(struct bContext *,
-                                         struct wmGizmo *,
-                                         rcti *r_bounding_box) ATTR_WARN_UNUSED_RESULT;
-typedef void (*wmGizmoFnSelectRefresh)(struct wmGizmo *);
-typedef void (*wmGizmoFnFree)(struct wmGizmo *);
+using wmGizmoFnSetup = void (*)(wmGizmo *);
+using wmGizmoFnDraw = void (*)(const bContext *, wmGizmo *);
+using wmGizmoFnDrawSelect = void (*)(const bContext *, wmGizmo *, int);
+using wmGizmoFnTestSelect = int (*)(bContext *, wmGizmo *, const int mval[2]);
+using wmGizmoFnModal = int (*)(bContext *, wmGizmo *, const wmEvent *, eWM_GizmoFlagTweak);
+using wmGizmoFnPropertyUpdate = void (*)(wmGizmo *, wmGizmoProperty *);
+using wmGizmoFnMatrixBasisGet = void (*)(const wmGizmo *, float[4][4]);
+using wmGizmoFnInvoke = int (*)(bContext *, wmGizmo *, const wmEvent *);
+using wmGizmoFnExit = void (*)(bContext *, wmGizmo *, const bool);
+using wmGizmoFnCursorGet = int (*)(wmGizmo *);
+using wmGizmoFnScreenBoundsGet = bool (*)(bContext *, wmGizmo *, rcti *r_bounding_box);
+using wmGizmoFnSelectRefresh = void (*)(wmGizmo *);
+using wmGizmoFnFree = void (*)(wmGizmo *);
 
 /* wmGizmoProperty ('value' type defined by 'wmGizmoProperty.data_type') */
-typedef void (*wmGizmoPropertyFnGet)(const struct wmGizmo *,
-                                     struct wmGizmoProperty *,
-                                     /* typically 'float *' */
-                                     void *value);
-typedef void (*wmGizmoPropertyFnSet)(const struct wmGizmo *,
-                                     struct wmGizmoProperty *,
-                                     /* typically 'const float *' */
-                                     const void *value);
-typedef void (*wmGizmoPropertyFnRangeGet)(const struct wmGizmo *,
-                                          struct wmGizmoProperty *,
-                                          /* typically 'float[2]' */
-                                          void *range);
-typedef void (*wmGizmoPropertyFnFree)(const struct wmGizmo *, struct wmGizmoProperty *);
+using wmGizmoPropertyFnGet = void (*)(const wmGizmo *,
+                                      wmGizmoProperty *,
+                                      /* typically 'float *' */
+                                      void *value);
+using wmGizmoPropertyFnSet = void (*)(const wmGizmo *,
+                                      wmGizmoProperty *,
+                                      /* typically 'const float *' */
+                                      const void *value);
+using wmGizmoPropertyFnRangeGet = void (*)(const wmGizmo *,
+                                           wmGizmoProperty *,
+                                           /* typically 'float[2]' */
+                                           void *range);
+using wmGizmoPropertyFnFree = void (*)(const wmGizmo *, wmGizmoProperty *);
 
-typedef struct wmGizmoPropertyFnParams {
+struct wmGizmoPropertyFnParams {
   wmGizmoPropertyFnGet value_get_fn;
   wmGizmoPropertyFnSet value_set_fn;
   wmGizmoPropertyFnRangeGet range_get_fn;
   wmGizmoPropertyFnFree free_fn;
   void *user_data;
-} wmGizmoPropertyFnParams;
+};
diff --git a/source/blender/windowmanager/gizmo/wm_gizmo_wmapi.hh b/source/blender/windowmanager/gizmo/wm_gizmo_wmapi.hh
index 1ac1f9a090821d8f310fbc6ed2b3e567d549244d..d017d2dffa69f50c3ed1c8e9500c07f176cace43 100644
--- a/source/blender/windowmanager/gizmo/wm_gizmo_wmapi.hh
+++ b/source/blender/windowmanager/gizmo/wm_gizmo_wmapi.hh
@@ -26,19 +26,19 @@ struct wmOperatorType;
 
 /* `wm_gizmo_type.cc`, for init/exit */
 
-void wm_gizmotype_free(void);
+void wm_gizmotype_free();
 /**
  * Called on initialize #WM_init().
  */
-void wm_gizmotype_init(void);
+void wm_gizmotype_init();
 
 /* wm_gizmogroup_type.c, for init/exit */
 
-void wm_gizmogrouptype_free(void);
+void wm_gizmogrouptype_free();
 /**
  * Called on initialize #WM_init().
  */
-void wm_gizmogrouptype_init(void);
+void wm_gizmogrouptype_init();
 
 /** \} */
 
@@ -46,10 +46,10 @@ void wm_gizmogrouptype_init(void);
 /** \name #wmGizmoGroup
  * \{ */
 
-void GIZMOGROUP_OT_gizmo_select(struct wmOperatorType *ot);
-void GIZMOGROUP_OT_gizmo_tweak(struct wmOperatorType *ot);
+void GIZMOGROUP_OT_gizmo_select(wmOperatorType *ot);
+void GIZMOGROUP_OT_gizmo_tweak(wmOperatorType *ot);
 
-bool wm_gizmogroup_is_any_selected(const struct wmGizmoGroup *gzgroup);
+bool wm_gizmogroup_is_any_selected(const wmGizmoGroup *gzgroup);
 
 /** \} */
 
@@ -57,48 +57,40 @@ bool wm_gizmogroup_is_any_selected(const struct wmGizmoGroup *gzgroup);
 /** \name #wmGizmoMap
  * \{ */
 
-void wm_gizmomap_remove(struct wmGizmoMap *gzmap);
+void wm_gizmomap_remove(wmGizmoMap *gzmap);
 
 /**
  * Initialize key-maps for all existing gizmo-groups
  */
-void wm_gizmos_keymap(struct wmKeyConfig *keyconf);
+void wm_gizmos_keymap(wmKeyConfig *keyconf);
 
-void wm_gizmomaps_handled_modal_update(bContext *C,
-                                       struct wmEvent *event,
-                                       struct wmEventHandler_Op *handler);
+void wm_gizmomaps_handled_modal_update(bContext *C, wmEvent *event, wmEventHandler_Op *handler);
 /**
  * Prepare context for gizmo handling (but only if area/region is
  * part of screen). Version of #wm_handler_op_context for gizmos.
  */
-void wm_gizmomap_handler_context_op(bContext *C, struct wmEventHandler_Op *handler);
-void wm_gizmomap_handler_context_gizmo(bContext *C, struct wmEventHandler_Gizmo *handler);
+void wm_gizmomap_handler_context_op(bContext *C, wmEventHandler_Op *handler);
+void wm_gizmomap_handler_context_gizmo(bContext *C, wmEventHandler_Gizmo *handler);
 
 /**
  * Try to find a gizmo under the mouse position. 2D intersections have priority over
  * 3D ones (could check for smallest screen-space distance but not needed right now).
  */
-struct wmGizmo *wm_gizmomap_highlight_find(struct wmGizmoMap *gzmap,
-                                           bContext *C,
-                                           const struct wmEvent *event,
-                                           int *r_part);
-bool wm_gizmomap_highlight_set(struct wmGizmoMap *gzmap,
-                               const bContext *C,
-                               struct wmGizmo *gz,
-                               int part);
-struct wmGizmo *wm_gizmomap_highlight_get(struct wmGizmoMap *gzmap);
+wmGizmo *wm_gizmomap_highlight_find(wmGizmoMap *gzmap,
+                                    bContext *C,
+                                    const wmEvent *event,
+                                    int *r_part);
+bool wm_gizmomap_highlight_set(wmGizmoMap *gzmap, const bContext *C, wmGizmo *gz, int part);
+wmGizmo *wm_gizmomap_highlight_get(wmGizmoMap *gzmap);
 /**
  * Caller should call exit when (enable == False).
  */
-void wm_gizmomap_modal_set(struct wmGizmoMap *gzmap,
-                           bContext *C,
-                           struct wmGizmo *gz,
-                           const struct wmEvent *event,
-                           bool enable);
+void wm_gizmomap_modal_set(
+    wmGizmoMap *gzmap, bContext *C, wmGizmo *gz, const wmEvent *event, bool enable);
 
-struct wmGizmo *wm_gizmomap_modal_get(struct wmGizmoMap *gzmap);
-struct wmGizmo **wm_gizmomap_selected_get(wmGizmoMap *gzmap, int *r_selected_len);
-struct ListBase *wm_gizmomap_groups_get(wmGizmoMap *gzmap);
+wmGizmo *wm_gizmomap_modal_get(wmGizmoMap *gzmap);
+wmGizmo **wm_gizmomap_selected_get(wmGizmoMap *gzmap, int *r_selected_len);
+ListBase *wm_gizmomap_groups_get(wmGizmoMap *gzmap);
 
 /** \} */
 
@@ -106,6 +98,6 @@ struct ListBase *wm_gizmomap_groups_get(wmGizmoMap *gzmap);
 /** \name #wmGizmoMapType
  * \{ */
 
-void wm_gizmomaptypes_free(void);
+void wm_gizmomaptypes_free();
 
 /** \} */
diff --git a/source/blender/windowmanager/intern/wm_platform_support.hh b/source/blender/windowmanager/intern/wm_platform_support.hh
index 7246c2e98772f273719dffc9abb4c4afac6f0e37..8a8a3e38e53fe40249ca6e9c45ab4b4c2e26afa6 100644
--- a/source/blender/windowmanager/intern/wm_platform_support.hh
+++ b/source/blender/windowmanager/intern/wm_platform_support.hh
@@ -9,4 +9,4 @@
 
 #include "BLI_sys_types.h"
 
-bool WM_platform_support_perform_checks(void);
+bool WM_platform_support_perform_checks();
diff --git a/source/blender/windowmanager/intern/wm_window_private.hh b/source/blender/windowmanager/intern/wm_window_private.hh
index b7dda98d82ea87b7e8cc83fade7b91f8a20c8c05..7bf2770defea92afd093dd523562e7a2f601ccd9 100644
--- a/source/blender/windowmanager/intern/wm_window_private.hh
+++ b/source/blender/windowmanager/intern/wm_window_private.hh
@@ -30,4 +30,4 @@ void WM_ghost_show_message_box(const char *title,
 
 GHOST_TDrawingContextType wm_ghost_drawing_context_type(const eGPUBackendType gpu_backend);
 
-void wm_test_opengl_deprecation_warning(struct bContext *C);
+void wm_test_opengl_deprecation_warning(bContext *C);
diff --git a/source/blender/windowmanager/xr/intern/wm_xr_intern.hh b/source/blender/windowmanager/xr/intern/wm_xr_intern.hh
index e1086c6476f31b71b623b72f698fd02d435cc0d2..7eeee3171bf437ae935a995bd887d5365a54708f 100644
--- a/source/blender/windowmanager/xr/intern/wm_xr_intern.hh
+++ b/source/blender/windowmanager/xr/intern/wm_xr_intern.hh
@@ -20,7 +20,7 @@
 struct Object;
 struct wmXrActionSet;
 
-typedef struct wmXrSessionState {
+struct wmXrSessionState {
   bool is_started;
 
   /** Last known viewer pose (centroid of eyes, in world space) stored for queries. */
@@ -67,9 +67,9 @@ typedef struct wmXrSessionState {
   struct wmXrActionSet *active_action_set;
   /* Name of the action set (if any) to activate before the next actions sync. */
   char active_action_set_next[64]; /* MAX_NAME */
-} wmXrSessionState;
+};
 
-typedef struct wmXrRuntimeData {
+struct wmXrRuntimeData {
   GHOST_XrContextHandle context;
 
   /** The window the session was started in. Stored to be able to follow its view-layer. This may
@@ -86,15 +86,15 @@ typedef struct wmXrRuntimeData {
   ListBase actionmaps; /* #XrActionMap */
   short actactionmap;
   short selactionmap;
-} wmXrRuntimeData;
+};
 
-typedef struct wmXrViewportPair {
+struct wmXrViewportPair {
   struct wmXrViewportPair *next, *prev;
   struct GPUOffScreen *offscreen;
   struct GPUViewport *viewport;
-} wmXrViewportPair;
+};
 
-typedef struct {
+struct wmXrSurfaceData {
   /** Off-screen buffers/viewports for each view. */
   ListBase viewports; /* #wmXrViewportPair */
 
@@ -102,9 +102,9 @@ typedef struct {
   struct ARegionType *controller_art;
   /** Controller draw callback handle. */
   void *controller_draw_handle;
-} wmXrSurfaceData;
+};
 
-typedef struct wmXrDrawData {
+struct wmXrDrawData {
   struct Scene *scene;
   struct Depsgraph *depsgraph;
 
@@ -120,9 +120,9 @@ typedef struct wmXrDrawData {
   /** Offset to _subtract_ from the OpenXR eye and viewer pose to get the wanted effective pose
    * (e.g. a pose exactly at the landmark position). */
   float eye_position_ofs[3]; /* Local/view space. */
-} wmXrDrawData;
+};
 
-typedef struct wmXrController {
+struct wmXrController {
   struct wmXrController *next, *prev;
   /** OpenXR user path identifier. */
   char subaction_path[64]; /* XR_MAX_USER_PATH_LENGTH */
@@ -138,9 +138,9 @@ typedef struct wmXrController {
 
   /** Controller model. */
   struct GPUBatch *model;
-} wmXrController;
+};
 
-typedef struct wmXrAction {
+struct wmXrAction {
   char *name;
   eXrActionType type;
   unsigned int count_subaction_paths;
@@ -171,16 +171,16 @@ typedef struct wmXrAction {
   eXrOpFlag op_flag;
   eXrActionFlag action_flag;
   eXrHapticFlag haptic_flag;
-} wmXrAction;
+};
 
-typedef struct wmXrHapticAction {
+struct wmXrHapticAction {
   struct wmXrHapticAction *next, *prev;
   wmXrAction *action;
   const char *subaction_path;
   int64_t time_start;
-} wmXrHapticAction;
+};
 
-typedef struct wmXrActionSet {
+struct wmXrActionSet {
   char *name;
 
   /** XR pose actions that determine the controller grip/aim transforms. */
@@ -191,11 +191,11 @@ typedef struct wmXrActionSet {
   ListBase active_modal_actions;
   /** Currently active haptic actions. */
   ListBase active_haptic_actions;
-} wmXrActionSet;
+};
 
 /* `wm_xr.cc` */
 
-wmXrRuntimeData *wm_xr_runtime_data_create(void);
+wmXrRuntimeData *wm_xr_runtime_data_create();
 void wm_xr_runtime_data_free(wmXrRuntimeData **runtime);
 
 /* `wm_xr_session.cc` */
@@ -218,7 +218,7 @@ void wm_xr_session_state_update(const XrSessionSettings *settings,
                                 wmXrSessionState *state);
 bool wm_xr_session_surface_offscreen_ensure(wmXrSurfaceData *surface_data,
                                             const GHOST_XrDrawViewInfo *draw_view);
-void *wm_xr_session_gpu_binding_context_create(void);
+void *wm_xr_session_gpu_binding_context_create();
 void wm_xr_session_gpu_binding_context_destroy(GHOST_ContextHandle context);
 
 void wm_xr_session_actions_init(wmXrData *xr);
@@ -241,4 +241,4 @@ void wm_xr_pose_scale_to_imat(const GHOST_XrPose *pose, float scale, float r_ima
  * callback (see GHOST_XrDrawViewFunc()) and executed for each view (read: eye).
  */
 void wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view, void *customdata);
-void wm_xr_draw_controllers(const struct bContext *C, struct ARegion *region, void *customdata);
+void wm_xr_draw_controllers(const bContext *C, ARegion *region, void *customdata);
diff --git a/source/blender/windowmanager/xr/wm_xr.hh b/source/blender/windowmanager/xr/wm_xr.hh
index ec291ed7114b17cd0e6922dfd027a998427655dc..062298ccff3b743ab532e08b2252ce499e71d40b 100644
--- a/source/blender/windowmanager/xr/wm_xr.hh
+++ b/source/blender/windowmanager/xr/wm_xr.hh
@@ -12,7 +12,7 @@ struct wmWindow;
 struct wmWindowManager;
 struct wmXrData;
 
-typedef void (*wmXrSessionExitFn)(const wmXrData *xr_data);
+using wmXrSessionExitFn = void (*)(const wmXrData *xr_data);
 
 /* `wm_xr.cc` */
 
@@ -23,4 +23,4 @@ bool wm_xr_events_handle(wmWindowManager *wm);
 
 /* `wm_xr_operators.cc` */
 
-void wm_xr_operatortypes_register(void);
+void wm_xr_operatortypes_register();