wm.context_* operators typically have their options set by menus
or key bindings.
Re-using options in this case can cause problems where two
actions that change unrelated properties will re-use a setting
from the previous execution.
For example changing the lights Power impacted
changing it's Radius afterwards.
The RNA path used for animating the settings passed to the node tree
is incorrect. Currently it's just `settings.property_name`, but it's
the path from the ID, not the modifier, so it should be
`modifiers[modifier_name].settings.property_name`.
However, the "Settings" struct is separated in RNA and DNA, which means
that the callback to get the RNA path does not know about the modifier's
name in order to fill the above path, so some reference to the modifier
in the "Settings" struct would be necessary, which would create a
convoluted layout in the `ModifierData` struct.
Instead, this commit simply removes the "Settings" struct from RNA,
which isn't as elegant from the point of view of the Python API,
but otherwise it's a nice simplification. Note that we don't remove the
"Settings" struct from DNA, because it would break reading old files.
Differential Revision: https://developer.blender.org/D10175
In the CompositorOperation::deinitExecution the viewer could be freed at
the same time it was drawn in the image editor or node editor. There is
a guard for that but wasn't added during the migration of the two
editors to the draw manager.
Building RC builds would parse `BLENDER_VERSION_CYCLE_NUMBER` that
doesn't exist anymore. It was removed by {D7748}.
This change removes it from `buildbot_utils.py`.
The `image_get_gpu_texture` didn't use the iuser->view_index but
recalculated the requested view again. This lead to inconsistent
behavior when switching between multi view textures or stereo textures.
This has been fixed by ensuring that the `iuser->view_index` is always
used.
An Image has only place to store 2 view textures. This is done for
right/left eye compositing. A multi view texture can have more views.
This would lead to reading and writing to unallocated space.
When a multiview texture is requested that is larger than 1. It will
always be cached as being the first eye. The `gpu_view` of the Image is
also used as a cache key to check this.
During multiview rendering the `cryptomatte_accum_buffer` is not cleared
between the views and leaves artifacts on the next view to be rendered.
This change clears the accum buffer when it already exists and will be
reused for the next view.
Only offset animation if whole strip is snapped.
Bug introduced in e36c05b3d191.
Reviewed By: ISS
Differential Revision: https://developer.blender.org/D10116
Scene strips can't be prefetched and seq_prefetch_do_skip_frame()
should check if scene strip is in timeline. But it did not recurse into
meta strips, which resulted in crash.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D9999
Generator strips with zero inputs have their length set to 1 pernamently.
In some cases it is useful to use speed effect on these strips because they
can be animated. This can be done by using their length as is on timeline as
content length.
This is very simplified and temporary solution, as cutting these strips won't
give expected results. Lot of code relies on length of these strips being fixed
to 1, resolving this properly should be done by T59540.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D10026
Building proxy with meta strip selected resulted in attempt to render
meta strip itself and save result as image as is done when building
image proxies.
Remove meta strip from list of supported strips.
Multicam, Meta and scene strip are cleared from poll function in UI as well.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D10001
Selecting inside an island no longer de-selects
when it's too far from an edge.
When edge select fails fall back to inside-face test.
This follows 908b383b7d2199c0c614d085ff65a03eb7852274
which made this change for face-select.
Apply to island selection since it doesn't make sense
for island select to behave differently.
* tbb::blocked_range moved to a different namespace and since the fix is
non-trivial, remove some unused code that used this.
* Task group priorities are no longer supported. It's unclear if they are
useful at all right now and even set correctly, for now all tasks are equal
priority with TBB 2021.
There are a couple of operations that are meant to set the active
modifier that currently don't. The first is a mouse press on the drag
icon on the right of the header, and the second is mouse presses on
modifier sub-panels headers.
This was an oversight in the implementation, especially the second,
because the blank space on the right of a sub-panel header often looks
just like the blank space elsewhere on the modifier's panel that
*does* set the active modifier.
Note that this purposefully doesn't include collapsing and expanding
the modifier as operations that set the active, since regardless of
whether that makes sense, it wasn't in the agreed upon design, which
would ideally not need changing for 2.92.
Differential Revision: https://developer.blender.org/D10155
Double floating point precision is an extension of OpenCL, which might
not be implemented by certain drivers, such as Intel Xe graphics.
Cycles does not use double floating point precision, and there is no
need on keeping doubles unless there is an explicit decision to use
them.
This is a simple fix from Cycles side to replace double floating point
type with a type of same size and alignment rules. Inspired by Brecht
and Patrick.
Tested on NVidia Titan V, Radeon RX Vega M, and TGL laptop.
Differential Revision: https://developer.blender.org/D10143
Was happening when there are deform modifiers prior to the multires.
There are detail in the comment around sculpt_undo_refine_subdiv(),
but briefly: the subdiv was refined with wrong base mesh coordinates.
Differential Revision: https://developer.blender.org/D10158
Previously float2 was converted to float3 by implicitly converting to a
float pointer first, which was then passed to the float3 constructor.
This leads to uninitialized memory in the z component of the new float3.
Thanks to that same point cache being exposed in **four** different RNA
paths (twice in particle system, and twice in its embedded cloth
simulation settings).
Only way is to also make particle system overridable.
Dividing the workload by number of tasks in float is imprecise and
lead in some cases to particles not being calculated at all
(example: 20000 particles, 144 tasks).
Switching this calculation to integer makes sure we don't lose count.
Differential Revision: https://developer.blender.org/D10157
While the previous fix for T84920 is correct, the crash could still be
triggered by changing the active object while in edit-mode.
Ensure stale data isn't used by tagging for depsgraph update when
edit-mode data is freed on undo.
While exiting edit-mode normally does this, it's possible to set the
active object to a non edit-mode mesh, skipping the mode-switch
operator and it's depsgraph tagging.
Regression from d8992192e5512380f57433df113f3e3f8b22f7cb
The original code relied on having a separate edit-object pointer
than the active object.
Use a utility function to avoid code duplication as there are
other areas that have similar functionality.
Selecting markers and cameras could crash when in edit-mode.
Only support this in object mode as mode-switching as part of
activating cameras doesn't seem like a priority.
This has the same root cause as T84920.
This uses the values form the stroke automasking cache to control the
falloff of all deformers in the boundary brush. Usually this is already
considered in the general brush falloff function for the rest of the
brushes, but this is one of the exceptions where the brush implements
its custom falloff.
Reviewed By: JacquesLucke
Maniphest Tasks: T84896
Differential Revision: https://developer.blender.org/D10161
There was a bug which which prevented box and lasso select to work
correctly in GP Edit Mode. It would select a nearby vertex before the
box selection.
This patch fixes it so it works with a click event,
like the default keymap, which fixes box and lasso selection.
Ref D10119
Uninitialized stack memory was being re-used in a loop.
Error in original commit from 04f81c8225f28ba9722cc06dc7f2d8a4d72a3fa3
This happened to work as the same memory location was re-used
between iterations and not overwritten.