Merge branch 'master' into sculpt-dev

This commit is contained in:
Pablo Dobarro 2021-01-05 17:52:46 +01:00
commit 29078186f8
319 changed files with 2311 additions and 1130 deletions

View File

@ -13,7 +13,7 @@ Invocation:
export CLANG_BIND_DIR="/dsk/src/llvm/tools/clang/bindings/python"
export CLANG_LIB_DIR="/opt/llvm/lib"
python2 clang_array_check.py somefile.c -DSOME_DEFINE -I/some/include
python clang_array_check.py somefile.c -DSOME_DEFINE -I/some/include
... defines and includes are optional
@ -76,6 +76,32 @@ defs_precalc = {
"glNormal3bv": {0: 3},
"glNormal3iv": {0: 3},
"glNormal3sv": {0: 3},
# GPU immediate mode.
"immVertex2iv": {1: 2},
"immVertex2fv": {1: 2},
"immVertex3fv": {1: 3},
"immAttr2fv": {1: 2},
"immAttr3fv": {1: 3},
"immAttr4fv": {1: 4},
"immAttr3ubv": {1: 3},
"immAttr4ubv": {1: 4},
"immUniform2fv": {1: 2},
"immUniform3fv": {1: 3},
"immUniform4fv": {1: 4},
"immUniformColor3fv": {0: 3},
"immUniformColor4fv": {0: 4},
"immUniformColor3ubv": {1: 3},
"immUniformColor4ubv": {1: 4},
"immUniformColor3fvAlpha": {0: 3},
"immUniformColor4fvAlpha": {0: 4},
}
# -----------------------------------------------------------------------------
@ -100,7 +126,8 @@ else:
if CLANG_LIB_DIR is None:
print("$CLANG_LIB_DIR clang lib dir not set")
sys.path.append(CLANG_BIND_DIR)
if CLANG_BIND_DIR:
sys.path.append(CLANG_BIND_DIR)
import clang
import clang.cindex
@ -108,7 +135,8 @@ from clang.cindex import (CursorKind,
TypeKind,
TokenKind)
clang.cindex.Config.set_library_path(CLANG_LIB_DIR)
if CLANG_LIB_DIR:
clang.cindex.Config.set_library_path(CLANG_LIB_DIR)
index = clang.cindex.Index.create()

View File

