3.4 -> 3.2 ========== Introduced C++ code in - DNA_mesh_types.h Changes to + ImageTile + Image + Base (dropped: sx, sy) + Mesh ( dropped: mloopuv, mloopcol, deprecated: mvert, medge, mpoly, mloop, dvert, mface note: corresponding data can be retrieved from ldata, vdata, pdata, etc. ) + bObject (renamed: obmat, imat) + Sculpt (added: automasking diverse) + Scene (added: DrawDataList drawdata) + SpaceImage 3.3 -> 3.2 ========== Changes to Curves 3.2 -> 3.1 ========== Hair removed Curves added 3.00.42 -> 2.93.1 ================= - AlembicObjectPath + AssetLibraryReference AssetMetaData + local_type_info + catalog_id + catalog_simple_name + author bGPdata_Runtime + lineart_cache bGPdata + vertex_group_names ~ int vertex_group_active_index <-- char[4] vertex_group_active_index BlenderObject - imat_ren bNode + NodeDeclarationHandle declaration bNodeSocket + char attribute_domain + bNodeSocketValueMaterial + bNodeSocketValueTexture bNodeTree + FieldInferencingInterfaceHandle field_inferencing_interface + int execution_mode - ui_storage BoidParticle - rt BoidRuleAverageSpeed - rt Bone + float[3] scale_in + float[3] scale_out + int bbone_flag + short bbone_prev_flag + short bbone_next_flag bPoseChannel + float[3] custom_scale_xyz + float[3] custom_translation + float[3] custom_rotation_euler + float[3] scale_in + float[3] scale_out bRotLimitConstraint + char euler_order BrushGpencilSettings + caps_type + int dilate_pixels bTheme + strip_color bTransLikeConstraint + flag BuildEff - rt + bUUID CacheFile + type + use_render_procedural - draw_flag + use_prefetch + prefetch_cache_size ~ CacheArchiveHandle handle <-- AbcArchiveHandle handle + CacheObjectPath CacheParticle - rt Collection + lineart_flags + lineart_intersection_mask Curve + CurveEval* curve_eval CustomDataLayer + AnonymousAttributeID anonymous_id + DashGpencilModifierData + DashGpencilModifierSegment Editing + EditingRuntime runtime + EditingRuntime Effect - rt EffectorWheights - rt FileAssetSelectParams + AssetLibraryReference asset_library_ref + short asset_catalog_visibility + bUUID catalog_id + short import_type - FileSelectAssetLibraryUID FileSelectParams - f_fp - fp_str FluidDomainSettings - mesh_velocities - noise_type - totvert - FluidDomainVertexVelocity ID + LibraryWeakReference library_weak_reference IDProperty + ui_data + IDPropertyUIData + IDPropertyUIDataFloat + IDPropertyUIDataID + IDPropertyUIDataInt + IDPropertyUIDataString Image ~ GPUTexture*[3][2][2] gputexture <-- GPUTexture*[3][2] gputexture ImageTile_Runtime - tilearray_layer - tilearray_offset - tilearray_size + ImageTile_RuntimeTextureSlot[2] slots + ImageTile_RuntimeTextureSlot IpoCurve - rt Lattice + ListBase vertex_group_names + int vertex_group_active_index + LengthGpencilModifierData + LibraryWeakReference LinearGpencilModifierData + BlenderObject* source_camera + float overscan + char intersection_mask + float chain_smooth_tolerance + float stroke_depth_offset + char level_start_override + char level_end_override + short edge_types_override + LineartCache* cache - render_buffer + LineartRenderBuffer* render_buffer_ptr MaterialLineArt + char mat_occlusion Mesh_Runtime + void* render_mutex Mesh + ListBase vertex_group_names + int vertex_group_active_index MeshCacheModifierData + char[64] defgrp_name - MeshCacheVertexVelocity MeshSeqCacheModifierData - vertex_velocities - num_vertices - velocity_delta - last_lookup_time MirrorModifierData + uchar use_correct_order_on_merge MovieTrackingDopesheetChannel + int first_not_disabled_marker_framenr + int last_not_disabled_marker_framenr MTex - pmapto - pmaptoneg - rt NodeAttributeConvert ~ int8_t domain <-- short domain + NodeAttributeCurveMap + NodeAttributeVectorRotate NodeDenoise + char prefilter + NodeGeometry.* + NodeInputBool + NodeInputColor + NodeInputInt + NodeRandomValue + NodeShaderPrincipled NodesModifierData + void* runtime_eval_log + NodeSwitch Object_Runtime + double overlay_mode_transfer_start_time - geometry_set_previews OffsetGpencilModifierData + float[3] rnd_offset Panel_Runtime + bContextStore* context ParticleDupliWeight - rt ParticleEditSettings - rt ParticleSettings - rt PhysicsSettings - rt PointCache - rt RegionView3D - depths RenderData - preview_start_resolution . debug_pass_type SDefVert + int vertex_idx Sequence - depth + char tmp_tag - handsize + int8_t color_tag + SequencerPreviewOverlay + SequencerTimelineOverlay SequencerToolSettings + short snap_mode + short snap_flag + int overlap_mode + int snap_distance + int pivot_point SoftBody - sfra - efra ~ local char <-- short ~ solverflags char <-- short SpaceImage - curtile ~ lock char <-- short + int custom_grid_subdiv SpaceNode + SpaceNodeOverlay overlay + SpaceNodeOverlay SpaceSeq ~ view char <-- int ~ overlay_type char <-- int ~ draw_flag char <-- int + char gizmo_flag + float[2] cursor + SequencerPreviewOverlay preview_overlay + SequencerTimelineOverlay timeline_overlay + SpaceSeqRuntime runtime + SpaceSeqRuntime SpaceSpreadsheet + ListBase row_filters SpeedControlVars + int speed_control_type + float speed_fader + float speed_fader_length - lastValidFrame + float speed_fader_frame_number SpreadsheetColumn + uchar data_type + char* display_name + SpreadsheetRowFilter StripColorBalance + int method + float[3] slope + float[3] offset + float[3] power StripElem + float orig_fps StripTransform + float[2] origin SurfaceDeformModifierData + int num_mesh_verts ThemeSpace + float dash_alpha + ThemeStripColor ThemeUI + float panel_roundness ToolSettings - gpencil_seq_align - gpencil_ima_align + char snap_uv_flag uiFontStyle - kerning uiList + char* custom_activate_opname + char* custom_drag_opname UserDef_Experimental + char no_proxy_to_override_conversion + char use_geometry_nodes_legacy + char show_asset_debug_info + char use_full_frame_compositor - use_asset_browser + char use_extended_asset_browser UserDef + char file_preview_type View3D_Runtime + SceneStats local_stats View3DOverlay + float normals_constant_screen_size + WeightAngleGpencilModifierData + WeightProxGpencilModifierData WorkSpace + AssetLibraryReference asset_library_ref + XrActionMap + XrActionMapBinding + XrActionMapItem XrSessionSettings + float base_scale + char controller_draw_style 2.93.1 -> 2.93.0 ================ ModifierData + _pad1 2.93.0 -> 2.92.0 ================ bAction + PreviewImage *preview; FModifier + /** + * Expansion state for the modifier panel and its sub-panels, stored as a bit-field + * in depth-first order. (Maximum of `sizeof(short)` total panels). + */ + short ui_expand_flag; bArmature + /** Relative position of the axes on the bone, from head (0.0f) to tail (1.0f). */ + float axes_position; BrushGpencilSettings + /** Fill zoom factor */ + float fill_factor; Collection + /** Line Art engine specific */ + short lineart_usage; - PathPoint - Path BevPoint - short split_tag; Curve + /** + * Determine how the effective radius of the bevel point is computed when a taper object is + * specified. The effective radius is a function of the bevel point radius and the taper radius. + */ + char taper_radius_mode; NoiseGpencilModifierData + float noise_offset; + LineartGpencilModifierData Light + float area_spread; + float diff_fac, volume_fac; MirrorModifierData + float bisect_threshold; bNodeSocket + /* Runtime-only cache of the number of input links, for multi-input sockets. */ + short total_inputs; + char description[64]; + CryptomatteLayer + struct CryptomatteEntry *next, *prev; + char name[64]; NodeCryptomatte + /** + * `iuser` needs to be first element due to RNA limitations. + * When we define the #ImageData properties, we can't define them from + * `storage->iuser`, so storage needs to be cast to #ImageUser directly. + */ + ImageUser iuser; + char layer_name[64]; + NodeAttributeClamp + /* CustomDataType. */ + uint8_t data_type; + /* NodeClampOperation. */ + uint8_t operation; + NodeAttributeMapRange + /* GeometryNodeAttributeDataType */ + uint8_t data_type; + /* NodeMapRangeType. */ + uint8_t interpolation_type; NodeAttributeMath + uint8_t input_type_c; + NodeAttributeRandomize + /* CustomDataType. */ + uint8_t data_type; + /* AttributeDomain. */ + uint8_t domain; + /* GeometryNodeAttributeRandomizeMode. */ + uint8_t operation; + NodeInputString + char *string; NodeGeometryAlignRotationToVector + /* GeometryNodeAlignRotationToVectorPivotAxis */ + uint8_t pivot_axis; + NodeGeometryPointInstance + /* GeometryNodePointInstanceType. */ + uint8_t instance_type; + /* GeometryNodePointInstanceFlag. */ + uint8_t flag; + NodeGeometryPointsToVolume + /* GeometryNodePointsToVolumeResolutionMode */ + uint8_t resolution_mode; + /* GeometryNodeAttributeInputMode */ + uint8_t input_type_radius; + NodeGeometryCollectionInfo + /* GeometryNodeTransformSpace. */ + uint8_t transform_space; + NodeGeometryAttributeProximity + /* GeometryNodeAttributeProximityTargetType. */ + uint8_t target_geometry_element; + NodeGeometryVolumeToMesh + /* VolumeToMeshResolutionMode */ + uint8_t resolution_mode; + NodeAttributeCombineXYZ + /* GeometryNodeAttributeInputMode. */ + uint8_t input_type_x; + uint8_t input_type_y; + uint8_t input_type_z; NodeAttributeSeparateXYZ + /* GeometryNodeAttributeInputMode. */ + uint8_t input_type; + NodeAttributeConvert + /* CustomDataType. */ + uint8_t data_type; + char _pad[1]; + /* AttributeDomain. */ + int16_t domain; + NodeGeometryMeshCircle + /* GeometryNodeMeshCircleFillType. */ + uint8_t fill_type; + NodeGeometryMeshCylinder + /* GeometryNodeMeshCircleFillType. */ + uint8_t fill_type; + NodeGeometryMeshCone + /* GeometryNodeMeshCircleFillType. */ + uint8_t fill_type; + NodeGeometryMeshLine + /* GeometryNodeMeshLineMode. */ + uint8_t mode; + /* GeometryNodeMeshLineCountMode. */ + uint8_t count_mode; + ObjectLineArt { + short usage; + short flags; + /** if OBJECT_LRT_OWN_CREASE is set */ + float crease_threshold; Object + ObjectLineArt lineart; GP_Interpolate_Settings - /** #eGP_Interpolate_SettingsFlag. */ - short flag; - /** #eGP_Interpolate_Type - Interpolation Mode. */ - char type; - /** #eBezTriple_Easing - Easing mode (if easing equation used). */ - char easing; - /** BEZT_IPO_BACK. */ - float back; - /** BEZT_IPO_ELASTIC. */ - float amplitude, period; - /* Step between sequence interpolated frames. */ - int step; - char _pad[4]; SceneEEVEE + float bokeh_overblur; + float bokeh_neighbor_max; + float bokeh_denoise_fac; bNodeTreePath + char display_name[64]; SpaceNode + /** Direction for offsetting nodes on insertion. */ + char insert_ofs_dir; - /** Currently on 0/1, for auto compo. */ - short recalc; - /** Direction for offsetting nodes on insertion. */ - char insert_ofs_dir; - char _pad4; - /** Temporary data for modal linking operator. */ - ListBase linkdrag; - /* XXX hack for translate_attach op-macros to pass data from transform op to insert_offset op */ - /** Temporary data for node insert offset (in UI called Auto-offset). */ - struct NodeInsertOfsData *iofsd; + SpreadsheetColumn + SpreadsheetContext + SpreadsheetContextObject + SpreadsheetContextModifier + SpreadsheetContextNode + SpaceSpreadsheet 2.92.0 -> 2.91.1 ================ + AssetTag // User defined tag for an asset + AssetMetaData // The meta-data of an asset. Brush + float wet_paint_radius_factor; + int snake_hook_deform_type; ClothCollSettings + short vgroup_objcol; // group of vertices not considered in collision detection + char _pad2[4]; bConstraint + struct Object *space_object; // Object to use as target for Custom Space of owner. + char space_subtarget[64]; // Subtarget for Custom Space of owner - pchan or vgroup name, MAX_ID_NAME-2. BezTriple ~ char f5 --> char auto_handle_type; // just renamed CustomData ~ int typemap[50] --> int typemap[51]; // array size increased FluidDomainSettings + float viscosity_value; // guess it supports viscosity now? + ViewLayerAOV // AOV Renderpass definition ViewLayer + short cryptomatte_flag; + short cryptomatte_levels; + ListBase aovs; + ViewLayerAOV *active_aov; Mesh - struct Multires *mr DNA_DEPRECATED; // now removed along with the following structs - MultiresCol - MultiresColFace - MultiresFace - MultiresEdge - MultiresLevel - Multires WeightVGProximityModifierData + struct CurveMapping *cmap_curve; // now supports custom mapping curve (!) WeldModifierData ~ short flag; --+--> char mode; // split up into mode and flag | +--> char flag; + NodesModifierSettings // replaces SimulationModifierData + NodesModifierData // replaces SimulationModifierData + bNodeSocketValueCollection // list of values for a socket of a node (part of nodes) NodeImageMultiFileSocket + char save_as_render; + NodeSetAlpha // new node for nodes NodeShaderAttribute + int type; + CryptomatteEntry + struct CryptomatteEntry *next, *prev; + float encoded_hash; + char name[64]; + char _pad[4]; NodeCryptomatte + ListBase entries; + NodeAttributeCompare + NodeAttributeMath + NodeAttributeMix + NodeAttributeVectorMath + NodeAttributeColorRamp + NodeInputVector + NodeGeometryRotatePoints + NodeGeometryAlignRotationToVector + NodeGeometryPointScale + NodeGeometryPointTranslate + NodeGeometryObjectInfo BakeData + char target // R_BAKE_TARGET_IMAGE_TEXTURES or R_BAKE_TARGET_VERTEX_COLORS + SequencerToolSettings + int fit_method; // method to fit an image to something (SCALE_TO_FIT, SCALE_TO_FILL, STRETCH_TO_FILL, ORIGINAL_SIZE) ToolSettings + struct SequencerToolSettings *sequencer_tool_settings; StripTransform + float scale_x; + float scale_y; + float rotation; TextVars + float box_color[4]; + float box_margin; 2.91.0 -> 2.90.1 ================ FCurve + int active_keyframe_index - char _pad2[4]; (different place than active_key_frame_index --> incompatible struct layout between versions) BrushGpencilSettings + short fill_layer_mode; + short fill_direction; + short brush_draw_mode; Brush ~ char _pad0[5]; -> char _pad0[1]; + float tilt_strength_factor; + int deform_target; + int boundary_deform_type; + int boundary_falloff_type; + float boundary_offset; + int cloth_simulation_area_type; + float cloth_constraint_softbody_strength; CacheFile ~ char _pad[3]; -> char _pad[4]; + char velocity_unit; + char velocity_name[64]; Collection + int16_t color_tag; ~ char _pad[2]; -> char _pad[4]; BPoint ~ uint8_t f1; -> short f1; + char _pad1[1]; Curve + struct CurveProfile *bevel_profile; + char bevel_mode; ~ char _pad[2]; -> char _pad[3]; ~ int len_char32; -> int len_wchar; FluidDomainSettings + struct GPUTexture *tex_flags; + struct GPUTexture *tex_range_field; + float fractions_distance; + char _pad4[6]; -> char _pad4[2]; - char slice_method, axis_slice_method; - char slice_axis, draw_velocity; + float grid_scale; + float gridlines_lower_bound; + float gridlines_upper_bound; + float gridlines_range_color[4]; + char axis_slice_method; + char slice_axis; + char show_gridlines; + char draw_velocity; + char vector_field; /* Simulation field used for vector display. */ + char vector_scale_with_magnitude; + char vector_draw_mac_components; + char gridlines_color_field; /* Simulation field used to color map onto gridlines. */ + char gridlines_cell_filter; + char _pad9[7]; // inserted padding, name doesn't matter GpencilModifierData + char _pad0[4]; - int stackindex; Hair + int attributes_active_index; + int _pad3; Image ~ struct GPUTexture *gputexture[3][2]; -> struct GPUTexture *gputexture[4][2]; + short gpu_pass; + short gpu_layer; + short gpu_slot; ~ char _pad2[4]; -> char _pad2[2]; Mesh + int attributes_active_index; + int _pad3; + char symmetry; ~ char _pad1[2]; -> char _pad1[3]; ModifierData - int stackindex; + char _pad0[4]; + SessionUUID session_uuid; SubsurfModifierData + short boundary_smooth; ~ char _pad[2]; -> char _pad[4]; BooleanModifierData + struct Collection *collection; + float double_threshold; + char solver; + char flag; - char _pad[2]; - float double_threshold; MultiresModifierData + short boundary_smooth; ~ char _pad2[2]; -> char _pad2[4]; OceanModifierData + int viewport_resolution; - char _pad1[4]; WeldModifierData - unsigned int max_interactions; ~ char _pad[2]; - > char _pad[6]; + MeshCacheVertexVelocity + float vel[3]; MeshSeqCacheModifierData ~ char _pad[3]; -> char _pad[7]; + float velocity_scale; + struct MeshCacheVertexVelocity *vertex_velocities; + int num_vertices; + float velocity_delta; + float last_lookup_time; + int _pad1; SimulationModifierData - struct Simulation *simulation; - char *data_path; + MeshToVolumeModifierData + ModifierData modifier; + struct Object *object; + int resolution_mode; + float voxel_size; + int voxel_amount; + char fill_volume; + char _pad1[3]; + float interior_band_width; + float exterior_band_width; + float density; + char _pad2[4]; + VolumeDisplaceModifierData + ModifierData modifier; + struct Tex *texture; + struct Object *texture_map_object; + int texture_map_mode; + float strength; + float texture_mid_level[3]; + float texture_sample_radius; + VolumeToMeshModifierData + ModifierData modifier; + struct Object *object; + float threshold; + float adaptivity; + uint32_t flag; + int resolution_mode; + float voxel_size; + int voxel_amount; + char grid_name[64]; - LodLevel - struct LodLevel *next, *prev; - struct Object *source; - int flags; - float distance; - char _pad0[4]; - int obhysteresis; Object - ListBase lodlevels; - LodLevel *currentlod; PointCloud - int attributes_active_index; - int _pad4; RigidBodyWorld ~ short substeps_per_frame; -> short steps_per_second; RenderData ~ char _pad5[3]; -> char _pad5[7]; + float simplify_volumes; TimeMarker + struct IDProperty *prop; GP_Interpolate_Settings + int step; + char _pad[4]; UnitSettings + char temperature_unit; ~ char _pad[4]; -> char _pad[5]; SceneEEVEE + int motion_blur_position; + char _pad0[4]; Panel_Runtime - int list_index; + char _pad[4]; + struct uiBlock *block; + SDNA_StructMember + short type; + short name; + SDNA_Struct + short type; + short members_len; + SDNA_StructMember members[]; SDNA ~ SDNA_Struct **structs; -> short **structs; ShaderFxData - int stackindex; + char _pad0[4]; Simulation - float current_frame; - float current_simulation_time; - struct ListBase states; - struct ListBase persistent_data_handles; - typedef struct SimulationState - struct SimulationState *next; - struct SimulationState *prev; - char *type; - char *name; - ParticleSimulationState - SimulationState head; - int tot_particles; - int next_particle_id; - struct CustomData attributes; - ParticleMeshEmitterSimulationState - SimulationState head; - float last_birth_time; - char _pad[4]; - PersistentDataHandleItem - struct PersistentDataHandleItem *next; - struct PersistentDataHandleItem *prev; - struct ID *id; - int handle; - char _pad[4]; SpaceProperties + struct SpaceProperties_Runtime *runtime; + SpaceImageOverlay + int flag; + char _pad[4]; SpaceImage + SpaceImageOverlay overlay; MovieTrackingCamera + float brown_k1, brown_k2, brown_k3, brown_k4; + float brown_p1, brown_p2; 2.90.0 -> 2.90.1 ================ No changes to DNA. 2.83.x -> 2.90 ============== Someone is really working on improving code quality here. All files: - #pragma once statt #ifdef directives - values explicitly assigned to items in enums - attribute 'name' turned into 'filename' at several places Added new Block ID_SIM (blocks describing a simulation) Some new features to Brush ClothSimSettings /* Density of the fluid inside or outside the object for use in the hydrostatic pressure * gradient. */ + float fluid_density; Lots of work went into grease pencil (gpencil) Struct Simulation has been added, which looks more like runtime state information. 2.82.7 -> 2.83.0 ================ Added: ------ + HairCurve + HairMapping + Hair + LightShaderFxData + Volume + VolumeRender + VolumeDisplay + Volume_Runtime + PointCloud + ViewLayerEEVEE Structs Removed --------------- --none-- Struct Changes: --------------- BrushGpencilSettings - draw_sensitivity - draw_random_sub - thick_smoothlvl - thick_smoothfac x gradient_f --> hardeness x gradient_s --> aspect_ratio + /** Mix colorfactor */ + float vertex_factor; + int vertex_mode; + /** eGP_Sculpt_Flag. */ + int sculpt_flag; + /** eGP_Sculpt_Mode_Flag. */ + int sculpt_mode_flag; + /** Preset type (used to reset brushes - internal). */ + short preset_type; + char _pad3[6]; Brush + /** Active grease pencil vertex tool. */ + char gpencil_vertex_tool; + /** Active grease pencil sculpt tool. */ + char gpencil_sculpt_tool; + /** Active grease pencil weight tool. */ + char gpencil_weight_tool; + char _pad1[6]; + float area_radius_factor; + float hardness; + int automasking_boundary_edges_propagation_steps; + /* Factor that controls the shape of the brush tip by rounding the corners of a square. */ + /* 0.0 value produces a square, 1.0 produces a circle. */ + float tip_roundness; + int pose_origin_type; + /* cloth */ + int cloth_deform_type; + int cloth_force_falloff_type; + float cloth_mass; + float cloth_damping; + float cloth_sim_limit; + float cloth_sim_falloff; + /* smooth */ + int smooth_deform_type; + float surface_smooth_shape_preservation; + float surface_smooth_current_vertex; + int surface_smooth_iterations; FluidDomainSettings + struct GPUTexture *tex_density; + struct GPUTexture *tex_color; - float domain_size; FluidEffectorSettings + int subframes; NoiseGpencilModifierData + float factor_strength; + float factor_thickness; + float factor_uvs; + /** Noise Frequency scaling */ + float noise_scale; + struct CurveMapping *curve_intensity; SubdivGpencilModifierData + /** Type of subdivision */ + short type; ThickGpencilModifierData + /** Relative thickness factor. */ + float thickness_fac; ColorGpencilModifierData + struct CurveMapping *curve_intensity; OpacityGpencilModifierData - char opacity_mode; + float hardeness; + struct CurveMapping *curve_intensity; ArrayGpencilModifierData - float rnd_size; - float rnd_rot; - float rot[3]; - float scale[3]; - float rnd[20]; + float rnd_offset[3]; + float rnd_rot[3]; + /** Random Scales. */ + float rnd_scale[3]; + int seed; SmoothGpencilModifierData + struct CurveMapping *curve_intensity; TintGpencilModifierData - struct Object *object; + /** Optional vertexgroup name, MAX_VGROUP_NAME. */ + char vgname[64]; - char modify_color; + /** Mode (Stroke/Fill/Both). */ + int mode; + float radius; + /** Type of Tint. */ + int type; + struct CurveMapping *curve_intensity; + struct ColorBand *colorband; ViewLayer + struct ViewLayerEEVEE eevee; Mesh + int face_sets_color_seed; + /* Stores the initial Face Set to be rendered white. This way the overlay can be enabled by + * default and Face Sets can be used without affecting the color of the mesh. */ + int face_sets_color_default; BlurShaderFxData - coc; /** Circle of confusion. */ - int blur[2]; + /** Rotation of blur effect. */ + float rotation; GlowShaderFxData + float glow_color[4]; + /** Rotation of effect. */ + float rotation; + /** Blend modes. */ + int blend_mode; 2.81a -> 2.82.7 =============== Remove: ------- - SmokeDomainSettings (replaced by new Fluid structs) - SmokeFlowSettings (replaced by new Fluid structs) - SmokeCollSettings (replaced by new Fluid structs) Added: ------ + CurveProfile + FluidDomainVertexVelocity + FluidDomainSettings + FluidFlowSettings + FluidEffectorSettings + FluidModifierData + IDOverrideLibraryRuntime + ImageTile_Runtime + ImageTileImage Struct Changes -------------- ARegion + added 3D offset bActionConstraint + mix_mode BevelModifierData + vmesh_method + struct CurveProfile *custom_profile; Brush + flag2 + float dash_ratio; + int dash_samples; + int pose_smooth_iterations; + int pose_ik_segments; + float multiplane_scrape_angle; bToolRef + idname_fallback ClothSimSettings + float internal_spring_max_length; + float internal_spring_max_diversion; + short vgroup_intern; + char _pad1[2]; + float internal_tension; + float internal_compression; + float max_internal_tension; + float max_internal_compression; + char _pad0[4]; IDOverrideLibrary + IDOverrideLibraryRuntime *runtime; Image - short ok; + int active_tile_index; + ListBase tiles; MovieClip_RuntimeGPUTexture + struct GPUTexture *gputexture[4]; // formerly [2] UnifiedPaintSettings + float initial_pixel_radius; ToolSettings char workspace_tool_type; struct CurveProfile *custom_bevel_profile_preset; World - mistend