Age | Commit message (Collapse) | Author |
|
Not quite sure why {rBd37d17019c52} forcefully set the Mesh to NULL if
in editmode, but this caused the attribute lookup to fail/crash.
Now only use the attribute if we have the mesh (reducing the scope where
it is used), bmesh editmode case does not rely on it.
Maniphest Tasks: T102318
Differential Revision: https://developer.blender.org/D16406
|
|
Previously, the code would incorrectly free the passed in custom data
layer even when `CD_ASSIGN` was not used. Now the function actually
supports assigning the data to the layer. This only fixes the case for
custom data layer types that only support a single layer like `CD_MEDGE`.
Informally reviewed by Hans Goudey.
|
|
Change the behaviour of circle select on FCurves:
- Before any key is touched, the behaviour is as it was (key included in
circle-select area → select it; otherwise → select entire curve)
- If any key has been touched, an internal option
(`use_curve_selection`) is flipped and selecting the entire curve is
disallowed.
This ensures that once a key changes selection state, it's no longer
possible to select the entire curve. This allows dragging over keys and
subsequently drag over a keyless part of the curve.
Reviewed By: RiggingDojo, troopy28
Maniphest Tasks: T101894
Differential Revision: https://developer.blender.org/D16307
|
|
|
|
Rotation and scale was done around the wrong center (always around mouse
position) in paint_draw_tex_overlay [on the other hand,
paint_draw_cursor_overlay already got the center right].
Now make the center dependent on UnifiedPaintSettings "draw_anchored".
Maniphest Tasks: T102312
Differential Revision: https://developer.blender.org/D16418
|
|
The color-band needs to do some special, rather awkward updating of the
UI state when certain values are changed. As @lichtwerk noted in the
report, this was done to the wrong buttons. Now lookup the proper
buttons, and don't assume that `uiItemR()` only adds a single button
(which often isn't the case).
|
|
The new Xcode 14.1 brings the new Apple Clang compiler which
considers sprintf unsafe and geenrates deprecation warnings
suggesting to sue snprintf instead. This only happens for C++
code by default, and C code can still use sprintf without any
warning.
This changes does the following:
- Whenever is trivial replace sprintf() with BLI_snprintf.
- For all other cases use the newly introduced BLI_sprintf
which is a wrapper around sprintf() but without warning.
There is a discouragement note in the BLI_sprintf comment to
suggest use of BLI_snprintf when the size is known.
Differential Revision: https://developer.blender.org/D16410
|
|
Differential Revision: https://developer.blender.org/D16305
|
|
Upon closer inspection, looks like `UI_BLOCK_NUMSELECT` was previously
set for all code paths and 99e5024e97f1 removed it from one.
|
|
|
|
Function casts hid casting between potentially incompatible type
signatures (using int instead of Py_ssize_t). As it happens this seems
not to have caused any bugs on supported platforms so this change is
mainly for correctness and to avoid problems in the future.
|
|
|
|
|
|
Make sure non-camera data is not casted to a Camera pointer.
Solution suggested by Damien Picard (@pioverfour).
|
|
Differential Revision: https://developer.blender.org/D16304
|
|
|
|
|
|
As instances are often generated geometries, we cannot rely on the data
provided by `DupliObject::ob`.
Use `DupliObject::ob_data` when possible.
This required a major refactor in the code as the output variables are
now gathered in context and easier to access.
|
|
`nearest_world_tree_co` allows null parameter, so the `index` variable
isn't really needed and doesn't even need to be initialized.
|
|
All cache needed is already stored in `Mesh.runtime`.
|
|
This is not the case though, the modifier act explicitly on mesh edges,
if no tesselated mesh is provided, it would simpy early out and do
nothing.
Now always disable the "Apply on Spline" option with a tip that this
modifier can only smooth the tesselated curve (not the underlying curve
control points). Similar to rB1a6b51e17502.
Fixes T102060.
Maniphest Tasks: T102060
Differential Revision: https://developer.blender.org/D16386
|
|
The operator was acting on non selected items (wasnt checking SpaceFile
bookmarknr for being -1) which could end up removing items even.
Now sanatize this by introducing proper poll (which returns false if
nothing is selected).
Fixes T102014.
Maniphest Tasks: T102014
Differential Revision: https://developer.blender.org/D16385
|
|
|
|
Regression in [0] needs further investigation
(building docs may crash again).
This effectively reverts [0], however de-duplicating the color-space
enum can be kept.
[0]: 037b771e1af53b0f87b73a9fe01e8e660267ec81
|
|
|
|
|
|
As described in the comment on `BLI_task_isolate`, deadlocks can happen
when isolation is used with threading primitives that separate spawning tasks
from executing them. All threads are waiting the tasks to complete but no
thread is able to continue working due to task isolation.
The fix is to not pass lazy-threading hints through task isolations. This way
isolated regions can't create new tasks in a scheduler further up the call stack.
This may lead to minor slowdowns because less threading may be used.
It's generally possible to get rid of the slowdown again by sending the
lazy-threading hint before entering the isolated region.
|
|
|
|
Color space conversion item-function missed checking the context was
NULL to return a static array. This caused freed memory access when
building docs.
|
|
Don't draw channels region when height is 0.
|
|
Many connected edge loops could result in two edge loops sharing
vertices. This is more of a workaround, the reason for two edge loops
sharing vertices could be prevented some other way.
Add this check since it's a straightforward solution,
furthered investigation noted as a TODO.
|
|
BlendType max incorrectly returns the minimum in BLI_color_mix.hh
This differential fixes it to return the maximum.
Maniphest Tasks: T102216
Ref D16364
|
|
This fixes T102218, where baked f-curves would display incorrectly when normalized.
This bug was a result of the code making no effort to determine the y-range of baked f-curves, so it fell back to a default that looked horrible.
I've added specific handling for finding the y-range of each f-curve (I extracted this functionality out to a new function, `fcurve_scene_coord_range_get`, for organization purposes). In addition, a minor optimization was made to eliminate redundant range-checks when in preview range mode.
{F13838304}
Reviewed By: sybren
Maniphest Tasks: T102218
Differential Revision: https://developer.blender.org/D16363
|
|
|
|
|
|
Regression in [0], however the primary purpose of that code was to
cycle away from the active object (behavior which was intentionally
removed, see: T96752).
This broke weight-paint + pose-selection (Ctrl-LMB)
when the GPU depth picking preference was disabled.
Causing selection to pick the mesh object instead of the pose bones.
This de-selected the armature, making the pose bones unselectable
instead of selecting the pose bone as intended.
Adding the old code back (restricting it to weight-paint mode)
fixes the bug but reintroduces fairly involved logic unnecessarily.
Instead, prioritize bone selecting when in weight-paint & pose mode
(previously this was only done in pose-mode).
[0]: b1908f2e0b23988627772f6a6d968d8351dca6d7
|
|
This issue might have produced crashes in some cases similar to
rBafd30e5e3a77.
|
|
|
|
|
|
|
|
Differential Revision: https://developer.blender.org/D16379
|
|
The regression is caused by D13824 0f89bcdbebf5.
This fix follows the code from Sybren (D7785) to make object-mode
drivers from shapekey value to work. This intuitively makes sense
since the D13824 made the edit mode evaluation and ownership follow
the object mode more closely.
Differential Revision: https://developer.blender.org/D16380
|
|
* BLENDER_VERSION_CYCLE set to beta
* Update pipeline_config.yaml to point to 3.2 branches and svn tags
* Update and uncomment BLENDER_VERSION in download.cmake
|
|
This avoids having to run BLI_path_normalize before calling
BLI_path_name_at_index.
|
|
There is no need to use path joining logic here.
|
|
C++ doesn't support taking the temporary address of a temporary array,
use inline functions instead.
Also change array joining functions to return the length of the string
instead of returning the pointer (matching BLI_path_join).
|
|
Trivial changes, should not affect us in anyway.
|
|
Part of T102224
|
|
|
|
In high poly meshes the reprojections after remesh can become slow.
This parallelizes reprojection of face sets, paint mask and vertex paint.
It also adds flags to disable dependency graph updates on
setting remesh options to remove UI lag.
Profiling of remeshing a 3.4M poly mesh (in sculpt mode):
Before: 19.6s
After: 8.7s
Differential Revision: https://developer.blender.org/D15638
|