@ -32,7 +32,7 @@ CHECKER_IGNORE_PREFIX = [
"intern/moto",
]
CHECKER_BIN = "python2"
CHECKER_BIN = "python3"
CHECKER_ARGS = [
os.path.join(os.path.dirname(__file__), "clang_array_check.py"),

View File

@ -237,7 +237,7 @@ Examples:
{'FINISHED'}
>>> bpy.ops.mesh.hide(unselected=False)
{'FINISHED'}
>>> bpy.ops.object.scale_apply()
>>> bpy.ops.object.transform_apply()
{'FINISHED'}
.. tip::

View File

@ -1,7 +1,5 @@
/* Prevent Long enum lists */
.field-body {
display: block;
width: 100%;
/* T76453: Prevent Long enum lists */
.field-list li {
max-height: 245px;
overflow-y: auto !important;
}

View File

@ -49,7 +49,7 @@ DeviceInfo blender_device_info(BL::Preferences &b_preferences, BL::Scene &b_scen
PointerRNA cpreferences;
BL::Preferences::addons_iterator b_addon_iter;
for (b_preferences.addons.begin(b_addon_iter); b_addon_iter != b_preferences.addons.end();
++b_addon_iter) {
++b_addon_iter) {
if (b_addon_iter->module() == "cycles") {
cpreferences = b_addon_iter->preferences().ptr;
break;

View File

@ -118,27 +118,27 @@ void MEM_lockfree_freeN(void *vmemh);
void *MEM_lockfree_dupallocN(const void *vmemh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT;
void *MEM_lockfree_reallocN_id(void *vmemh,
size_t len,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(2);
void *MEM_lockfree_recallocN_id(void *vmemh,
size_t len,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(2);
void *MEM_lockfree_callocN(size_t len, const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void *MEM_lockfree_callocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
void *MEM_lockfree_calloc_arrayN(size_t len,
size_t size,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1, 2) ATTR_NONNULL(3);
void *MEM_lockfree_mallocN(size_t len, const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void *MEM_lockfree_mallocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
void *MEM_lockfree_malloc_arrayN(size_t len,
size_t size,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1, 2) ATTR_NONNULL(3);
void *MEM_lockfree_mallocN_aligned(size_t len,
size_t alignment,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(3);
void MEM_lockfree_printmemlist_pydict(void);
void MEM_lockfree_printmemlist(void);
@ -161,27 +161,27 @@ void MEM_guarded_freeN(void *vmemh);
void *MEM_guarded_dupallocN(const void *vmemh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT;
void *MEM_guarded_reallocN_id(void *vmemh,
size_t len,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(2);
void *MEM_guarded_recallocN_id(void *vmemh,
size_t len,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(2);
void *MEM_guarded_callocN(size_t len, const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void *MEM_guarded_callocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
void *MEM_guarded_calloc_arrayN(size_t len,
size_t size,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1, 2) ATTR_NONNULL(3);
void *MEM_guarded_mallocN(size_t len, const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void *MEM_guarded_mallocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2);
void *MEM_guarded_malloc_arrayN(size_t len,
size_t size,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1, 2) ATTR_NONNULL(3);
void *MEM_guarded_mallocN_aligned(size_t len,
size_t alignment,
const char *UNUSED(str)) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
ATTR_ALLOC_SIZE(1) ATTR_NONNULL(3);
void MEM_guarded_printmemlist_pydict(void);
void MEM_guarded_printmemlist(void);

View File

@ -34,12 +34,16 @@ if LANG is not None:
url_manual_prefix = url_manual_prefix.replace("manual/en", "manual/" + LANG)
url_manual_mapping = (
("bpy.types.movietrackingsettings.refine_intrinsics_tangential_distortion*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-refine-intrinsics-tangential-distortion"),
("bpy.types.movietrackingsettings.refine_intrinsics_radial_distortion*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-refine-intrinsics-radial-distortion"),
("bpy.types.fluiddomainsettings.sndparticle_potential_max_trappedair*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-max-trappedair"),
("bpy.types.fluiddomainsettings.sndparticle_potential_min_trappedair*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-min-trappedair"),
("bpy.types.fluiddomainsettings.sndparticle_potential_max_wavecrest*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-max-wavecrest"),
("bpy.types.fluiddomainsettings.sndparticle_potential_min_wavecrest*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-min-wavecrest"),
("bpy.types.movietrackingsettings.refine_intrinsics_principal_point*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-refine-intrinsics-principal-point"),
("bpy.types.fluiddomainsettings.sndparticle_potential_max_energy*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-max-energy"),
("bpy.types.fluiddomainsettings.sndparticle_potential_min_energy*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-potential-min-energy"),
("bpy.types.movietrackingsettings.refine_intrinsics_focal_length*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-refine-intrinsics-focal-length"),
("bpy.types.rigidbodyconstraint.rigidbodyconstraint.use_breaking*", "physics/rigid_body/constraints/introduction.html#bpy-types-rigidbodyconstraint-rigidbodyconstraint-use-breaking"),
("bpy.types.fluiddomainsettings.sndparticle_sampling_trappedair*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-sampling-trappedair"),
("bpy.types.fluiddomainsettings.sndparticle_sampling_wavecrest*", "physics/fluid/type/domain/liquid/particles.html#bpy-types-fluiddomainsettings-sndparticle-sampling-wavecrest"),
@ -62,6 +66,7 @@ url_manual_mapping = (
("bpy.types.brushgpencilsettings.use_settings_stabilizer*", "grease_pencil/modes/draw/tools/draw.html#bpy-types-brushgpencilsettings-use-settings-stabilizer"),
("bpy.types.fluiddomainsettings.use_collision_border_top*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-use-collision-border-top"),
("bpy.types.gpencilsculptsettings.use_multiframe_falloff*", "grease_pencil/multiframe.html#bpy-types-gpencilsculptsettings-use-multiframe-falloff"),
("bpy.types.movietrackingsettings.use_keyframe_selection*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-use-keyframe-selection"),
("bpy.types.rendersettings.simplify_gpencil_antialiasing*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-gpencil-antialiasing"),
("bpy.types.toolsettings.use_transform_pivot_point_align*", "scene_layout/object/tools/tool_settings.html#bpy-types-toolsettings-use-transform-pivot-point-align"),
("bpy.types.brush.show_multiplane_scrape_planes_preview*", "sculpt_paint/sculpting/tools/multiplane_scrape.html#bpy-types-brush-show-multiplane-scrape-planes-preview"),
@ -115,6 +120,7 @@ url_manual_mapping = (
("bpy.types.linestylegeometrymodifier_perlinnoise1d*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/perlin_noise_1d.html#bpy-types-linestylegeometrymodifier-perlinnoise1d"),
("bpy.types.linestylegeometrymodifier_perlinnoise2d*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/perlin_noise_2d.html#bpy-types-linestylegeometrymodifier-perlinnoise2d"),
("bpy.types.materialgpencilstyle.use_stroke_holdout*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-use-stroke-holdout"),
("bpy.types.movietrackingsettings.use_tripod_solver*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingsettings-use-tripod-solver"),
("bpy.types.rendersettings.use_high_quality_normals*", "render/eevee/render_settings/performance.html#bpy-types-rendersettings-use-high-quality-normals"),
("bpy.types.toolsettings.use_proportional_connected*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-use-proportional-connected"),
("bpy.types.toolsettings.use_proportional_projected*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-use-proportional-projected"),
@ -144,6 +150,7 @@ url_manual_mapping = (
("bpy.types.toolsettings.proportional_edit_falloff*", "editors/3dview/controls/proportional_editing.html#bpy-types-toolsettings-proportional-edit-falloff"),
("bpy.types.toolsettings.use_edge_path_live_unwrap*", "modeling/meshes/tools/tool_settings.html#bpy-types-toolsettings-use-edge-path-live-unwrap"),
("bpy.types.toolsettings.use_gpencil_draw_additive*", "grease_pencil/modes/draw/introduction.html#bpy-types-toolsettings-use-gpencil-draw-additive"),
("bpy.types.toolsettings.use_snap_backface_culling*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-backface-culling"),
("bpy.types.toolsettings.use_transform_data_origin*", "scene_layout/object/tools/tool_settings.html#bpy-types-toolsettings-use-transform-data-origin"),
("bpy.types.view3doverlay.sculpt_mode_mask_opacity*", "sculpt_paint/sculpting/editing/mask.html#bpy-types-view3doverlay-sculpt-mode-mask-opacity"),
("bpy.ops.outliner.collection_indirect_only_clear*", "render/layers/layers.html#bpy-ops-outliner-collection-indirect-only-clear"),
@ -176,6 +183,7 @@ url_manual_mapping = (
("bpy.types.fluiddomainsettings.guide_vel_factor*", "physics/fluid/type/domain/guides.html#bpy-types-fluiddomainsettings-guide-vel-factor"),
("bpy.types.fluideffectorsettings.use_plane_init*", "physics/fluid/type/effector.html#bpy-types-fluideffectorsettings-use-plane-init"),
("bpy.types.linestylegeometrymodifier_tipremover*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/tip_remover.html#bpy-types-linestylegeometrymodifier-tipremover"),
("bpy.types.movietrackingcamera.distortion_model*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-distortion-model"),
("bpy.types.rendersettings.resolution_percentage*", "render/output/properties/dimensions.html#bpy-types-rendersettings-resolution-percentage"),
("bpy.types.rendersettings_simplify_gpencil_tint*", "render/cycles/render_settings/simplify.html#bpy-types-rendersettings-simplify-gpencil-tint"),
("bpy.types.toolsettings.use_gpencil_draw_onback*", "grease_pencil/modes/draw/introduction.html#bpy-types-toolsettings-use-gpencil-draw-onback"),
@ -199,6 +207,7 @@ url_manual_mapping = (
("bpy.types.fluiddomainsettings.particle_radius*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-particle-radius"),
("bpy.types.fluiddomainsettings.slice_per_voxel*", "physics/fluid/type/domain/gas/viewport_display.html#bpy-types-fluiddomainsettings-slice-per-voxel"),
("bpy.types.fluiddomainsettings.surface_tension*", "physics/fluid/type/domain/liquid/diffusion.html#bpy-types-fluiddomainsettings-surface-tension"),
("bpy.types.fluiddomainsettings.viscosity_value*", "physics/fluid/type/domain/liquid/viscosity.html#bpy-types-fluiddomainsettings-viscosity-value"),
("bpy.types.fluideffectorsettings.effector_type*", "physics/fluid/type/effector.html#bpy-types-fluideffectorsettings-effector-type"),
("bpy.types.fluidflowsettings.use_particle_size*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-use-particle-size"),
("bpy.types.linestylegeometrymodifier_blueprint*", "render/freestyle/parameter_editor/line_style/modifiers/geometry/blueprint.html#bpy-types-linestylegeometrymodifier-blueprint"),
@ -207,6 +216,7 @@ url_manual_mapping = (
("bpy.types.spacesequenceeditor.show_region_hud*", "video_editing/sequencer/navigating.html#bpy-types-spacesequenceeditor-show-region-hud"),
("bpy.types.toolsettings.use_snap_grid_absolute*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-grid-absolute"),
("bpy.types.view3doverlay.show_face_orientation*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-show-face-orientation"),
("bpy.ops.object.blenderkit_material_thumbnail*", "addons/3d_view/blenderkit.html#bpy-ops-object-blenderkit-material-thumbnail"),
("bpy.ops.object.vertex_group_copy_to_selected*", "modeling/meshes/properties/vertex_groups/vertex_groups.html#bpy-ops-object-vertex-group-copy-to-selected"),
("bpy.ops.outliner.collection_duplicate_linked*", "editors/outliner/editing.html#bpy-ops-outliner-collection-duplicate-linked"),
("bpy.ops.view3d.edit_mesh_extrude_move_normal*", "modeling/meshes/editing/face/extrude_faces.html#bpy-ops-view3d-edit-mesh-extrude-move-normal"),
@ -243,6 +253,7 @@ url_manual_mapping = (
("bpy.types.fluiddomainsettings.timesteps_min*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-timesteps-min"),
("bpy.types.fluiddomainsettings.use_diffusion*", "physics/fluid/type/domain/liquid/diffusion.html#bpy-types-fluiddomainsettings-use-diffusion"),
("bpy.types.fluiddomainsettings.use_fractions*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-use-fractions"),
("bpy.types.fluiddomainsettings.use_viscosity*", "physics/fluid/type/domain/liquid/viscosity.html#bpy-types-fluiddomainsettings-use-viscosity"),
("bpy.types.fluidflowsettings.particle_system*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-particle-system"),
("bpy.types.fluidflowsettings.velocity_factor*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-velocity-factor"),
("bpy.types.fluidflowsettings.velocity_normal*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-velocity-normal"),
@ -277,6 +288,9 @@ url_manual_mapping = (
("bpy.types.fluidflowsettings.velocity_coord*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-velocity-coord"),
("bpy.types.fluidflowsettings.volume_density*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-volume-density"),
("bpy.types.materialgpencilstyle.show_stroke*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-show-stroke"),
("bpy.types.movietrackingcamera.focal_length*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-focal-length"),
("bpy.types.movietrackingcamera.pixel_aspect*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-pixel-aspect"),
("bpy.types.movietrackingcamera.sensor_width*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-sensor-width"),
("bpy.types.posebone.use_ik_rotation_control*", "animation/armatures/posing/bone_constraints/inverse_kinematics/introduction.html#bpy-types-posebone-use-ik-rotation-control"),
("bpy.types.scenegpencil.antialias_threshold*", "render/cycles/render_settings/grease_pencil.html#bpy-types-scenegpencil-antialias-threshold"),
("bpy.types.spaceuveditor.sticky_select_mode*", "editors/uv/selecting.html#bpy-types-spaceuveditor-sticky-select-mode"),
@ -320,6 +334,7 @@ url_manual_mapping = (
("bpy.types.spaceuveditor.show_pixel_coords*", "editors/uv/sidebar.html#bpy-types-spaceuveditor-show-pixel-coords"),
("bpy.types.spaceview3d.show_reconstruction*", "editors/3dview/display/overlays.html#bpy-types-spaceview3d-show-reconstruction"),
("bpy.types.toolsettings.gpencil_selectmode*", "grease_pencil/selecting.html#bpy-types-toolsettings-gpencil-selectmode"),
("bpy.types.toolsettings.use_auto_normalize*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-auto-normalize"),
("bpy.types.toolsettings.use_snap_translate*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-translate"),
("bpy.types.toolsettings.use_uv_select_sync*", "editors/uv/selecting.html#bpy-types-toolsettings-use-uv-select-sync"),
("bpy.ops.gpencil.active_frames_delete_all*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-active-frames-delete-all"),
@ -344,6 +359,8 @@ url_manual_mapping = (
("bpy.types.fluiddomainsettings.time_scale*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-time-scale"),
("bpy.types.fluidflowsettings.texture_size*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-texture-size"),
("bpy.types.fluidflowsettings.use_absolute*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-use-absolute"),
("bpy.types.geometrynodeattributerandomize*", "modeling/modifiers/nodes/attribute/attribute_randomize.html#bpy-types-geometrynodeattributerandomize"),
("bpy.types.geometrynodesubdivisionsurface*", "modeling/modifiers/nodes/mesh/subdivision_surface.html#bpy-types-geometrynodesubdivisionsurface"),
("bpy.types.imageformatsettings.color_mode*", "render/output/properties/output.html#bpy-types-imageformatsettings-color-mode"),
("bpy.types.linestyle*modifier_alongstroke*", "render/freestyle/parameter_editor/line_style/modifiers/color/along_stroke.html#bpy-types-linestyle-modifier-alongstroke"),
("bpy.types.linestyle*modifier_creaseangle*", "render/freestyle/parameter_editor/line_style/modifiers/color/crease_angle.html#bpy-types-linestyle-modifier-creaseangle"),
@ -351,12 +368,17 @@ url_manual_mapping = (
("bpy.types.materialgpencilstyle.mix_color*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-mix-color"),
("bpy.types.materialgpencilstyle.show_fill*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-show-fill"),
("bpy.types.mesh.use_mirror_vertex_group_x*", "sculpt_paint/weight_paint/tool_settings/symmetry.html#bpy-types-mesh-use-mirror-vertex-group-x"),
("bpy.types.movietrackingcamera.division_k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-division-k"),
("bpy.types.movietrackingobject.keyframe_a*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingobject-keyframe-a"),
("bpy.types.movietrackingobject.keyframe_b*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-types-movietrackingobject-keyframe-b"),
("bpy.types.rendersettings.use_compositing*", "render/output/properties/post_processing.html#bpy-types-rendersettings-use-compositing"),
("bpy.types.rendersettings.use_placeholder*", "render/output/properties/output.html#bpy-types-rendersettings-use-placeholder"),
("bpy.types.shadernodesubsurfacescattering*", "render/shader_nodes/shader/sss.html#bpy-types-shadernodesubsurfacescattering"),
("bpy.types.spacedopesheeteditor.auto_snap*", "editors/dope_sheet/editing.html#bpy-types-spacedopesheeteditor-auto-snap"),
("bpy.types.spacetexteditor.use_match_case*", "editors/text_editor.html#bpy-types-spacetexteditor-use-match-case"),
("bpy.types.spaceview3d.show_object_select*", "editors/3dview/display/visibility.html#bpy-types-spaceview3d-show-object-select"),
("bpy.types.toolsettings.use_lock_relative*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-lock-relative"),
("bpy.types.vertexpaint.use_group_restrict*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-vertexpaint-use-group-restrict"),
("bpy.types.volumedisplay.wireframe_detail*", "modeling/volumes/properties.html#bpy-types-volumedisplay-wireframe-detail"),
("bpy.ops.armature.rigify_add_bone_groups*", "addons/rigging/rigify/metarigs.html#bpy-ops-armature-rigify-add-bone-groups"),
("bpy.ops.object.assign_property_defaults*", "animation/armatures/posing/editing/apply.html#bpy-ops-object-assign-property-defaults"),
@ -386,6 +408,8 @@ url_manual_mapping = (
("bpy.types.layercollection.hide_viewport*", "editors/outliner/interface.html#bpy-types-layercollection-hide-viewport"),
("bpy.types.layercollection.indirect_only*", "editors/outliner/interface.html#bpy-types-layercollection-indirect-only"),
("bpy.types.material.use_sss_translucency*", "render/eevee/materials/settings.html#bpy-types-material-use-sss-translucency"),
("bpy.types.movietrackingcamera.principal*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-principal"),
("bpy.types.object.use_camera_lock_parent*", "scene_layout/object/properties/relations.html#bpy-types-object-use-camera-lock-parent"),
("bpy.types.rendersettings.pixel_aspect_x*", "render/output/properties/dimensions.html#bpy-types-rendersettings-pixel-aspect-x"),
("bpy.types.rendersettings.pixel_aspect_y*", "render/output/properties/dimensions.html#bpy-types-rendersettings-pixel-aspect-y"),
("bpy.types.rigidbodyconstraint.use_limit*", "physics/rigid_body/constraints/introduction.html#bpy-types-rigidbodyconstraint-use-limit"),
@ -401,6 +425,7 @@ url_manual_mapping = (
("bpy.types.vertexweightproximitymodifier*", "modeling/modifiers/modify/weight_proximity.html#bpy-types-vertexweightproximitymodifier"),
("bpy.types.view3doverlay.show_wireframes*", "editors/3dview/display/overlays.html#bpy-types-view3doverlay-show-wireframes"),
("bpy.ops.mesh.vertices_smooth_laplacian*", "modeling/meshes/editing/vertex/laplacian_smooth.html#bpy-ops-mesh-vertices-smooth-laplacian"),
("bpy.ops.view3d.blenderkit_set_category*", "addons/3d_view/blenderkit.html#bpy-ops-view3d-blenderkit-set-category"),
("bpy.types.armature.rigify_colors_index*", "addons/rigging/rigify/metarigs.html#bpy-types-armature-rigify-colors-index"),
("bpy.types.armature.rigify_theme_to_add*", "addons/rigging/rigify/metarigs.html#bpy-types-armature-rigify-theme-to-add"),
("bpy.types.brush.pose_smooth_iterations*", "sculpt_paint/sculpting/tools/pose.html#bpy-types-brush-pose-smooth-iterations"),
@ -410,6 +435,7 @@ url_manual_mapping = (
("bpy.types.compositornodedoubleedgemask*", "compositing/types/matte/double_edge_mask.html#bpy-types-compositornodedoubleedgemask"),
("bpy.types.fluiddomainsettings.clipping*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-clipping"),
("bpy.types.fluiddomainsettings.use_mesh*", "physics/fluid/type/domain/liquid/mesh.html#bpy-types-fluiddomainsettings-use-mesh"),
("bpy.types.geometrynodeattributecompare*", "modeling/modifiers/nodes/attribute/attribute_compare.html#bpy-types-geometrynodeattributecompare"),
("bpy.types.material.preview_render_type*", "render/materials/preview.html#bpy-types-material-preview-render-type"),
("bpy.types.materialgpencilstyle.pattern*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-pattern"),
("bpy.types.materialgpencilstyle.texture*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-texture"),
@ -449,8 +475,11 @@ url_manual_mapping = (
("bpy.types.fluiddomainsettings.gravity*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-gravity"),
("bpy.types.fluidflowsettings.flow_type*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-flow-type"),
("bpy.types.fluidflowsettings.subframes*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-subframes"),
("bpy.types.geometrynodepointdistribute*", "modeling/modifiers/nodes/point/point_distribute.html#bpy-types-geometrynodepointdistribute"),
("bpy.types.imagepaint.screen_grab_size*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-types-imagepaint-screen-grab-size"),
("bpy.types.linestyle*modifier_material*", "render/freestyle/parameter_editor/line_style/modifiers/color/material.html#bpy-types-linestyle-modifier-material"),
("bpy.types.movietrackingcamera.brown_k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-brown-k"),
("bpy.types.movietrackingcamera.brown_p*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-brown-p"),
("bpy.types.particlesettingstextureslot*", "physics/particles/texture_influence.html#bpy-types-particlesettingstextureslot"),
("bpy.types.posebone.ik_rotation_weight*", "animation/armatures/posing/bone_constraints/inverse_kinematics/introduction.html#bpy-types-posebone-ik-rotation-weight"),
("bpy.types.regionview3d.show_sync_view*", "editors/3dview/navigate/views.html#bpy-types-regionview3d-show-sync-view"),
@ -465,6 +494,7 @@ url_manual_mapping = (
("bpy.types.sequenceeditor.show_overlay*", "video_editing/preview/sidebar.html#bpy-types-sequenceeditor-show-overlay"),
("bpy.types.spacetexteditor.show_margin*", "editors/text_editor.html#bpy-types-spacetexteditor-show-margin"),
("bpy.types.spline.radius_interpolation*", "modeling/curves/properties/active_spline.html#bpy-types-spline-radius-interpolation"),
("bpy.types.toolsettings.use_multipaint*", "sculpt_paint/weight_paint/tool_settings/options.html#bpy-types-toolsettings-use-multipaint"),
("bpy.types.toolsettings.use_snap_scale*", "editors/3dview/controls/snapping.html#bpy-types-toolsettings-use-snap-scale"),
("bpy.types.toolsettings.uv_select_mode*", "editors/uv/selecting.html#bpy-types-toolsettings-uv-select-mode"),
("bpy.types.viewlayer.material_override*", "render/layers/layers.html#bpy-types-viewlayer-material-override"),
@ -472,6 +502,7 @@ url_manual_mapping = (
("bpy.ops.mesh.normals_make_consistent*", "modeling/meshes/editing/mesh/normals.html#bpy-ops-mesh-normals-make-consistent"),
("bpy.ops.mesh.offset_edge_loops_slide*", "modeling/meshes/editing/edge/offset_edge_slide.html#bpy-ops-mesh-offset-edge-loops-slide"),
("bpy.ops.object.duplicate_move_linked*", "scene_layout/object/editing/duplicate_linked.html#bpy-ops-object-duplicate-move-linked"),
("bpy.ops.object.parent_no_inverse_set*", "scene_layout/object/editing/parent.html#bpy-ops-object-parent-no-inverse-set"),
("bpy.ops.object.vertex_group_quantize*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-quantize"),
("bpy.ops.outliner.collection_instance*", "editors/outliner/editing.html#bpy-ops-outliner-collection-instance"),
("bpy.ops.sequencer.change_effect_type*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-change-effect-type"),
@ -494,6 +525,7 @@ url_manual_mapping = (
("bpy.types.gpencillayer.use_solo_mode*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-use-solo-mode"),
("bpy.types.greasepencil.use_multiedit*", "grease_pencil/multiframe.html#bpy-types-greasepencil-use-multiedit"),
("bpy.types.materialgpencilstyle.color*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-color"),
("bpy.types.movietrackingcamera.nuke_k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-nuke-k"),
("bpy.types.movietrackingstabilization*", "movie_clip/tracking/clip/sidebar/stabilization/index.html#bpy-types-movietrackingstabilization"),
("bpy.types.object.display_bounds_type*", "scene_layout/object/properties/display.html#bpy-types-object-display-bounds-type"),
("bpy.types.regionview3d.lock_rotation*", "editors/3dview/navigate/views.html#bpy-types-regionview3d-lock-rotation"),
@ -518,6 +550,7 @@ url_manual_mapping = (
("bpy.ops.outliner.collection_isolate*", "editors/outliner/editing.html#bpy-ops-outliner-collection-isolate"),
("bpy.ops.pose.visual_transform_apply*", "animation/armatures/posing/editing/apply.html#bpy-ops-pose-visual-transform-apply"),
("bpy.ops.sequencer.view_ghost_border*", "video_editing/preview/sidebar.html#bpy-ops-sequencer-view-ghost-border"),
("bpy.ops.view3d.blenderkit_asset_bar*", "addons/3d_view/blenderkit.html#bpy-ops-view3d-blenderkit-asset-bar"),
("bpy.types.animdata.action_influence*", "editors/nla/sidebar.html#bpy-types-animdata-action-influence"),
("bpy.types.armature.layers_protected*", "animation/armatures/properties/skeleton.html#bpy-types-armature-layers-protected"),
("bpy.types.brush.crease_pinch_factor*", "sculpt_paint/sculpting/tools/snake_hook.html#bpy-types-brush-crease-pinch-factor"),
@ -533,6 +566,10 @@ url_manual_mapping = (
("bpy.types.dynamicpaintbrushsettings*", "physics/dynamic_paint/brush.html#bpy-types-dynamicpaintbrushsettings"),
("bpy.types.fluiddomainsettings.alpha*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-alpha"),
("bpy.types.fluidflowsettings.density*", "physics/fluid/type/flow.html#bpy-types-fluidflowsettings-density"),
("bpy.types.geometrynodeattributefill*", "modeling/modifiers/nodes/attribute/attribute_fill.html#bpy-types-geometrynodeattributefill"),
("bpy.types.geometrynodeattributemath*", "modeling/modifiers/nodes/attribute/attribute_math.html#bpy-types-geometrynodeattributemath"),
("bpy.types.geometrynodepointinstance*", "modeling/modifiers/nodes/point/point_instance.html#bpy-types-geometrynodepointinstance"),
("bpy.types.geometrynodepointseparate*", "modeling/modifiers/nodes/point/point_separate.html#bpy-types-geometrynodepointseparate"),
("bpy.types.light.use_custom_distance*", "render/eevee/lighting.html#bpy-types-light-use-custom-distance"),
("bpy.types.materialgpencilstyle.flip*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-flip"),
("bpy.types.materialgpencilstyle.mode*", "grease_pencil/materials/grease_pencil_shader.html#bpy-types-materialgpencilstyle-mode"),
@ -596,6 +633,8 @@ url_manual_mapping = (
("bpy.types.cyclesvisibilitysettings*", "render/cycles/object_settings/object_data.html#bpy-types-cyclesvisibilitysettings"),
("bpy.types.fluiddomainsettings.beta*", "physics/fluid/type/domain/settings.html#bpy-types-fluiddomainsettings-beta"),
("bpy.types.fluidmodifier.fluid_type*", "physics/fluid/type/index.html#bpy-types-fluidmodifier-fluid-type"),
("bpy.types.functionnodefloatcompare*", "modeling/modifiers/nodes/utilities/float_compare.html#bpy-types-functionnodefloatcompare"),
("bpy.types.geometrynodejoingeometry*", "modeling/modifiers/nodes/geometry/join_geometry.html#bpy-types-geometrynodejoingeometry"),
("bpy.types.image.use_half_precision*", "editors/image/image_settings.html#bpy-types-image-use-half-precision"),
("bpy.types.imagepaint.interpolation*", "sculpt_paint/texture_paint/tool_settings/texture_slots.html#bpy-types-imagepaint-interpolation"),
("bpy.types.linestyle*modifier_noise*", "render/freestyle/parameter_editor/line_style/modifiers/color/noise.html#bpy-types-linestyle-modifier-noise"),
@ -615,6 +654,7 @@ url_manual_mapping = (
("bpy.types.vertexweighteditmodifier*", "modeling/modifiers/modify/weight_edit.html#bpy-types-vertexweighteditmodifier"),
("bpy.types.volumedisplay.slice_axis*", "modeling/volumes/properties.html#bpy-types-volumedisplay-slice-axis"),
("bpy.ops.anim.channels_clean_empty*", "editors/nla/editing.html#bpy-ops-anim-channels-clean-empty"),
("bpy.ops.clip.set_center_principal*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-ops-clip-set-center-principal"),
("bpy.ops.curve.match_texture_space*", "modeling/meshes/uv/uv_texture_spaces.html#bpy-ops-curve-match-texture-space"),
("bpy.ops.font.text_paste_from_file*", "modeling/texts/editing.html#bpy-ops-font-text-paste-from-file"),
("bpy.ops.gpencil.frame_clean_loose*", "grease_pencil/modes/edit/grease_pencil_menu.html#bpy-ops-gpencil-frame-clean-loose"),
@ -624,6 +664,7 @@ url_manual_mapping = (
("bpy.ops.object.vertex_group_clean*", "sculpt_paint/weight_paint/editing.html#bpy-ops-object-vertex-group-clean"),
("bpy.ops.preferences.theme_install*", "editors/preferences/themes.html#bpy-ops-preferences-theme-install"),
("bpy.ops.render.play-rendered-anim*", "render/output/animation_player.html#bpy-ops-render-play-rendered-anim"),
("bpy.ops.scene.blenderkit_download*", "addons/3d_view/blenderkit.html#bpy-ops-scene-blenderkit-download"),
("bpy.ops.sculpt.set_pivot_position*", "sculpt_paint/sculpting/editing/sculpt.html#bpy-ops-sculpt-set-pivot-position"),
("bpy.ops.sequencer.reassign_inputs*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-reassign-inputs"),
("bpy.ops.view3d.view_center_camera*", "editors/3dview/navigate/camera_view.html#bpy-ops-view3d-view-center-camera"),
@ -647,6 +688,8 @@ url_manual_mapping = (
("bpy.types.constraint.target_space*", "animation/constraints/interface/common.html#bpy-types-constraint-target-space"),
("bpy.types.curve.use_deform_bounds*", "modeling/curves/properties/shape.html#bpy-types-curve-use-deform-bounds"),
("bpy.types.freestylemodulesettings*", "render/freestyle/python.html#bpy-types-freestylemodulesettings"),
("bpy.types.functionnodebooleanmath*", "modeling/modifiers/nodes/utilities/boolean_math.html#bpy-types-functionnodebooleanmath"),
("bpy.types.geometrynodetriangulate*", "modeling/modifiers/nodes/mesh/triangulate.html#bpy-types-geometrynodetriangulate"),
("bpy.types.gpencillayer.blend_mode*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-blend-mode"),
("bpy.types.gpencillayer.mask_layer*", "grease_pencil/properties/layers.html#bpy-types-gpencillayer-mask-layer"),
("bpy.types.gpencilsculptguide.type*", "grease_pencil/modes/draw/guides.html#bpy-types-gpencilsculptguide-type"),
@ -693,6 +736,7 @@ url_manual_mapping = (
("bpy.ops.sculpt.detail_flood_fill*", "sculpt_paint/sculpting/tool_settings/dyntopo.html#bpy-ops-sculpt-detail-flood-fill"),
("bpy.ops.sequencer.duplicate_move*", "video_editing/sequencer/editing.html#bpy-ops-sequencer-duplicate-move"),
("bpy.ops.uv.average_islands_scale*", "modeling/meshes/uv/editing.html#bpy-ops-uv-average-islands-scale"),
("bpy.ops.view3d.blenderkit_search*", "addons/3d_view/blenderkit.html#bpy-ops-view3d-blenderkit-search"),
("bpy.types.armature.pose_position*", "animation/armatures/properties/skeleton.html#bpy-types-armature-pose-position"),
("bpy.types.brightcontrastmodifier*", "video_editing/sequencer/sidebar/modifiers.html#bpy-types-brightcontrastmodifier"),
("bpy.types.brush.cursor_color_add*", "sculpt_paint/brush/cursor.html#bpy-types-brush-cursor-color-add"),
@ -705,6 +749,7 @@ url_manual_mapping = (
("bpy.types.compositornodecurvergb*", "compositing/types/color/rgb_curves.html#bpy-types-compositornodecurvergb"),
("bpy.types.compositornodecurvevec*", "compositing/types/vector/vector_curves.html#bpy-types-compositornodecurvevec"),
("bpy.types.compositornodedisplace*", "compositing/types/distort/displace.html#bpy-types-compositornodedisplace"),
("bpy.types.compositornodeexposure*", "compositing/types/color/exposure.html#bpy-types-compositornodeexposure"),
("bpy.types.compositornodelensdist*", "compositing/types/distort/lens_distortion.html#bpy-types-compositornodelensdist"),
("bpy.types.compositornodemaprange*", "compositing/types/vector/map_range.html#bpy-types-compositornodemaprange"),
("bpy.types.compositornodemapvalue*", "compositing/types/vector/map_value.html#bpy-types-compositornodemapvalue"),
@ -720,6 +765,7 @@ url_manual_mapping = (
("bpy.types.curve.bevel_resolution*", "modeling/curves/properties/geometry.html#bpy-types-curve-bevel-resolution"),
("bpy.types.cyclesmaterialsettings*", "render/cycles/material_settings.html#bpy-types-cyclesmaterialsettings"),
("bpy.types.dopesheet.show_summary*", "editors/dope_sheet/introduction.html#bpy-types-dopesheet-show-summary"),
("bpy.types.geometrynodeobjectinfo*", "modeling/modifiers/nodes/input/object_info.html#bpy-types-geometrynodeobjectinfo"),
("bpy.types.imagepaint.use_occlude*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-types-imagepaint-use-occlude"),
("bpy.types.latticegpencilmodifier*", "grease_pencil/modifiers/deform/lattice.html#bpy-types-latticegpencilmodifier"),
("bpy.types.mesh.auto_smooth_angle*", "modeling/meshes/structure.html#bpy-types-mesh-auto-smooth-angle"),
@ -740,6 +786,7 @@ url_manual_mapping = (
("bpy.types.volumerender.step_size*", "modeling/volumes/properties.html#bpy-types-volumerender-step-size"),
("bpy.types.weightednormalmodifier*", "modeling/modifiers/modify/weighted_normal.html#bpy-types-weightednormalmodifier"),
("bpy.ops.armature.autoside_names*", "animation/armatures/bones/editing/naming.html#bpy-ops-armature-autoside-names"),
("bpy.ops.clip.create_plane_track*", "movie_clip/tracking/clip/toolbar/solve.html#bpy-ops-clip-create-plane-track"),
("bpy.ops.curve.spline_weight_set*", "modeling/curves/editing/other.html#bpy-ops-curve-spline-weight-set"),
("bpy.ops.gpencil.blank_frame_add*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-blank-frame-add"),
("bpy.ops.gpencil.frame_duplicate*", "grease_pencil/animation/tools.html#bpy-ops-gpencil-frame-duplicate"),
@ -794,11 +841,14 @@ url_manual_mapping = (
("bpy.types.dopesheet.filter_text*", "editors/graph_editor/channels.html#bpy-types-dopesheet-filter-text"),
("bpy.types.fluideffectorsettings*", "physics/fluid/type/effector.html#bpy-types-fluideffectorsettings"),
("bpy.types.followtrackconstraint*", "animation/constraints/motion_tracking/follow_track.html#bpy-types-followtrackconstraint"),
("bpy.types.geometrynodeedgesplit*", "modeling/modifiers/nodes/mesh/edge_split.html#bpy-types-geometrynodeedgesplit"),
("bpy.types.geometrynodetransform*", "modeling/modifiers/nodes/geometry/transform.html#bpy-types-geometrynodetransform"),
("bpy.types.gpencilsculptsettings*", "grease_pencil/properties/index.html#bpy-types-gpencilsculptsettings"),
("bpy.types.light.cutoff_distance*", "render/eevee/lighting.html#bpy-types-light-cutoff-distance"),
("bpy.types.lockedtrackconstraint*", "animation/constraints/tracking/locked_track.html#bpy-types-lockedtrackconstraint"),
("bpy.types.material.blend_method*", "render/eevee/materials/settings.html#bpy-types-material-blend-method"),
("bpy.types.mirrorgpencilmodifier*", "grease_pencil/modifiers/generate/mirror.html#bpy-types-mirrorgpencilmodifier"),
("bpy.types.movietrackingcamera.k*", "movie_clip/tracking/clip/sidebar/track/camera.html#bpy-types-movietrackingcamera-k"),
("bpy.types.offsetgpencilmodifier*", "grease_pencil/modifiers/deform/offset.html#bpy-types-offsetgpencilmodifier"),
("bpy.types.particlefluidsettings*", "physics/particles/emitter/physics/fluid.html#bpy-types-particlefluidsettings"),
("bpy.types.posebone.custom_shape*", "animation/armatures/bones/properties/display.html#bpy-types-posebone-custom-shape"),
@ -943,6 +993,7 @@ url_manual_mapping = (
("bpy.types.curve.use_map_taper*", "modeling/curves/properties/geometry.html#bpy-types-curve-use-map-taper"),
("bpy.types.cyclesworldsettings*", "render/cycles/world_settings.html#bpy-types-cyclesworldsettings"),
("bpy.types.fluiddomainsettings*", "physics/fluid/type/domain/index.html#bpy-types-fluiddomainsettings"),
("bpy.types.geometrynodeboolean*", "modeling/modifiers/nodes/mesh/boolean.html#bpy-types-geometrynodeboolean"),
("bpy.types.hookgpencilmodifier*", "grease_pencil/modifiers/deform/hook.html#bpy-types-hookgpencilmodifier"),
("bpy.types.imageformatsettings*", "files/media/image_formats.html#bpy-types-imageformatsettings"),
("bpy.types.kinematicconstraint*", "animation/constraints/tracking/ik_solver.html#bpy-types-kinematicconstraint"),
@ -979,7 +1030,9 @@ url_manual_mapping = (
("bpy.ops.anim.keyframe_delete*", "animation/keyframes/editing.html#bpy-ops-anim-keyframe-delete"),
("bpy.ops.anim.keyframe_insert*", "animation/keyframes/editing.html#bpy-ops-anim-keyframe-insert"),
("bpy.ops.armature.bone_layers*", "animation/armatures/bones/editing/change_layers.html#bpy-ops-armature-bone-layers"),
("bpy.ops.clip.detect_features*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-detect-features"),
("bpy.ops.clip.add_marker_move*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-add-marker-move"),
("bpy.ops.clip.bundles_to_mesh*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-bundles-to-mesh"),
("bpy.ops.clip.detect_features*", "movie_clip/tracking/clip/toolbar/track.html#bpy-ops-clip-detect-features"),
("bpy.ops.console.autocomplete*", "editors/python_console.html#bpy-ops-console-autocomplete"),
("bpy.ops.curve.dissolve_verts*", "modeling/curves/editing/curve.html#bpy-ops-curve-dissolve-verts"),
("bpy.ops.curve.duplicate_move*", "modeling/curves/editing/curve.html#bpy-ops-curve-duplicate-move"),
@ -1011,6 +1064,7 @@ url_manual_mapping = (
("bpy.ops.transform.edge_slide*", "modeling/meshes/editing/edge/edge_slide.html#bpy-ops-transform-edge-slide"),
("bpy.ops.transform.vert_slide*", "modeling/meshes/editing/vertex/slide_vertices.html#bpy-ops-transform-vert-slide"),
("bpy.ops.uv.project_from_view*", "modeling/meshes/editing/uv.html#bpy-ops-uv-project-from-view"),
("bpy.ops.wm.blenderkit_logout*", "addons/3d_view/blenderkit.html#bpy-ops-wm-blenderkit-logout"),
("bpy.ops.wm.memory_statistics*", "advanced/operators.html#bpy-ops-wm-memory-statistics"),
("bpy.types.adjustmentsequence*", "video_editing/sequencer/strips/adjustment.html#bpy-types-adjustmentsequence"),
("bpy.types.alphaundersequence*", "video_editing/sequencer/strips/effects/alpha_over_under_overdrop.html#bpy-types-alphaundersequence"),
@ -1041,6 +1095,7 @@ url_manual_mapping = (
("bpy.types.object.empty_image*", "modeling/empties.html#bpy-types-object-empty-image"),
("bpy.types.object.hide_render*", "scene_layout/object/properties/visibility.html#bpy-types-object-hide-render"),
("bpy.types.object.hide_select*", "scene_layout/object/properties/visibility.html#bpy-types-object-hide-select"),
("bpy.types.object.parent_type*", "scene_layout/object/properties/relations.html#bpy-types-object-parent-type"),
("bpy.types.object.show_bounds*", "scene_layout/object/properties/display.html#bpy-types-object-show-bounds"),
("bpy.types.rendersettings.fps*", "render/output/properties/dimensions.html#bpy-types-rendersettings-fps"),
("bpy.types.scene.audio_volume*", "scene_layout/scene/properties.html#bpy-types-scene-audio-volume"),
@ -1068,6 +1123,7 @@ url_manual_mapping = (
("bpy.types.volumerender.space*", "modeling/volumes/properties.html#bpy-types-volumerender-space"),
("bpy.ops.anim.keyframe_clear*", "animation/keyframes/editing.html#bpy-ops-anim-keyframe-clear"),
("bpy.ops.armature.flip_names*", "animation/armatures/bones/editing/naming.html#bpy-ops-armature-flip-names"),
("bpy.ops.clip.track_to_empty*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-track-to-empty"),
("bpy.ops.curve.cyclic_toggle*", "modeling/curves/editing/curve.html#bpy-ops-curve-cyclic-toggle"),
("bpy.ops.curve.primitive*add*", "modeling/curves/primitives.html#bpy-ops-curve-primitive-add"),
("bpy.ops.curve.smooth_radius*", "modeling/curves/editing/control_points.html#bpy-ops-curve-smooth-radius"),
@ -1092,6 +1148,7 @@ url_manual_mapping = (
("bpy.ops.mesh.smooth_normals*", "modeling/meshes/editing/mesh/normals.html#bpy-ops-mesh-smooth-normals"),
("bpy.ops.nla.action_pushdown*", "editors/nla/tracks.html#bpy-ops-nla-action-pushdown"),
("bpy.ops.nla.tweakmode_enter*", "editors/nla/editing.html#bpy-ops-nla-tweakmode-enter"),
("bpy.ops.object.origin_clear*", "scene_layout/object/editing/clear.html#bpy-ops-object-origin-clear"),
("bpy.ops.object.parent_clear*", "scene_layout/object/editing/parent.html#bpy-ops-object-parent-clear"),
("bpy.ops.object.shade_smooth*", "scene_layout/object/editing/shading.html#bpy-ops-object-shade-smooth"),
("bpy.ops.object.voxel_remesh*", "modeling/meshes/retopology.html#bpy-ops-object-voxel-remesh"),
@ -1108,6 +1165,7 @@ url_manual_mapping = (
("bpy.ops.uv.cylinder_project*", "modeling/meshes/editing/uv.html#bpy-ops-uv-cylinder-project"),
("bpy.ops.uv.minimize_stretch*", "modeling/meshes/uv/editing.html#bpy-ops-uv-minimize-stretch"),
("bpy.ops.uv.select_edge_ring*", "editors/uv/selecting.html#bpy-ops-uv-select-edge-ring"),
("bpy.ops.wm.blenderkit_login*", "addons/3d_view/blenderkit.html#bpy-ops-wm-blenderkit-login"),
("bpy.types.alphaoversequence*", "video_editing/sequencer/strips/effects/alpha_over_under_overdrop.html#bpy-types-alphaoversequence"),
("bpy.types.armatureeditbones*", "animation/armatures/bones/editing/index.html#bpy-types-armatureeditbones"),
("bpy.types.brush.pose_offset*", "sculpt_paint/sculpting/tools/pose.html#bpy-types-brush-pose-offset"),
@ -1135,6 +1193,7 @@ url_manual_mapping = (
("bpy.types.meshcachemodifier*", "modeling/modifiers/modify/mesh_cache.html#bpy-types-meshcachemodifier"),
("bpy.types.movieclipsequence*", "video_editing/sequencer/strips/clip_mask.html#bpy-types-movieclipsequence"),
("bpy.types.object.dimensions*", "scene_layout/object/properties/transforms.html#bpy-types-object-dimensions"),
("bpy.types.object.pass_index*", "scene_layout/object/properties/relations.html#bpy-types-object-pass-index"),
("bpy.types.object.track_axis*", "scene_layout/object/properties/relations.html#bpy-types-object-track-axis"),
("bpy.types.pose.use_mirror_x*", "animation/armatures/posing/tool_settings.html#bpy-types-pose-use-mirror-x"),
("bpy.types.preferencessystem*", "editors/preferences/system.html#bpy-types-preferencessystem"),
@ -1242,6 +1301,9 @@ url_manual_mapping = (
("bpy.types.texturenodegroup*", "editors/texture_node/types/groups.html#bpy-types-texturenodegroup"),
("bpy.types.texturenodeimage*", "editors/texture_node/types/input/image.html#bpy-types-texturenodeimage"),
("bpy.types.viewlayer.use_ao*", "render/layers/layers.html#bpy-types-viewlayer-use-ao"),
("bpy.ops.clip.clean_tracks*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-clean-tracks"),
("bpy.ops.clip.delete_track*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-delete-track"),
("bpy.ops.clip.solve_camera*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-solve-camera"),
("bpy.ops.curve.smooth_tilt*", "modeling/curves/editing/control_points.html#bpy-ops-curve-smooth-tilt"),
("bpy.ops.fluid.bake_guides*", "physics/fluid/type/domain/guides.html#bpy-ops-fluid-bake-guides"),
("bpy.ops.fluid.free_guides*", "physics/fluid/type/domain/guides.html#bpy-ops-fluid-free-guides"),
@ -1312,6 +1374,7 @@ url_manual_mapping = (
("bpy.types.subsurfmodifier*", "modeling/modifiers/generate/subdivision_surface.html#bpy-types-subsurfmodifier"),
("bpy.types.texturenodemath*", "editors/texture_node/types/converter/math.html#bpy-types-texturenodemath"),
("bpy.types.volume.filepath*", "modeling/volumes/properties.html#bpy-types-volume-filepath"),
("bpy.ops.clip.join_tracks*", "movie_clip/tracking/clip/editing/track.html#bpy-ops-clip-join-tracks"),
("bpy.ops.curve.select_row*", "modeling/surfaces/selecting.html#bpy-ops-curve-select-row"),
("bpy.ops.curve.tilt_clear*", "modeling/curves/editing/control_points.html#bpy-ops-curve-tilt-clear"),
("bpy.ops.curve.vertex_add*", "modeling/curves/editing/other.html#bpy-ops-curve-vertex-add"),
@ -1373,6 +1436,7 @@ url_manual_mapping = (
("bpy.ops.*.select_circle*", "interface/selecting.html#bpy-ops-select-circle"),
("bpy.ops.anim.keying_set*", "animation/keyframes/keying_sets.html#bpy-ops-anim-keying-set"),
("bpy.ops.armature.delete*", "animation/armatures/bones/editing/delete.html#bpy-ops-armature-delete"),
("bpy.ops.clip.set_origin*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-set-origin"),
("bpy.ops.curve.subdivide*", "modeling/curves/editing/segments.html#bpy-ops-curve-subdivide"),
("bpy.ops.ed.undo_history*", "interface/undo_redo.html#bpy-ops-ed-undo-history"),
("bpy.ops.fluid.bake_data*", "physics/fluid/type/domain/settings.html#bpy-ops-fluid-bake-data"),
@ -1427,6 +1491,7 @@ url_manual_mapping = (
("bpy.types.movietracking*", "movie_clip/tracking/index.html#bpy-types-movietracking"),
("bpy.types.nlastrip.mute*", "editors/nla/sidebar.html#bpy-types-nlastrip-mute"),
("bpy.types.nlastrip.name*", "editors/nla/sidebar.html#bpy-types-nlastrip-name"),
("bpy.types.nodesmodifier*", "modeling/modifiers/generate/geometry_nodes.html#bpy-types-nodesmodifier"),
("bpy.types.object.parent*", "scene_layout/object/editing/parent.html#bpy-types-object-parent"),
("bpy.types.oceanmodifier*", "modeling/modifiers/physics/ocean.html#bpy-types-oceanmodifier"),
("bpy.types.particlebrush*", "physics/particles/mode.html#bpy-types-particlebrush"),
@ -1446,6 +1511,8 @@ url_manual_mapping = (
("bpy.types.volumedisplay*", "modeling/volumes/properties.html#bpy-types-volumedisplay"),
("bpy.types.windowmanager*", "interface/index.html#bpy-types-windowmanager"),
("bpy.ops.*.select_lasso*", "interface/selecting.html#bpy-ops-select-lasso"),
("bpy.ops.clip.set_plane*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-set-plane"),
("bpy.ops.clip.set_scale*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-set-scale"),
("bpy.ops.curve.decimate*", "modeling/curves/editing/curve.html#bpy-ops-curve-decimate"),
("bpy.ops.curve.separate*", "modeling/curves/editing/curve.html#bpy-ops-curve-separate"),
("bpy.ops.fluid.bake_all*", "physics/fluid/type/domain/cache.html#bpy-ops-fluid-bake-all"),
@ -1511,6 +1578,8 @@ url_manual_mapping = (
("bpy.types.wavemodifier*", "modeling/modifiers/deform/wave.html#bpy-types-wavemodifier"),
("bpy.types.weldmodifier*", "modeling/modifiers/generate/weld.html#bpy-types-weldmodifier"),
("bpy.types.wipesequence*", "video_editing/sequencer/strips/transitions/wipe.html#bpy-types-wipesequence"),
("bpy.ops.clip.prefetch*", "movie_clip/tracking/clip/editing/clip.html#bpy-ops-clip-prefetch"),
("bpy.ops.clip.set_axis*", "movie_clip/tracking/clip/editing/reconstruction.html#bpy-ops-clip-set-axis"),
("bpy.ops.gpencil.paste*", "grease_pencil/modes/edit/grease_pencil_menu.html#bpy-ops-gpencil-paste"),
("bpy.ops.image.project*", "sculpt_paint/texture_paint/tool_settings/options.html#bpy-ops-image-project"),
("bpy.ops.mesh.decimate*", "modeling/meshes/editing/mesh/cleanup.html#bpy-ops-mesh-decimate"),
@ -1580,6 +1649,7 @@ url_manual_mapping = (
("bpy.types.renderview*", "render/output/properties/stereoscopy/index.html#bpy-types-renderview"),
("bpy.types.sceneeevee*", "render/eevee/index.html#bpy-types-sceneeevee"),
("bpy.types.vectorfont*", "modeling/texts/index.html#bpy-types-vectorfont"),
("bpy.ops.clip.reload*", "movie_clip/tracking/clip/editing/clip.html#bpy-ops-clip-reload"),
("bpy.ops.curve.split*", "modeling/curves/editing/curve.html#bpy-ops-curve-split"),
("bpy.ops.graph.clean*", "editors/graph_editor/fcurves/editing.html#bpy-ops-graph-clean"),
("bpy.ops.graph.paste*", "editors/graph_editor/fcurves/editing.html#bpy-ops-graph-paste"),
@ -1593,6 +1663,7 @@ url_manual_mapping = (
("bpy.ops.uv.rip_move*", "modeling/meshes/uv/tools/rip.html#bpy-ops-uv-rip-move"),
("bpy.ops.view3d.snap*", "scene_layout/object/editing/snap.html#bpy-ops-view3d-snap"),
("bpy.ops.view3d.zoom*", "editors/3dview/navigate/navigation.html#bpy-ops-view3d-zoom"),
("bpy.ops.wm.url_open*", "addons/3d_view/blenderkit.html#bpy-ops-wm-url-open"),
("bpy.types.*texspace*", "modeling/meshes/uv/uv_texture_spaces.html#bpy-types-texspace"),
("bpy.types.arealight*", "render/lights/light_object.html#bpy-types-arealight"),
("bpy.types.blenddata*", "files/data_blocks.html#bpy-types-blenddata"),
@ -1647,6 +1718,7 @@ url_manual_mapping = (
("bpy.types.shapekey*", "animation/shape_keys/index.html#bpy-types-shapekey"),
("bpy.types.spacenla*", "editors/nla/index.html#bpy-types-spacenla"),
("bpy.types.sunlight*", "render/lights/light_object.html#bpy-types-sunlight"),
("bpy.ops.clip.open*", "movie_clip/tracking/clip/editing/clip.html#bpy-ops-clip-open"),
("bpy.ops.mesh.fill*", "modeling/meshes/editing/face/fill.html#bpy-ops-mesh-fill"),
("bpy.ops.mesh.poke*", "modeling/meshes/editing/face/poke_faces.html#bpy-ops-mesh-poke"),
("bpy.ops.mesh.spin*", "modeling/meshes/tools/spin.html#bpy-ops-mesh-spin"),

View File

@ -69,7 +69,7 @@ class NewGeometryNodesModifier(bpy.types.Operator):
class NewGeometryNodeTreeAssign(bpy.types.Operator):
"""Create a new geometry node group and assign it the the active modifier"""
"""Create a new geometry node group and assign it to the active modifier"""
bl_idname = "node.new_geometry_node_group_assign"
bl_label = "Assign New Geometry Node Group"

View File

@ -59,7 +59,7 @@ class DATA_PT_empty(DataButtonsPanel, Panel):
col.prop(ob, "show_empty_image_perspective", text="Perspective")
col.prop(ob, "show_empty_image_only_axis_aligned", text="Only Axis Aligned")
col = layout.column(align=False, heading="Transparency")
col = layout.column(align=False, heading="Opacity")
col.use_property_decorate = False
row = col.row(align=True)
sub = row.row(align=True)

View File

@ -807,16 +807,19 @@ class CLIP_PT_track_settings(CLIP_PT_tracking_panel, Panel):
layout.use_property_decorate = False
clip = context.space_data.clip
active = clip.tracking.tracks.active
if not active:
layout.active = False
layout.label(text="No active track")
return
col = layout.column()
col.prop(active, "motion_model")
col.prop(active, "pattern_match", text="Match")
active = clip.tracking.tracks.active
if active:
col.prop(active, "motion_model")
col.prop(active, "pattern_match", text="Match")
col.prop(active, "use_brute")
col.prop(active, "use_normalization")
col.prop(active, "use_brute")
col.prop(active, "use_normalization")
class CLIP_PT_track_settings_extras(CLIP_PT_tracking_panel, Panel):
@ -827,6 +830,12 @@ class CLIP_PT_track_settings_extras(CLIP_PT_tracking_panel, Panel):
bl_parent_id = 'CLIP_PT_track_settings'
bl_options = {'DEFAULT_CLOSED'}
@classmethod
def poll(cls, context):
clip = context.space_data.clip
return clip.tracking.tracks.active
def draw(self, context):
layout = self.layout
layout.use_property_split = True

View File

@ -5478,12 +5478,12 @@ class VIEW3D_PT_view3d_lock(Panel):
view, "lock_bone", lock_object.data,
"edit_bones" if lock_object.mode == 'EDIT'
else "bones",
text="",
text="Bone",
)
else:
subcol = sub.column(heading="Lock")
subcol.prop(view, "lock_cursor", text="To 3D Cursor")
col = layout.column(heading="Lock", align=True)
if not lock_object:
col.prop(view, "lock_cursor", text="To 3D Cursor")
col.prop(view, "lock_camera", text="Camera to View")

View File

@ -14,13 +14,12 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __BKE_ASSET_H__
#define __BKE_ASSET_H__
/** \file
* \ingroup bke
*/
#pragma once
#include "BLI_utildefines.h"
#ifdef __cplusplus
@ -55,5 +54,3 @@ void BKE_asset_metadata_read(struct BlendDataReader *reader, struct AssetMetaDat
#ifdef __cplusplus
}
#endif
#endif /* __BKE_ASSET_H__ */

View File

@ -69,9 +69,6 @@ void BKE_brush_gpencil_weight_presets(struct Main *bmain,
const bool reset);
void BKE_gpencil_brush_preset_set(struct Main *bmain, struct Brush *brush, const short type);
/* image icon function */
struct ImBuf *get_brush_icon(struct Brush *brush);
/* jitter */
void BKE_brush_jitter_pos(const struct Scene *scene,
struct Brush *brush,

View File

@ -24,19 +24,30 @@
#pragma once
#include "BLI_sys_types.h"
#include "DNA_layer_types.h"
#ifdef __cplusplus
extern "C" {
#endif
struct Main;
struct CryptomatteSession;
struct Material;
struct ID;
struct Main;
struct Object;
struct RenderResult;
struct CryptomatteSession *BKE_cryptomatte_init(void);
void BKE_cryptomatte_finish(struct CryptomatteSession *session);
void BKE_cryptomatte_free(struct CryptomatteSession *session);
uint32_t BKE_cryptomatte_hash(const char *name, int name_len);
uint32_t BKE_cryptomatte_object_hash(const struct Object *object);
uint32_t BKE_cryptomatte_material_hash(const struct Material *material);
uint32_t BKE_cryptomatte_asset_hash(const struct Object *object);
uint32_t BKE_cryptomatte_object_hash(struct CryptomatteSession *session,
const struct Object *object);
uint32_t BKE_cryptomatte_material_hash(struct CryptomatteSession *session,
const struct Material *material);
uint32_t BKE_cryptomatte_asset_hash(struct CryptomatteSession *session,
const struct Object *object);
float BKE_cryptomatte_hash_to_float(uint32_t cryptomatte_hash);
char *BKE_cryptomatte_entries_to_matte_id(struct NodeCryptomatte *node_storage);
@ -44,6 +55,12 @@ void BKE_cryptomatte_matte_id_to_entries(const struct Main *bmain,
struct NodeCryptomatte *node_storage,
const char *matte_id);
void BKE_cryptomatte_store_metadata(struct CryptomatteSession *session,
struct RenderResult *render_result,
const ViewLayer *view_layer,
eViewLayerCryptomatteFlags cryptomatte_layer,
const char *cryptomatte_layer_name);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -23,27 +23,30 @@
* \ingroup bke
*/
#include "BLI_utildefines.h"
#ifdef __cplusplus
extern "C" {
#endif
struct Main;
struct Mesh;
struct MirrorModifierData;
struct ModifierEvalContext;
struct Object;
struct Mesh *BKE_mesh_mirror_bisect_on_mirror_plane(struct MirrorModifierData *mmd,
const struct Mesh *mesh,
int axis,
const float plane_co[3],
float plane_no[3]);
struct Mesh *BKE_mesh_mirror_bisect_on_mirror_plane_for_modifier(struct MirrorModifierData *mmd,
const struct Mesh *mesh,
int axis,
const float plane_co[3],
float plane_no[3]);
struct Mesh *BKE_mesh_mirror_apply_mirror_on_axis(struct MirrorModifierData *mmd,
const struct ModifierEvalContext *UNUSED(ctx),
struct Object *ob,
const struct Mesh *mesh,
int axis);
void BKE_mesh_mirror_apply_mirror_on_axis(struct Main *bmain,
struct Mesh *mesh,
const int axis,
const float dist);
struct Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(struct MirrorModifierData *mmd,
struct Object *ob,
const struct Mesh *mesh,
int axis);
#ifdef __cplusplus
}

View File

@ -40,9 +40,9 @@ set(INC
../sequencer
../shader_fx
../simulation
../../../intern/eigen
../../../intern/ghost
../../../intern/glew-mx
../../../intern/eigen
../../../intern/guardedalloc
../../../intern/iksolver/extern
../../../intern/atomic
@ -272,10 +272,10 @@ set(SRC
BKE_animsys.h
BKE_appdir.h
BKE_armature.h
BKE_asset.h
BKE_attribute.h
BKE_attribute_access.hh
BKE_autoexec.h
BKE_asset.h
BKE_blender.h
BKE_blender_copybuffer.h
BKE_blender_undo.h
@ -354,8 +354,8 @@ set(SRC
BKE_mball.h
BKE_mball_tessellate.h
BKE_mesh.h
BKE_mesh_iterators.h
BKE_mesh_fair.h
BKE_mesh_iterators.h
BKE_mesh_mapping.h
BKE_mesh_mirror.h
BKE_mesh_remap.h

View File

@ -1748,12 +1748,12 @@ static void editbmesh_calc_modifiers(struct Depsgraph *depsgraph,
if (!BKE_mesh_runtime_ensure_edit_data(me_orig)) {
BKE_mesh_runtime_reset_edit_data(me_orig);
}
me_orig->runtime.edit_data->vertexCos = (float(*)[3])MEM_dupallocN(deformed_verts);
me_orig->runtime.edit_data->vertexCos = (const float(*)[3])MEM_dupallocN(deformed_verts);
}
mesh_cage = BKE_mesh_wrapper_from_editmesh_with_coords(
em_input,
&final_datamask,
deformed_verts ? (float(*)[3])MEM_dupallocN(deformed_verts) : nullptr,
deformed_verts ? (const float(*)[3])MEM_dupallocN(deformed_verts) : nullptr,
mesh_input);
}
}
@ -2263,9 +2263,9 @@ void DM_calc_loop_tangents(DerivedMesh *dm,
calc_active_tangent,
tangent_names,
tangent_names_len,
(float(*)[3])CustomData_get_layer(&dm->polyData, CD_NORMAL),
(float(*)[3])dm->getLoopDataArray(dm, CD_NORMAL),
(float(*)[3])dm->getVertDataArray(dm, CD_ORCO), /* may be nullptr */
(const float(*)[3])CustomData_get_layer(&dm->polyData, CD_NORMAL),
(const float(*)[3])dm->getLoopDataArray(dm, CD_NORMAL),
(const float(*)[3])dm->getVertDataArray(dm, CD_ORCO), /* may be nullptr */
/* result */
&dm->loopData,
dm->getNumLoops(dm),

View File

@ -987,7 +987,7 @@ static const int app_template_directory_id[2] = {
bool BKE_appdir_app_template_any(void)
{
char temp_dir[FILE_MAX];
for (int i = 0; i < 2; i++) {
for (int i = 0; i < ARRAY_SIZE(app_template_directory_id); i++) {
if (BKE_appdir_folder_id_ex(app_template_directory_id[i],
app_template_directory_search[i],
temp_dir,
@ -1000,7 +1000,7 @@ bool BKE_appdir_app_template_any(void)
bool BKE_appdir_app_template_id_search(const char *app_template, char *path, size_t path_len)
{
for (int i = 0; i < 2; i++) {
for (int i = 0; i < ARRAY_SIZE(app_template_directory_id); i++) {
char subdir[FILE_MAX];
BLI_join_dirfile(subdir, sizeof(subdir), app_template_directory_search[i], app_template);
if (BKE_appdir_folder_id_ex(app_template_directory_id[i], subdir, path, path_len)) {
@ -1014,7 +1014,7 @@ bool BKE_appdir_app_template_has_userpref(const char *app_template)
{
/* Test if app template provides a `userpref.blend`.
* If not, we will share user preferences with the rest of Blender. */
if (!app_template && app_template[0]) {
if (app_template[0] == '\0') {
return false;
}
@ -1034,7 +1034,7 @@ void BKE_appdir_app_templates(ListBase *templates)
{
BLI_listbase_clear(templates);
for (int i = 0; i < 2; i++) {
for (int i = 0; i < ARRAY_SIZE(app_template_directory_id); i++) {
char subdir[FILE_MAX];
if (!BKE_appdir_folder_id_ex(app_template_directory_id[i],
app_template_directory_search[i],

View File

@ -1926,7 +1926,7 @@ void BKE_pchan_rot_to_mat3(const bPoseChannel *pchan, float r_mat[3][3])
{
/* rotations may either be quats, eulers (with various rotation orders), or axis-angle */
if (pchan->rotmode > 0) {
/* euler rotations (will cause gimble lock,
/* Euler rotations (will cause gimbal lock,
* but this can be alleviated a bit with rotation orders) */
eulO_to_mat3(r_mat, pchan->eul, pchan->rotmode);
}

View File

@ -1788,7 +1788,7 @@ static void layer_collection_flags_restore_recursive(LayerCollection *layer_coll
/* There should be a flag struct for every layer collection. */
BLI_assert(BLI_listbase_count(&layer_collection->layer_collections) ==
BLI_listbase_count(&flag->children));
/* The flag and the the layer collection should actually correspond. */
/* The flag and the layer collection should actually correspond. */
BLI_assert(flag->collection == layer_collection->collection);
LayerCollectionFlag *child_flag = flag->children.first;

View File

@ -22,8 +22,10 @@
*/
#include "BKE_cryptomatte.h"
#include "BKE_image.h"
#include "BKE_main.h"
#include "DNA_layer_types.h"
#include "DNA_material_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
@ -32,48 +34,142 @@
#include "BLI_dynstr.h"
#include "BLI_hash_mm3.h"
#include "BLI_listbase.h"
#include "BLI_set.hh"
#include "BLI_string.h"
#include "MEM_guardedalloc.h"
#include <cstring>
#include <iomanip>
#include <sstream>
#include <string>
static uint32_t cryptomatte_hash(const ID *id)
enum CryptomatteLayerState {
EMPTY,
FILLED,
CLOSED,
};
struct CryptomatteLayer {
CryptomatteLayerState state = CryptomatteLayerState::EMPTY;
blender::Set<std::string> names;
std::stringstream manifest;
#ifdef WITH_CXX_GUARDEDALLOC
MEM_CXX_CLASS_ALLOC_FUNCS("cryptomatte:CryptomatteLayer")
#endif
void add_hash(std::string name, uint32_t cryptomatte_hash)
{
BLI_assert(state != CryptomatteLayerState::CLOSED);
const bool first_item = names.is_empty();
if (!names.add(name)) {
return;
}
if (first_item) {
state = CryptomatteLayerState::FILLED;
manifest << "{";
}
else {
manifest << ",";
}
manifest << quoted(name) << ":\"";
manifest << std::setfill('0') << std::setw(sizeof(uint32_t) * 2) << std::hex
<< cryptomatte_hash;
manifest << "\"";
}
void close_manifest()
{
BLI_assert(state != CryptomatteLayerState::CLOSED);
if (state == CryptomatteLayerState::FILLED) {
manifest << "}";
}
state = CryptomatteLayerState::CLOSED;
}
std::string manifest_get_string()
{
BLI_assert(state == CryptomatteLayerState::CLOSED);
return manifest.str();
}
};
struct CryptomatteSession {
CryptomatteLayer objects;
CryptomatteLayer assets;
CryptomatteLayer materials;
#ifdef WITH_CXX_GUARDEDALLOC
MEM_CXX_CLASS_ALLOC_FUNCS("cryptomatte:CryptomatteSession")
#endif
void finish()
{
objects.close_manifest();
materials.close_manifest();
assets.close_manifest();
}
};
CryptomatteSession *BKE_cryptomatte_init(void)
{
const char *name = &id->name[2];
const int name_len = BLI_strnlen(name, MAX_NAME);
uint32_t cryptohash_int = BKE_cryptomatte_hash(name, name_len);
return cryptohash_int;
CryptomatteSession *session = new CryptomatteSession();
return session;
}
uint32_t BKE_cryptomatte_hash(const char *name, int name_len)
void BKE_cryptomatte_finish(CryptomatteSession *session)
{
BLI_assert(session != nullptr);
session->finish();
}
void BKE_cryptomatte_free(CryptomatteSession *session)
{
BLI_assert(session != nullptr);
delete session;
}
uint32_t BKE_cryptomatte_hash(const char *name, const int name_len)
{
uint32_t cryptohash_int = BLI_hash_mm3((const unsigned char *)name, name_len, 0);
return cryptohash_int;
}
uint32_t BKE_cryptomatte_object_hash(const Object *object)
static uint32_t cryptomatte_hash(CryptomatteLayer *layer, const ID *id)
{
return cryptomatte_hash(&object->id);
const char *name = &id->name[2];
const int name_len = BLI_strnlen(name, MAX_NAME - 2);
uint32_t cryptohash_int = BKE_cryptomatte_hash(name, name_len);
if (layer != nullptr) {
layer->add_hash(std::string(name, name_len), cryptohash_int);
}
return cryptohash_int;
}
uint32_t BKE_cryptomatte_material_hash(const Material *material)
uint32_t BKE_cryptomatte_object_hash(CryptomatteSession *session, const Object *object)
{
return cryptomatte_hash(&session->objects, &object->id);
}
uint32_t BKE_cryptomatte_material_hash(CryptomatteSession *session, const Material *material)
{
if (material == nullptr) {
return 0.0f;
}
return cryptomatte_hash(&material->id);
return cryptomatte_hash(&session->materials, &material->id);
}
uint32_t BKE_cryptomatte_asset_hash(const Object *object)
uint32_t BKE_cryptomatte_asset_hash(CryptomatteSession *session, const Object *object)
{
const Object *asset_object = object;
while (asset_object->parent != nullptr) {
asset_object = asset_object->parent;
}
return cryptomatte_hash(&asset_object->id);
return cryptomatte_hash(&session->assets, &asset_object->id);
}
/* Convert a cryptomatte hash to a float.
@ -187,4 +283,64 @@ void BKE_cryptomatte_matte_id_to_entries(const Main *bmain,
BLI_addtail(&node_storage->entries, entry);
}
}
}
}
static std::string cryptomatte_determine_name(const ViewLayer *view_layer,
const std::string cryptomatte_layer_name)
{
std::stringstream stream;
const size_t view_layer_name_len = BLI_strnlen(view_layer->name, sizeof(view_layer->name));
stream << std::string(view_layer->name, view_layer_name_len) << "." << cryptomatte_layer_name;
return stream.str();
}
static uint32_t cryptomatte_determine_identifier(const std::string name)
{
return BLI_hash_mm3(reinterpret_cast<const unsigned char *>(name.c_str()), name.length(), 0);
}
static std::string cryptomatte_determine_prefix(const std::string name)
{
std::stringstream stream;
const uint32_t render_pass_identifier = cryptomatte_determine_identifier(name);
stream << "cryptomatte/";
stream << std::setfill('0') << std::setw(sizeof(uint32_t) * 2) << std::hex
<< render_pass_identifier;
stream << "/";
return stream.str();
}
void BKE_cryptomatte_store_metadata(struct CryptomatteSession *session,
RenderResult *render_result,
const ViewLayer *view_layer,
eViewLayerCryptomatteFlags cryptomatte_layer,
const char *cryptomatte_layer_name)
{
/* Create Manifest. */
CryptomatteLayer *layer = nullptr;
switch (cryptomatte_layer) {
case VIEW_LAYER_CRYPTOMATTE_OBJECT:
layer = &session->objects;
break;
case VIEW_LAYER_CRYPTOMATTE_MATERIAL:
layer = &session->materials;
break;
case VIEW_LAYER_CRYPTOMATTE_ASSET:
layer = &session->assets;
break;
default:
BLI_assert(!"Incorrect cryptomatte layer");
break;
}
const std::string manifest = layer->manifest_get_string();
const std::string name = cryptomatte_determine_name(view_layer, cryptomatte_layer_name);
const std::string prefix = cryptomatte_determine_prefix(name);
/* Store the meta data into the render result. */
BKE_render_result_stamp_data(render_result, (prefix + "name").c_str(), name.c_str());
BKE_render_result_stamp_data(render_result, (prefix + "hash").c_str(), "MurmurHash3_32");
BKE_render_result_stamp_data(
render_result, (prefix + "conversion").c_str(), "uint32_to_float32");
BKE_render_result_stamp_data(render_result, (prefix + "manifest").c_str(), manifest.c_str());
}

View File

@ -1837,7 +1837,7 @@ static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
layerMultiply_propfloat2,
NULL,
layerAdd_propfloat2},
/* 50: CD_PROP_POOL */
/* 50: CD_PROP_BOOL */
{sizeof(bool),
"bool",
1,

View File

@ -1053,7 +1053,7 @@ static bool data_transfer_layersmapping_generate(ListBase *r_map,
const uint64_t data_flag = 0;
if (!(me_src->cd_flag & ME_CDFLAG_EDGE_CREASE)) {
if (use_delete && !me_dst) {
if (use_delete) {
me_dst->cd_flag &= ~ME_CDFLAG_EDGE_CREASE;
}
return true;
@ -1085,7 +1085,7 @@ static bool data_transfer_layersmapping_generate(ListBase *r_map,
const uint64_t data_flag = 0;
if (!(me_src->cd_flag & ME_CDFLAG_EDGE_BWEIGHT)) {
if (use_delete && !me_dst) {
if (use_delete) {
me_dst->cd_flag &= ~ME_CDFLAG_EDGE_BWEIGHT;
}
return true;

View File

@ -3652,7 +3652,7 @@ static int manta_step(
}
/* Total time must not exceed framecount times framelength. Correct tiny errors here. */
CLAMP(fds->time_total, fds->time_total, time_total_old + fds->frame_length);
CLAMP_MAX(fds->time_total, time_total_old + fds->frame_length);
/* Compute shadow grid for gas simulations. Make sure to skip if bake job was canceled early. */
if (fds->type == FLUID_DOMAIN_TYPE_GAS && result) {

View File

@ -283,6 +283,7 @@ GeometryComponent *MeshComponent::copy() const
if (mesh_ != nullptr) {
new_component->mesh_ = BKE_mesh_copy_for_eval(mesh_, false);
new_component->ownership_ = GeometryOwnershipType::Owned;
new_component->vertex_group_names_ = blender::Map(vertex_group_names_);
}
return new_component;
}

View File

@ -92,10 +92,10 @@ std::mutex gIconMutex;
static GHash *gCachedPreviews = nullptr;
/* Queue of icons for deferred deletion. */
typedef struct DeferredIconDeleteNode {
struct DeferredIconDeleteNode {
struct DeferredIconDeleteNode *next;
int icon_id;
} DeferredIconDeleteNode;
};
/* Protected by gIconMutex. */
static LockfreeLinkList g_icon_delete_queue;

View File

@ -1199,7 +1199,7 @@ static void init_meta(Depsgraph *depsgraph, PROCESS *process, Scene *scene, Obje
zero_size = 0;
ml = NULL;
/* If this metaball is the original that's used for duplication, only have it it visible when
/* If this metaball is the original that's used for duplication, only have it visible when
* the instancer is visible too. */
if ((base->flag_legacy & OB_FROMDUPLI) == 0 && ob->parent != NULL &&
(ob->parent->transflag & parenting_dupli_transflag) != 0 &&

View File

@ -427,7 +427,6 @@ class UniformVertexWeight : public VertexWeight {
cached_[i] = false;
}
}
~UniformVertexWeight() = default;
float weight_at_index(const int index) override
{
@ -464,7 +463,6 @@ class VoronoiVertexWeight : public VertexWeight {
cached_[i] = false;
}
}
~VoronoiVertexWeight() = default;
float weight_at_index(const int index) override
{

View File

@ -41,11 +41,11 @@
#include "MOD_modifiertypes.h"
Mesh *BKE_mesh_mirror_bisect_on_mirror_plane(MirrorModifierData *mmd,
const Mesh *mesh,
int axis,
const float plane_co[3],
float plane_no[3])
Mesh *BKE_mesh_mirror_bisect_on_mirror_plane_for_modifier(MirrorModifierData *mmd,
const Mesh *mesh,
int axis,
const float plane_co[3],
float plane_no[3])
{
bool do_bisect_flip_axis = ((axis == 0 && mmd->flag & MOD_MIR_BISECT_FLIP_AXIS_X) ||
(axis == 1 && mmd->flag & MOD_MIR_BISECT_FLIP_AXIS_Y) ||
@ -97,11 +97,47 @@ Mesh *BKE_mesh_mirror_bisect_on_mirror_plane(MirrorModifierData *mmd,
return result;
}
Mesh *BKE_mesh_mirror_apply_mirror_on_axis(MirrorModifierData *mmd,
const ModifierEvalContext *UNUSED(ctx),
Object *ob,
const Mesh *mesh,
int axis)
void BKE_mesh_mirror_apply_mirror_on_axis(struct Main *bmain,
Mesh *mesh,
const int axis,
const float dist)
{
BMesh *bm = BKE_mesh_to_bmesh_ex(mesh,
&(struct BMeshCreateParams){
.use_toolflags = 1,
},
&(struct BMeshFromMeshParams){
.calc_face_normal = true,
.cd_mask_extra =
{
.vmask = CD_MASK_SHAPEKEY,
},
});
BMO_op_callf(bm,
(BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
"symmetrize input=%avef direction=%i dist=%f use_shapekey=%b",
axis,
dist,
true);
BM_mesh_bm_to_me(bmain,
bm,
mesh,
(&(struct BMeshToMeshParams){
.calc_object_remap = true,
}));
BM_mesh_free(bm);
}
/**
* \warning This should _not_ be used to modify original meshes since
* it doesn't handle shape-keys, use #BKE_mesh_mirror_apply_mirror_on_axis instead.
*/
Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(MirrorModifierData *mmd,
Object *ob,
const Mesh *mesh,
const int axis)
{
const float tolerance_sq = mmd->tolerance * mmd->tolerance;
const bool do_vtargetmap = (mmd->flag & MOD_MIR_NO_MERGE) == 0;
@ -157,7 +193,8 @@ Mesh *BKE_mesh_mirror_apply_mirror_on_axis(MirrorModifierData *mmd,
Mesh *mesh_bisect = NULL;
if (do_bisect) {
mesh_bisect = BKE_mesh_mirror_bisect_on_mirror_plane(mmd, mesh, axis, plane_co, plane_no);
mesh_bisect = BKE_mesh_mirror_bisect_on_mirror_plane_for_modifier(
mmd, mesh, axis, plane_co, plane_no);
mesh = mesh_bisect;
}

View File

@ -1564,7 +1564,7 @@ void BKE_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb, Object
}
}
if (mti->blendRead != NULL) {
if ((mti != NULL) && (mti->blendRead != NULL)) {
mti->blendRead(reader, md);
}
}

View File

@ -77,7 +77,7 @@ bool multires_reshape_assign_final_coords_from_ccg(const MultiresReshapeContext
* not to be updated.
*
* This is a fragile logic, and is only working correctly because the code path is only
* used by sculpt changes. In other usecases the code might not catch inconsistency and
* used by sculpt changes. In other use cases the code might not catch inconsistency and
* silently do wrong decision. */
/* NOTE: There is a known bug in Undo code that results in first Sculpt step
* after a Memfile one to never be undone (see T83806). This might be the root cause of

View File

@ -2873,7 +2873,7 @@ void BKE_object_rot_to_mat3(const Object *ob, float mat[3][3], bool use_drot)
/* rotations may either be quats, eulers (with various rotation orders), or axis-angle */
if (ob->rotmode > 0) {
/* Euler rotations
* (will cause gimble lock, but this can be alleviated a bit with rotation orders). */
* (will cause gimbal lock, but this can be alleviated a bit with rotation orders). */
eulO_to_mat3(rmat, ob->rot, ob->rotmode);
eulO_to_mat3(dmat, ob->drot, ob->rotmode);
}

View File

@ -475,15 +475,15 @@ void psys_tasks_create(ParticleThreadContext *ctx,
{
ParticleTask *tasks;
int numtasks = min_ii(BLI_system_thread_count() * 4, endpart - startpart);
float particles_per_task = (float)(endpart - startpart) / (float)numtasks, p, pnext;
int i;
float particles_per_task = numtasks > 0 ? (float)(endpart - startpart) / (float)numtasks : 0;
tasks = MEM_callocN(sizeof(ParticleTask) * numtasks, "ParticleThread");
*r_numtasks = numtasks;
*r_tasks = tasks;
p = (float)startpart;
for (i = 0; i < numtasks; i++, p = pnext) {
float pnext;
float p = (float)startpart;
for (int i = 0; i < numtasks; i++, p = pnext) {
pnext = p + particles_per_task;
tasks[i].ctx = ctx;

View File

@ -653,7 +653,10 @@ static void ptcache_cloth_error(const ID *owner_id, void *cloth_v, const char *m
{
ClothModifierData *clmd = cloth_v;
BLI_assert(GS(owner_id->name) == ID_OB);
BKE_modifier_set_error((Object *)owner_id, &clmd->modifier, "%s", message);
if (clmd->hairdata == NULL) {
/* If there is hair data, this modifier does not actually exist on the object. */
BKE_modifier_set_error((Object *)owner_id, &clmd->modifier, "%s", message);
}
}
static int ptcache_dynamicpaint_totpoint(void *sd, int UNUSED(cfra))
@ -1006,7 +1009,8 @@ void BKE_ptcache_id_from_cloth(PTCacheID *pid, Object *ob, ClothModifierData *cl
}
/* The fluid modifier does not actually use this anymore, but some parts of Blender expect that it
* still has a point cache currently. */
* still has a point cache currently. For example, the fluid modifier uses
* #DEG_add_collision_relations, which internally creates relations with the point cache. */
void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct FluidModifierData *fmd)
{
FluidDomainSettings *fds = fmd->domain;
@ -2549,6 +2553,12 @@ static int ptcache_write_needed(PTCacheID *pid, int cfra, int *overwrite)
int BKE_ptcache_write(PTCacheID *pid, unsigned int cfra)
{
PointCache *cache = pid->cache;
if (!pid->totpoint) {
/* This happens when `pid->type == PTCACHE_TYPE_SMOKE_DOMAIN`. The fluid system does not
* actually use the pointcache anymore for caching. */
return 0;
}
int totpoint = pid->totpoint(pid->calldata, cfra);
int overwrite = 0, error = 0;

View File

@ -306,19 +306,19 @@ static void UNUSED_FUNCTION(direction_to_cube_face_uv)(float r_uv[2],
bool is_pos = (dir[0] > 0.0f);
*r_face = is_pos ? STUDIOLIGHT_X_POS : STUDIOLIGHT_X_NEG;
r_uv[0] = dir[2] / fabsf(dir[0]) * (is_pos ? 1 : -1);
r_uv[1] = dir[1] / fabsf(dir[0]) * (is_pos ? -1 : -1);
r_uv[1] = dir[1] / fabsf(dir[0]) * -1;
}
else if (fabsf(dir[1]) > fabsf(dir[0]) && fabsf(dir[1]) > fabsf(dir[2])) {
bool is_pos = (dir[1] > 0.0f);
*r_face = is_pos ? STUDIOLIGHT_Y_POS : STUDIOLIGHT_Y_NEG;
r_uv[0] = dir[0] / fabsf(dir[1]) * (is_pos ? 1 : 1);
r_uv[0] = dir[0] / fabsf(dir[1]) * 1;
r_uv[1] = dir[2] / fabsf(dir[1]) * (is_pos ? -1 : 1);
}
else {
bool is_pos = (dir[2] > 0.0f);
*r_face = is_pos ? STUDIOLIGHT_Z_NEG : STUDIOLIGHT_Z_POS;
r_uv[0] = dir[0] / fabsf(dir[2]) * (is_pos ? -1 : 1);
r_uv[1] = dir[1] / fabsf(dir[2]) * (is_pos ? -1 : -1);
r_uv[1] = dir[1] / fabsf(dir[2]) * -1;
}
r_uv[0] = r_uv[0] * 0.5f + 0.5f;
r_uv[1] = r_uv[1] * 0.5f + 0.5f;

View File

@ -252,7 +252,7 @@ static struct VolumeFileCache {
}
/* Cache contents */
typedef std::unordered_set<Entry, EntryHasher, EntryEqual> EntrySet;
using EntrySet = std::unordered_set<Entry, EntryHasher, EntryEqual>;
EntrySet cache;
/* Mutex for multithreaded access. */
std::mutex mutex;

View File

@ -75,7 +75,7 @@ bool BLI_edgehash_remove(EdgeHash *eh,
void *BLI_edgehash_popkey(EdgeHash *eh, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT;
bool BLI_edgehash_haskey(EdgeHash *eh, unsigned int v0, unsigned int v1) ATTR_WARN_UNUSED_RESULT;
int BLI_edgehash_len(EdgeHash *eh) ATTR_WARN_UNUSED_RESULT;
void BLI_edgehash_clear_ex(EdgeHash *eh, EdgeHashFreeFP free_value, const uint UNUSED(reserve));
void BLI_edgehash_clear_ex(EdgeHash *eh, EdgeHashFreeFP free_value, const uint reserve);
void BLI_edgehash_clear(EdgeHash *eh, EdgeHashFreeFP free_value);
EdgeHashIterator *BLI_edgehashIterator_new(EdgeHash *eh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT;

View File

@ -14,6 +14,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/* Use a define instead of `#pragma once` because of `BLI_endian_switch_inline.h` */
#ifndef __BLI_ENDIAN_SWITCH_H__
#define __BLI_ENDIAN_SWITCH_H__

View File

@ -14,6 +14,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/* Use a define instead of `#pragma once` because of `BLI_utildefines.h` */
#ifndef __BLI_MEMORY_UTILS_H__
#define __BLI_MEMORY_UTILS_H__

View File

@ -14,6 +14,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/* Use a define instead of `#pragma once` because of `bmesh_iterators_inline.h` */
#ifndef __BLI_TASK_H__
#define __BLI_TASK_H__

View File

@ -17,6 +17,7 @@
* All rights reserved.
*/
/* Use a define instead of `#pragma once` because of `BLI_memory_utils.h` */
#ifndef __BLI_UTILDEFINES_H__
#define __BLI_UTILDEFINES_H__

View File

@ -1,7 +1,6 @@
/* Apache License, Version 2.0 */
#ifndef __BLENDER_TESTING_BLI_RESSOURCE_STRING_H__
#define __BLENDER_TESTING_BLI_RESSOURCE_STRING_H__
#pragma once
/* Data file, don't format. */
/* clang-format off */
@ -606,5 +605,3 @@ const char words10k[] =
;
/* clang-format on */
#endif /* __BLENDER_TESTING_BLI_RESSOURCE_STRING_H__ */

View File

@ -1496,5 +1496,23 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
BKE_brush_default_input_curves_set(br);
}
}
if (!DNA_struct_find(fd->filesdna, "NodeSetAlpha")) {
LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
bNodeTree *nodetree = scene->nodetree;
if (nodetree == NULL) {
continue;
}
LISTBASE_FOREACH (bNode *, node, &nodetree->nodes) {
if (node->type != CMP_NODE_SETALPHA) {
continue;
}
NodeSetAlpha *storage = MEM_callocN(sizeof(NodeSetAlpha), "NodeSetAlpha");
storage->mode = CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA;
node->storage = storage;
}
}
}
}
}

View File

@ -15,8 +15,8 @@
*
* The Original Code is Copyright (C) 2019 by Blender Foundation.
*/
#ifndef __BLENDFILE_LOADING_BASE_TEST_H__
#define __BLENDFILE_LOADING_BASE_TEST_H__
#pragma once
#include "DEG_depsgraph.h"
#include "testing/testing.h"
@ -60,5 +60,3 @@ class BlendfileLoadingBaseTest : public testing::Test {
/* Free the depsgraph if it's not nullptr. */
virtual void depsgraph_free();
};
#endif /* __BLENDFILE_LOADING_BASE_TEST_H__ */

View File

@ -613,7 +613,7 @@ void BM_mesh_copy_init_customdata(BMesh *bm_dst, BMesh *bm_src, const BMAllocTem
* \param bm_dst: BMesh whose custom-data layers will be added.
* \param bm_src: BMesh whose custom-data layers will be copied.
* \param htype: Specifies which custom-data layers will be initiated.
* \param allocsize: Initialize the the memory-pool before use (may be an estimate).
* \param allocsize: Initialize the memory-pool before use (may be an estimate).
*/
void BM_mesh_copy_init_customdata_all_layers(BMesh *bm_dst,
BMesh *bm_src,

View File

@ -45,7 +45,7 @@ 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_calc_order(BMesh *UNUSED(bm), ListBase *eloops, const bool use_normals);
void BM_mesh_edgeloops_calc_order(BMesh *bm, ListBase *eloops, const bool use_normals);
/* single edgeloop */
struct BMEdgeLoopStore *BM_edgeloop_copy(struct BMEdgeLoopStore *el_store);

View File

@ -31,7 +31,7 @@ void BM_loop_interp_multires_ex(BMesh *bm,
const int cd_loop_mdisp_offset);
void BM_loop_interp_multires(BMesh *bm, BMLoop *l_dst, const BMFace *f_src);
void BM_face_interp_multires_ex(BMesh *UNUSED(bm),
void BM_face_interp_multires_ex(BMesh *bm,
BMFace *f_dst,
const BMFace *f_src,
const float f_dst_center[3],

View File

@ -326,6 +326,7 @@ static BMOpDefine bmo_mirror_def = {
{"mirror_u", BMO_OP_SLOT_BOOL}, /* mirror UVs across the u axis */
{"mirror_v", BMO_OP_SLOT_BOOL}, /* mirror UVs across the v axis */
{"mirror_udim", BMO_OP_SLOT_BOOL}, /* mirror UVs in each tile */
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
{{'\0'}},
},
/* slots_out */
@ -758,6 +759,7 @@ static BMOpDefine bmo_rotate_def = {
{"matrix", BMO_OP_SLOT_MAT}, /* matrix defining rotation */
{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
{"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
{{'\0'}},
},
{{{'\0'}}}, /* no output */
@ -776,6 +778,7 @@ static BMOpDefine bmo_translate_def = {
{{"vec", BMO_OP_SLOT_VEC}, /* translation offset */
{"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
{{'\0'}},
},
{{{'\0'}}}, /* no output */
@ -794,6 +797,7 @@ static BMOpDefine bmo_scale_def = {
{{"vec", BMO_OP_SLOT_VEC}, /* scale factor */
{"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
{{'\0'}},
},
{{{'\0'}}}, /* no output */
@ -814,6 +818,7 @@ static BMOpDefine bmo_transform_def = {
{{"matrix", BMO_OP_SLOT_MAT}, /* transform matrix */
{"space", BMO_OP_SLOT_MAT}, /* matrix to define the space (typically object matrix) */
{"verts", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT}}, /* input vertices */
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
{{'\0'}},
},
{{{'\0'}}}, /* no output */
@ -2072,6 +2077,7 @@ static BMOpDefine bmo_symmetrize_def = {
{{"input", BMO_OP_SLOT_ELEMENT_BUF, {BM_VERT | BM_EDGE | BM_FACE}}, /* input geometry */
{"direction", BMO_OP_SLOT_INT, {(int)BMO_OP_SLOT_SUBTYPE_INT_ENUM}, bmo_enum_axis_neg_xyz_and_xyz}, /* axis to use */
{"dist", BMO_OP_SLOT_FLT}, /* minimum distance */
{"use_shapekey", BMO_OP_SLOT_BOOL}, /* Transform shape keys too. */
{{'\0'}},
},
/* slots_out */

View File

@ -37,50 +37,45 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op)
{
BMOperator dupeop, weldop;
BMOIter siter;
BMIter iter;
BMVert *v, **vmap;
int vmap_size = 0;
float mtx[4][4];
float imtx[4][4];
BMVert *v;
float scale[3] = {1.0f, 1.0f, 1.0f};
float dist = BMO_slot_float_get(op->slots_in, "merge_dist");
int i, ototvert;
int i;
int axis = BMO_slot_int_get(op->slots_in, "axis");
bool mirror_u = BMO_slot_bool_get(op->slots_in, "mirror_u");
bool mirror_v = BMO_slot_bool_get(op->slots_in, "mirror_v");
bool mirror_udim = BMO_slot_bool_get(op->slots_in, "mirror_udim");
BMOpSlot *slot_targetmap;
ototvert = bm->totvert;
BMO_slot_mat4_get(op->slots_in, "matrix", mtx);
invert_m4_m4(imtx, mtx);
BMOpSlot *slot_vertmap;
BMO_op_initf(bm, &dupeop, op->flag, "duplicate geom=%s", op, "geom");
BMO_op_exec(bm, &dupeop);
BMO_slot_buffer_flag_enable(bm, dupeop.slots_out, "geom.out", BM_ALL_NOLOOP, ELE_NEW);
/* create old -> new mappin */
vmap = BMO_iter_as_arrayN(dupeop.slots_out, "geom.out", BM_VERT, &vmap_size, NULL, 0);
/* feed old data to transform bmo */
scale[axis] = -1.0f;
BMO_op_callf(bm, op->flag, "transform verts=%fv matrix=%m4", ELE_NEW, mtx);
BMO_op_callf(bm, op->flag, "scale verts=%fv vec=%v", ELE_NEW, scale);
BMO_op_callf(bm, op->flag, "transform verts=%fv matrix=%m4", ELE_NEW, imtx);
BMO_op_callf(bm,
op->flag,
"scale verts=%fv vec=%v space=%s use_shapekey=%s",
ELE_NEW,
scale,
op,
"matrix",
op,
"use_shapekey");
BMO_op_init(bm, &weldop, op->flag, "weld_verts");
slot_targetmap = BMO_slot_get(weldop.slots_in, "targetmap");
slot_vertmap = BMO_slot_get(dupeop.slots_out, "vert_map.out");
v = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
for (i = 0; i < ototvert; i++) {
BMO_ITER (v, &siter, op->slots_in, "geom", BM_VERT) {
if (fabsf(v->co[axis]) <= dist) {
BLI_assert(vmap_size >= i);
BMO_slot_map_elem_insert(&weldop, slot_targetmap, vmap[i], v);
BMVert *v_new = BMO_slot_map_elem_get(slot_vertmap, v);
BLI_assert(v_new != NULL);
BMO_slot_map_elem_insert(&weldop, slot_targetmap, v_new, v);
}
v = BM_iter_step(&iter);
}
if (mirror_u || mirror_v) {
@ -123,8 +118,4 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op)
BMO_op_finish(bm, &dupeop);
BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "geom.out", BM_ALL_NOLOOP, ELE_NEW);
if (vmap) {
MEM_freeN(vmap);
}
}

View File

@ -76,7 +76,14 @@ void bmo_symmetrize_exec(BMesh *bm, BMOperator *op)
BMO_slot_buffer_flag_enable(bm, op_bisect.slots_out, "geom.out", BM_ALL_NOLOOP, ELE_OUT);
BMO_slot_buffer_flag_enable(bm, op_dupe.slots_out, "geom.out", BM_ALL_NOLOOP, ELE_OUT);
BMO_op_callf(bm, op->flag, "scale verts=%S vec=%v", &op_dupe, "geom.out", scale);
BMO_op_callf(bm,
op->flag,
"scale verts=%S vec=%v use_shapekey=%s",
&op_dupe,
"geom.out",
scale,
op,
"use_shapekey");
/* important 'flip_multires' is disabled,
* otherwise multi-res data will be reversed, see: T47788 */

View File

@ -46,12 +46,17 @@ void bmo_create_vert_exec(BMesh *bm, BMOperator *op)
BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "vert.out", BM_VERT, ELE_NEW);
}
void bmo_transform_exec(BMesh *UNUSED(bm), BMOperator *op)
void bmo_transform_exec(BMesh *bm, BMOperator *op)
{
BMOIter iter;
BMVert *v;
float mat[4][4], mat_space[4][4], imat_space[4][4];
const uint shape_keys_len = BMO_slot_bool_get(op->slots_in, "use_shapekey") ?
CustomData_number_of_layers(&bm->vdata, CD_SHAPEKEY) :
0;
const uint cd_shape_key_offset = CustomData_get_offset(&bm->vdata, CD_SHAPEKEY);
BMO_slot_mat4_get(op->slots_in, "matrix", mat);
BMO_slot_mat4_get(op->slots_in, "space", mat_space);
@ -62,6 +67,13 @@ void bmo_transform_exec(BMesh *UNUSED(bm), BMOperator *op)
BMO_ITER (v, &iter, op->slots_in, "verts", BM_VERT) {
mul_m4_v3(mat, v->co);
if (shape_keys_len != 0) {
float(*co_dst)[3] = BM_ELEM_CD_GET_VOID_P(v, cd_shape_key_offset);
for (int i = 0; i < shape_keys_len; i++, co_dst++) {
mul_m4_v3(mat, *co_dst);
}
}
}
}
@ -74,8 +86,16 @@ void bmo_translate_exec(BMesh *bm, BMOperator *op)
unit_m4(mat);
copy_v3_v3(mat[3], vec);
BMO_op_callf(
bm, op->flag, "transform matrix=%m4 space=%s verts=%s", mat, op, "space", op, "verts");
BMO_op_callf(bm,
op->flag,
"transform matrix=%m4 space=%s verts=%s use_shapekey=%s",
mat,
op,
"space",
op,
"verts",
op,
"use_shapekey");
}
void bmo_scale_exec(BMesh *bm, BMOperator *op)
@ -89,8 +109,16 @@ void bmo_scale_exec(BMesh *bm, BMOperator *op)
mat[1][1] = vec[1];
mat[2][2] = vec[2];
BMO_op_callf(
bm, op->flag, "transform matrix=%m3 space=%s verts=%s", mat, op, "space", op, "verts");
BMO_op_callf(bm,
op->flag,
"transform matrix=%m3 space=%s verts=%s use_shapekey=%s",
mat,
op,
"space",
op,
"verts",
op,
"use_shapekey");
}
void bmo_rotate_exec(BMesh *bm, BMOperator *op)
@ -102,8 +130,16 @@ void bmo_rotate_exec(BMesh *bm, BMOperator *op)
BMO_slot_mat4_get(op->slots_in, "matrix", mat);
transform_pivot_set_m4(mat, center);
BMO_op_callf(
bm, op->flag, "transform matrix=%m4 space=%s verts=%s", mat, op, "space", op, "verts");
BMO_op_callf(bm,
op->flag,
"transform matrix=%m4 space=%s verts=%s use_shapekey=%s",
mat,
op,
"space",
op,
"verts",
op,
"use_shapekey");
}
void bmo_reverse_faces_exec(BMesh *bm, BMOperator *op)

View File

@ -355,8 +355,6 @@ set(SRC
operations/COM_KeyingDespillOperation.h
operations/COM_KeyingOperation.cpp
operations/COM_KeyingOperation.h
operations/COM_KeyingSetAlphaOperation.cpp
operations/COM_KeyingSetAlphaOperation.h
operations/COM_ColorSpillOperation.cpp
operations/COM_ColorSpillOperation.h
@ -461,8 +459,10 @@ set(SRC
operations/COM_MapRangeOperation.h
operations/COM_MapValueOperation.cpp
operations/COM_MapValueOperation.h
operations/COM_SetAlphaOperation.cpp
operations/COM_SetAlphaOperation.h
operations/COM_SetAlphaMultiplyOperation.cpp
operations/COM_SetAlphaMultiplyOperation.h
operations/COM_SetAlphaReplaceOperation.cpp
operations/COM_SetAlphaReplaceOperation.h
# Distort operation
operations/COM_DisplaceOperation.cpp

View File

@ -34,7 +34,7 @@ class SingleThreadedOperation : public NodeOperation {
SingleThreadedOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -20,7 +20,7 @@
#include "BKE_node.h"
#include "COM_ChannelMatteOperation.h"
#include "COM_ConvertOperation.h"
#include "COM_SetAlphaOperation.h"
#include "COM_SetAlphaMultiplyOperation.h"
ChannelMatteNode::ChannelMatteNode(bNode *editorNode) : Node(editorNode)
{
@ -64,7 +64,7 @@ void ChannelMatteNode::convertToOperations(NodeConverter &converter,
operation->setSettings((NodeChroma *)node->storage, node->custom2);
converter.addOperation(operation);
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
converter.addOperation(operationAlpha);
if (convert != nullptr) {

View File

@ -20,7 +20,7 @@
#include "BKE_node.h"
#include "COM_ChromaMatteOperation.h"
#include "COM_ConvertOperation.h"
#include "COM_SetAlphaOperation.h"
#include "COM_SetAlphaMultiplyOperation.h"
ChromaMatteNode::ChromaMatteNode(bNode *editorNode) : Node(editorNode)
{
@ -48,7 +48,7 @@ void ChromaMatteNode::convertToOperations(NodeConverter &converter,
operation->setSettings((NodeChroma *)editorsnode->storage);
converter.addOperation(operation);
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
converter.addOperation(operationAlpha);
converter.mapInputSocket(inputSocketImage, operationRGBToYCC_Image->getInputSocket(0));

View File

@ -16,8 +16,7 @@
* Copyright 2020, Blender Foundation.
*/
#ifndef __COM_EXPOSURENODE_H__
#define __COM_EXPOSURENODE_H__
#pragma once
#include "COM_Node.h"
@ -30,5 +29,3 @@ class ExposureNode : public Node {
ExposureNode(bNode *editorNode);
void convertToOperations(NodeConverter &converter, const CompositorContext &context) const;
};
#endif

View File

@ -20,7 +20,7 @@
#include "BKE_node.h"
#include "COM_ColorMatteOperation.h"
#include "COM_ConvertOperation.h"
#include "COM_SetAlphaOperation.h"
#include "COM_SetAlphaMultiplyOperation.h"
ColorMatteNode::ColorMatteNode(bNode *editorNode) : Node(editorNode)
{
@ -46,7 +46,7 @@ void ColorMatteNode::convertToOperations(NodeConverter &converter,
operation->setSettings((NodeChroma *)editorsnode->storage);
converter.addOperation(operation);
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
converter.addOperation(operationAlpha);
converter.mapInputSocket(inputSocketImage, operationRGBToHSV_Image->getInputSocket(0));

View File

@ -19,13 +19,13 @@
#include "COM_CryptomatteNode.h"
#include "COM_ConvertOperation.h"
#include "COM_CryptomatteOperation.h"
#include "COM_SetAlphaOperation.h"
#include "BLI_assert.h"
#include "BLI_hash_mm3.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "COM_SetAlphaMultiplyOperation.h"
#include <iterator>
CryptomatteNode::CryptomatteNode(bNode *editorNode) : Node(editorNode)
@ -61,13 +61,13 @@ void CryptomatteNode::convertToOperations(NodeConverter &converter,
separateOperation->setChannel(3);
converter.addOperation(separateOperation);
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
converter.addOperation(operationAlpha);
converter.addLink(operation->getOutputSocket(0), separateOperation->getInputSocket(0));
converter.addLink(separateOperation->getOutputSocket(0), operationAlpha->getInputSocket(1));
SetAlphaOperation *clearAlphaOperation = new SetAlphaOperation();
SetAlphaMultiplyOperation *clearAlphaOperation = new SetAlphaMultiplyOperation();
converter.addOperation(clearAlphaOperation);
converter.addInputValue(clearAlphaOperation->getInputSocket(1), 1.0f);

View File

@ -19,7 +19,7 @@
#include "COM_DifferenceMatteNode.h"
#include "BKE_node.h"
#include "COM_DifferenceMatteOperation.h"
#include "COM_SetAlphaOperation.h"
#include "COM_SetAlphaMultiplyOperation.h"
DifferenceMatteNode::DifferenceMatteNode(bNode *editorNode) : Node(editorNode)
{
@ -43,7 +43,7 @@ void DifferenceMatteNode::convertToOperations(NodeConverter &converter,
converter.mapInputSocket(inputSocket2, operationSet->getInputSocket(1));
converter.mapOutputSocket(outputSocketMatte, operationSet->getOutputSocket(0));
SetAlphaOperation *operation = new SetAlphaOperation();
SetAlphaMultiplyOperation *operation = new SetAlphaMultiplyOperation();
converter.addOperation(operation);
converter.mapInputSocket(inputSocket, operation->getInputSocket(0));

View File

@ -21,7 +21,7 @@
#include "COM_ConvertOperation.h"
#include "COM_DistanceRGBMatteOperation.h"
#include "COM_DistanceYCCMatteOperation.h"
#include "COM_SetAlphaOperation.h"
#include "COM_SetAlphaMultiplyOperation.h"
DistanceMatteNode::DistanceMatteNode(bNode *editorNode) : Node(editorNode)
{
@ -39,7 +39,7 @@ void DistanceMatteNode::convertToOperations(NodeConverter &converter,
NodeOutput *outputSocketImage = this->getOutputSocket(0);
NodeOutput *outputSocketMatte = this->getOutputSocket(1);
SetAlphaOperation *operationAlpha = new SetAlphaOperation();
SetAlphaMultiplyOperation *operationAlpha = new SetAlphaMultiplyOperation();
converter.addOperation(operationAlpha);
/* work in RGB color space */

View File

@ -32,7 +32,7 @@
#include "COM_DilateErodeOperation.h"
#include "COM_KeyingSetAlphaOperation.h"
#include "COM_SetAlphaMultiplyOperation.h"
#include "COM_GaussianAlphaXBlurOperation.h"
#include "COM_GaussianAlphaYBlurOperation.h"
@ -323,7 +323,7 @@ void KeyingNode::convertToOperations(NodeConverter &converter,
}
/* set alpha channel to output image */
KeyingSetAlphaOperation *alphaOperation = new KeyingSetAlphaOperation();
SetAlphaMultiplyOperation *alphaOperation = new SetAlphaMultiplyOperation();
converter.addOperation(alphaOperation);
converter.mapInputSocket(inputImage, alphaOperation->getInputSocket(0));

View File

@ -20,7 +20,7 @@
#include "BKE_node.h"
#include "COM_ConvertOperation.h"
#include "COM_LuminanceMatteOperation.h"
#include "COM_SetAlphaOperation.h"
#include "COM_SetAlphaMultiplyOperation.h"
LuminanceMatteNode::LuminanceMatteNode(bNode *editorNode) : Node(editorNode)
{
@ -42,7 +42,7 @@ void LuminanceMatteNode::convertToOperations(NodeConverter &converter,
converter.mapInputSocket(inputSocket, operationSet->getInputSocket(0));
converter.mapOutputSocket(outputSocketMatte, operationSet->getOutputSocket(0));
SetAlphaOperation *operation = new SetAlphaOperation();
SetAlphaMultiplyOperation *operation = new SetAlphaMultiplyOperation();
converter.addOperation(operation);
converter.mapInputSocket(inputSocket, operation->getInputSocket(0));

View File

@ -18,12 +18,23 @@
#include "COM_SetAlphaNode.h"
#include "COM_ExecutionSystem.h"
#include "COM_SetAlphaOperation.h"
#include "COM_SetAlphaMultiplyOperation.h"
#include "COM_SetAlphaReplaceOperation.h"
void SetAlphaNode::convertToOperations(NodeConverter &converter,
const CompositorContext & /*context*/) const
{
SetAlphaOperation *operation = new SetAlphaOperation();
const bNode *editorNode = this->getbNode();
const NodeSetAlpha *storage = static_cast<const NodeSetAlpha *>(editorNode->storage);
NodeOperation *operation = nullptr;
switch (storage->mode) {
case CMP_NODE_SETALPHA_MODE_APPLY:
operation = new SetAlphaMultiplyOperation();
break;
case CMP_NODE_SETALPHA_MODE_REPLACE_ALPHA:
operation = new SetAlphaReplaceOperation();
break;
}
if (!this->getInputSocket(0)->isLinked() && this->getInputSocket(1)->isLinked()) {
operation->setResolutionInputSocketIndex(1);

View File

@ -32,7 +32,7 @@ class AlphaOverKeyOperation : public MixBaseOperation {
AlphaOverKeyOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
};

View File

@ -35,7 +35,7 @@ class AlphaOverMixedOperation : public MixBaseOperation {
AlphaOverMixedOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -32,7 +32,7 @@ class AlphaOverPremultiplyOperation : public MixBaseOperation {
AlphaOverPremultiplyOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
};

View File

@ -37,7 +37,7 @@ class AntiAliasOperation : public NodeOperation {
AntiAliasOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -32,7 +32,7 @@ class BilateralBlurOperation : public NodeOperation, public QualityStepHelper {
BilateralBlurOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -39,7 +39,7 @@ class BokehBlurOperation : public NodeOperation, public QualityStepHelper {
void *initializeTileData(rcti *rect);
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -108,7 +108,7 @@ class BokehImageOperation : public NodeOperation {
BokehImageOperation();
/**
* \brief the inner loop of this program
* \brief The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -39,7 +39,7 @@ class BoxMaskOperation : public NodeOperation {
BoxMaskOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -35,7 +35,7 @@ class BrightnessOperation : public NodeOperation {
BrightnessOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -40,7 +40,7 @@ class CalculateMeanOperation : public NodeOperation {
CalculateMeanOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -34,7 +34,7 @@ class CalculateStandardDeviationOperation : public CalculateMeanOperation {
CalculateStandardDeviationOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -41,7 +41,7 @@ class ChangeHSVOperation : public NodeOperation {
void deinitExecution();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
};

View File

@ -111,10 +111,10 @@ void ChannelMatteOperation::executePixelSampled(float output[4],
alpha = (alpha - limit_min) / limit_range;
}
/* store matte(alpha) value in [0] to go with
* COM_SetAlphaOperation and the Value output
/* Store matte(alpha) value in [0] to go with
* COM_SetAlphaMultiplyOperation and the Value output.
*/
/* don't make something that was more transparent less transparent */
/* Don't make something that was more transparent less transparent. */
output[0] = min(alpha, inColor[3]);
}

View File

@ -54,7 +54,7 @@ class ChannelMatteOperation : public NodeOperation {
ChannelMatteOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -60,8 +60,8 @@ void ChromaMatteOperation::executePixelSampled(float output[4],
this->m_inputKeyProgram->readSampled(inKey, x, y, sampler);
this->m_inputImageProgram->readSampled(inImage, x, y, sampler);
/* store matte(alpha) value in [0] to go with
* COM_SetAlphaOperation and the Value output
/* Store matte(alpha) value in [0] to go with
* COM_SetAlphaMultiplyOperation and the Value output.
*/
/* Algorithm from book "Video Demistified," does not include the spill reduction part */

View File

@ -37,7 +37,7 @@ class ChromaMatteOperation : public NodeOperation {
ChromaMatteOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -43,7 +43,7 @@ class ColorBalanceASCCDLOperation : public NodeOperation {
ColorBalanceASCCDLOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -43,7 +43,7 @@ class ColorBalanceLGGOperation : public NodeOperation {
ColorBalanceLGGOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -37,7 +37,7 @@ class ColorCorrectionOperation : public NodeOperation {
ColorCorrectionOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -36,7 +36,7 @@ class ColorCurveOperation : public CurveBaseOperation {
ColorCurveOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
@ -65,7 +65,7 @@ class ConstantLevelColorCurveOperation : public CurveBaseOperation {
ConstantLevelColorCurveOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -18,12 +18,12 @@
#include "COM_ColorExposureOperation.h"
ExposureOperation::ExposureOperation() : NodeOperation()
ExposureOperation::ExposureOperation()
{
this->addInputSocket(COM_DT_COLOR);
this->addInputSocket(COM_DT_VALUE);
this->addOutputSocket(COM_DT_COLOR);
this->m_inputProgram = NULL;
this->m_inputProgram = nullptr;
}
void ExposureOperation::initExecution()
@ -52,6 +52,6 @@ void ExposureOperation::executePixelSampled(float output[4],
void ExposureOperation::deinitExecution()
{
this->m_inputProgram = NULL;
this->m_inputExposureProgram = NULL;
this->m_inputProgram = nullptr;
this->m_inputExposureProgram = nullptr;
}

View File

@ -16,8 +16,8 @@
* Copyright 2020, Blender Foundation.
*/
#ifndef __COM_COLOREXPOSUREOPERATION_H__
#define __COM_COLOREXPOSUREOPERATION_H__
#pragma once
#include "COM_NodeOperation.h"
class ExposureOperation : public NodeOperation {
@ -32,7 +32,7 @@ class ExposureOperation : public NodeOperation {
ExposureOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);
@ -46,4 +46,3 @@ class ExposureOperation : public NodeOperation {
*/
void deinitExecution();
};
#endif

View File

@ -58,8 +58,8 @@ void ColorMatteOperation::executePixelSampled(float output[4],
this->m_inputImageProgram->readSampled(inColor, x, y, sampler);
this->m_inputKeyProgram->readSampled(inKey, x, y, sampler);
/* store matte(alpha) value in [0] to go with
* COM_SetAlphaOperation and the Value output
/* Store matte(alpha) value in [0] to go with
* COM_SetAlphaMultiplyOperation and the Value output.
*/
if (

View File

@ -37,7 +37,7 @@ class ColorMatteOperation : public NodeOperation {
ColorMatteOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -33,7 +33,7 @@ class ColorRampOperation : public NodeOperation {
ColorRampOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -42,7 +42,7 @@ class ColorSpillOperation : public NodeOperation {
ColorSpillOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -53,7 +53,7 @@ class ConvertColorProfileOperation : public NodeOperation {
ConvertColorProfileOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -49,7 +49,7 @@ class ConvertDepthToRadiusOperation : public NodeOperation {
ConvertDepthToRadiusOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -37,7 +37,7 @@ class DifferenceMatteOperation : public NodeOperation {
DifferenceMatteOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -41,7 +41,7 @@ class DilateErodeThresholdOperation : public NodeOperation {
DilateErodeThresholdOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);
@ -88,7 +88,7 @@ class DilateDistanceOperation : public NodeOperation {
DilateDistanceOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);
@ -123,7 +123,7 @@ class ErodeDistanceOperation : public DilateDistanceOperation {
ErodeDistanceOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);
@ -148,7 +148,7 @@ class DilateStepOperation : public NodeOperation {
DilateStepOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -34,7 +34,7 @@ class DirectionalBlurOperation : public NodeOperation, public QualityStepHelper
DirectionalBlurOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -44,7 +44,7 @@ class DisplaceOperation : public NodeOperation {
rcti *output);
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -44,7 +44,7 @@ class DisplaceSimpleOperation : public NodeOperation {
rcti *output);
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -65,8 +65,8 @@ void DistanceRGBMatteOperation::executePixelSampled(float output[4],
distance = this->calculateDistance(inKey, inImage);
/* store matte(alpha) value in [0] to go with
* COM_SetAlphaOperation and the Value output
/* Store matte(alpha) value in [0] to go with
* COM_SetAlphaMultiplyOperation and the Value output.
*/
/*make 100% transparent */

View File

@ -39,7 +39,7 @@ class DistanceRGBMatteOperation : public NodeOperation {
DistanceRGBMatteOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

View File

@ -36,7 +36,7 @@ class DoubleEdgeMaskOperation : public NodeOperation {
void doDoubleEdgeMask(float *imask, float *omask, float *res);
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixel(float output[4], int x, int y, void *data);

View File

@ -39,7 +39,7 @@ class EllipseMaskOperation : public NodeOperation {
EllipseMaskOperation();
/**
* the inner loop of this program
* The inner loop of this operation.
*/
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler);

Some files were not shown because too many files have changed in this diff Show More