Age | Commit message (Collapse) | Author |
|
Added in rB7cef01b090c4c2d2703274edb91886ae37d3ce82
and rB87bfa2b207b90b5e34ebd835a23c2a82afbed878
Reviewed by: jbakker, #platform_macos
Differential Revision: https://developer.blender.org/D11012
|
|
This patch fixes jittering text when resizing regions of the UI as
described in T87749. The jitter was caused by the text padding
being stored as an integer which lead to inconsistent rounding.
Most notably this patch fixes the jitter in the new spreadsheet editor,
but not all occurrences of jitter described in T87749 (e.g. in UI lists)
are addressed.
Differential Revision: https://developer.blender.org/D11060
|
|
This is complex situation. Tagged ID deletion (used to delete several
data-blocks at once) removes IDs to be deleted from Main.
But when we remove deleted IDs' usages of other IDs (using
`BKE_libblock_relink_ex`), some specific post-process is required on
some types, like Collections. Those post-processes would in some cases
rely on data actually being in Main.
That failing condition would lead in existing code on missing processing
the very ID (collection) we were working on, leading to missing removing
some child collection pointers, leading to the crash (later on in
LayerCollection resync process).
For now we go with an optimization & fix that avoids processing all
collections in Main when we actually know which one we are working one
(case of `BKE_libblock_relink_ex`, but not of
`BKE_libblock_remap_locked`).
This is however yet another demonstration of the need to rework that
whole collection/layer resync process, since it is not only extremely
inneficient currently, but it also requires valid Main/ID state way too
deep into the remapping code.
NOTE: This fix may very well not catch/address all possible fail cases
here, dealing with the double parent/child relationships of collections
is challenging...
Issue reported by @eyecandy from the studio, thanks.
|
|
|
|
In cases where the same node tree is used in different materials with
small changes, the wrong material could be selected.
Cause: Hair shaders GPU resources weren't updated and used the previous bound data.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D11036
|
|
Remove custom properties from `__dir__` method result since these
can't be accessed using `__getattr__`.
Introduced in the 2.5x Python API update.
|
|
|
|
As Python can access COW ID's, ensure it's instance is kept on update.
This could happen when the "Use Self" argument was enabled for a driver.
|
|
|
|
|
|
|
|
The code of the snapping system to interact the objects in the scene only
considers instances what comes from "DUPLI" objects.
This commit adds instances coming from Geometry nodes.
Differential Revision: https://developer.blender.org/D11020
|
|
Speed effect caused, that some raw frames are re-used for multiple
final frames. When cached final frame is freed due to memory being
full, it tried to free also lower level cached frames that were used
during compositing. Some lower level cached frames were already freed
by different final frame and `BLI_ghash_remove()` failed.
Check if key still exists in hash or if linked keys were overwritten
before removing them.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D10909
|
|
Under some circumstances, modifiers are evaluated more than once.
One time to compute the actual output geometry and another time
with `MOD_APPLY_ORCO`. This design probably has to be revisited
at some point in the context of geometry nodes. However, that would
be much more involved than a bug fix.
The issue was that during the second evaluation, the node tree is
evaluated based on a slightly different input geometry. The data
generated during the second evaluation overwrote the cached
data from the first evaluation, resulting in incorrect data that is
shown in the spreadsheet.
The fix for now is to simply not log any data in the second evaluation.
|
|
The `bisect_distance` in the mirror modifier was hard-coded to `0.001`.
This would result in some unexpected behavior like vertices close
to the mirror plane being deleted or merged.
The fix now adds a parameter to the mirror modifier to expose the
bisect distance to the user. The default is set to the previous
hard-coded value to not "change" previous files.
Ref D10201
|
|
When cache is strip is invalidated, movie file was reloaded even if it
isn't necessary. This caused significant performance issues when strip
is being dragged under playhead.
This was caused by calling `SEQ_relations_sequence_free_anim()` and it
was introduced as fix for T36124.
When it is necessary to reload file because another API holds reference
to ImBuf, do this explicitly besides cache invalidation.
In `rna_ColorManagedColorspaceSettings_reload_update()` this was already
done, so no change is needed there.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D11024
|
|
Math for drawing font over byte buffer was incorrect. Effect can be seen
when target buffer is fully black and transparent - this results in font
color being effectively premultiplied, which causes problems when image
is composited further.
Use `blend_color_mix_byte()` and `blend_color_mix_float()` for blending.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D11035
|
|
Camera object used for rendering reffered to original not evaluated data.
Use `DEG_get_evaluated_object()` to get evaluated camera.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D11039
|
|
`GPUFrameBuffer.viewport_get` has no args.
|
|
This was a regression introduced in rB0ff3f96a1b0193d69dae5ca69e7c93d6cdf34558.
|
|
values in 'Adjust Last Operation'
Always use the defaults here (radius, depth etc), since desired bounds
have been set interactively, it does not make sense to use a different
value from a previous command.
The Cube tool has already seen a fix for this in rB26e5718e29a7, but
Cone/UVSphere/Cylinder/IcoSphere havent.
Maniphest Tasks: T87677
Differential Revision: https://developer.blender.org/D11038
|
|
Dope Sheet to Properties
Properties Editor is a bit more picky (compared to the Outliner for
example) when it comes to listening to grease pencil notifiers -- it
requires the action to be set.
So when adding the notifier in the dopesheet from the channels (done in
`achannel_setting_flush_widget_cb`), now add the `NA_EDITED` action.
Maniphest Tasks: T87640
Differential Revision: https://developer.blender.org/D11025
|
|
Some curve modifiers (namely Hook, SoftBody and MeshDeform) can only work
on pre-tesselated spline points.
Before the modifier UI refactor in rB9b099c86123f, users would get the
'Apply on Spline' option, but disabled and with a tip explaining why
this cant be changed. After rB9b099c86123f though, this button was
always enabled [but disfunctional] leaving the user without an
explanation why this has no effect.
Now restore this functionality since it is quite important information.
Additionally, this button now appears to be ON in these cases which
makes more sense from the user perspective (so it does not represent the
actual setting on the modifier -- this would internally be switched ON in
the modifier calculation anyways though, see
'curve_get_tessellate_point')
Differential Revision: https://developer.blender.org/D11029
|
|
Renaming presets in 01d49d1542cee0da2a7629443f9534bc5cec5a55
caused them to be treated as separate key-maps.
|
|
Useful to simplify versioning code when identifiers need updating
in multiple places.
|
|
Logging was initialized after BKE_appdir paths were initialized,
making it impossible to see paths which are checked on startup.
|
|
This was caused by the closure refactor. The radiance being masked
for SSR, we need to not enable SSR when trying to render the specular
color pass.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11028
|
|
The `filtered_radiance` is not a texture form the texture pool.
It needs manual freeing if not used.
|
|
|
|
This was caused by some sort of degenerated normals.
|
|
|
|
It seems the pow result is unstable on some implementations.
Also avoid undefined behavior by clamping aoFactor to strict positive values.
|
|
scenarios
If a new action is created (e.g. by inserting keyframes), the header was
not garuanteed to display the right action.
Notifiers were fine here, redraw took place, the editors action was just
not set soon enough for the drawing.
Now make sure this is set correctly by ensuring the animation context is
right (same as the other editor regions do before drawing).
Maniphest Tasks: T86809
Differential Revision: https://developer.blender.org/D10796
|
|
|
|
We weren't clearing the recalc flags for that case.
|
|
Some persistent data code was disable due to a deeper design issue, which
meant some updates were not communicated to renderers.
Dependency graph updates work in two passes, once where Blender scene
animation updates are done, then app handler scripts can run to make further
scene modifications, and then the depsgraph is updated again to take those
into account.
Previously the viewport would update renderers twice when such app handler
scripts were present. Now both viewport and persistent data rendering update
the renderers only once, accumulating updates from both passes.
|
|
The function applying the search used the dummy search info for when
the item doesn't exist even when there was no UI data associated with
the node at all.
A fix is to only add the search menu when there is attribute info
stored for the node. This is something I wanted to do anyway, since
it makes it look more purposeful when there are no attribute info
for a node, less like a bug.
Differential Revision: https://developer.blender.org/D11016
|
|
The problem is that each uiBlock needs to be assigned a unique name,
but when there can be multiple modifiers of the same type, we use the
panel sort order for the unique part of the string. However, the most
recent test file has 1200+ panels in the property editor, so 4
characters isn't enough for a unique string.
That's not a situation I expected, but it makes sense, because we don't
remove legacy panels with unused types when loading old files. So they
tend to accumulate a bunch of unused panels. That's why this works fine
with a new property editor, it doesn't all of the extra old panels.
These panels must be stored for the expansion status and order, but
arguably we could cull unused panels on save. However, simply increasing
the length of the unique panel string is a valid fix in this situation.
In the future, we can look into removing unused panels when saving.
|
|
This was caused by a stupid copy & paste error in rB9f323e9bf79fbf4157a.
|
|
Any dynamic enum access would not use the callback.
Always set the owner_id to avoid this causing problems.
Oversight in 919558854d624f5db40acfa9f5674ac8c94873b6
|
|
Ref T78710
|
|
Prevent drag events from changing the highlighted gizmo
unless the drag event activates the gizmo.
This resolves a glitch where testing a drag event would highlight
at the point the drag was initiated even when the event was not handled.
|
|
Non-functional change in preparation for fix.
|
|
|
|
gizmo_button2d_bounds result wasn't valid when the gizmo was part
of a 3D gizmo group.
Regression in cf6d17a6aa421e0038fc1f8e60e3f1f708887c3e
|
|
The logic assumed that there were only 3 basic snapping modes.
|
|
The order of the two parameters was incorrect.
|
|
|
|
The fast triangulator from Blenlib could leave a non-manifold mesh
after removing degenerate triangles. Switched to an exact triangulator.
|
|
|