Blender UI Layout API allows supplying parameters to operators via
button definitions. If an operator behavior strongly depends on its
parameters, it may be difficult to write a tooltip that covers all
of its operation modes. Thus it is useful to provide a way for the
operator to produce different descriptions based on the input info.
Reviewers: campbellbarton
Differential Revision: https://developer.blender.org/D5709
File Browser image thumbnails get just a contrasting outline and no shadow.
Differential Revision: https://developer.blender.org/D5708
Reviewed by Brecht Van Lommel
Before, it was only possible to fade the active object. The new option allows to fade all non gpencil selected object. This is a common request by artists.
{F7719513}
Reviewers: mendio, pepeland
Reviewed By: mendio
Differential Revision: https://developer.blender.org/D5704
Instead of fixed size, `IMM_BUFFER_SIZE` is adjustable now. The internal buffer can expand if there is a need a bigger buffer. All other behaviors are still the same.
Reviewed By: fclem, #gpu_viewport
Differential Revision: https://developer.blender.org/D5570
We basically duplicate the height map branch plugged into the bump node,
and tag each node in each branch as dx/dy/ref using `branch_tag`.
Then we add a one pixel offset on the texture coordinates if the node is
tagged as dx or dy.
The dx/dy branches are plugged into (new) hidden sockets on the bump node.
This match cycles bump better but have a performance impact. Also, complex
nodetrees can now become instruction limited and not compile anymore.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D5531
Popup would be closed immediately after creating, because of incorrect
mouse coordinates stored in window (popup is set to close if mouse is
some distance away from it).
Completes fix for T69581.
Replaces the large icons used in the File Browser with updated versions by Andrzej Ambroz (jendrzych).
Differential Revision: https://developer.blender.org/D5698
Reviewed by Brecht Van Lommel
The `dimensions` property of the noise nodes has been renamed to
`noise_dimensions` because it conflicted with and overwrote the
`dimensions` property of the base node.
Reviewers: brecht, JacquesLucke
Differential Revision: https://developer.blender.org/D5705
+ Simplify code, move into own function and run once rather than on every point
+ Improved snapping when a stroke is between increments
+ Added ISO grid option for lines specified by Angle under guide settings
+ Radial snapping mode uses Angle as an offset
Differential Revision: https://developer.blender.org/D5668
This is a partial fix, in that it only brings back the banner reports in
the status bar. The popups still don't show up but I need to investigate
more.
It's really ugly that reports rely on wmWindowManager.winactive, but
that's how it is...
Partialy fixes T69581.
Parenting/constraints/delta-scaled all caused setting dimensions to fail.
Take the difference between the input scale and final scale into
account when applying the dimensions.
Allow selecting how the new location/rotation/scale is combined with
the existing transformation. This is most useful for rotation, which
has multiple options, and scale, which previously could only replace.
The failing assert was there before the recent file browser design
overhaul. Might have been in there for quite a while in fact.
Auto-creation in this case means that the file path would be created if
a non-existent path was entered in the file browser path button.
This confirmation prompt was there earlier, we removed the prompts for
creating new directories all together, but in this case it's reasonable.
Without it, it's simply too easy to create new directories by accident.
Also rename widget color blending functions more clearly.
- color_blend_v3_v3, was widget_state_blend
- color_blend_v4_v4v4, was round_box_shade_col4_r
- color_ensure_contrast_v3, was rgb_ensure_contrast
Add option to change the Intensity of the HDRI in the 3d viewport. This works for both EEVEE and Cycles
Reviewed By: brecht, fclem
Differential Revision: https://developer.blender.org/D5674
Allow combining location, rotation and scale at the same time,
using one constraint. The mixing modes are based on matrix
multiplication, but handle scale in a way that avoids creating
shear.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D5640
Upon close inspection, the way the Offset mode works in the
Copy Rotation constraint makes no sense, and in fact, destroys
the rotation of its owner unless either it's single axis, or
the order is set specifically to `ZYX Euler`.
Since it can't simply be changed because of backward compatibility
concerns, replace the checkbox with a dropdown that provides a set
of new modes that actually make sense.
Specifically, add a mode that simply adds Euler components together,
and two options that use matrix multiplication in different order.
The Python use_offset property is replaced with compatibility stubs.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D5640
Adds back auto-completion and auto-creation (inserting a non-existing
file-path would create it) for the file path button. The second feature
was left out knowingly, but seems there are reasonable use cases for it.
We can't add these features to the button in the Python script, we have
to call into C. So using a template to do that.
Note that this is based on the old file browser code, I've copied over
the TODO comment.
We need to ensure the file browser window doesn't manage the handlers
for itself.
The special file browser closing code that we used previously isn't
needed anymore, wm_window_open_temp() and the handling of
EVT_FILESELECT_FULL_OPEN already manage it fine.
Ideally, when a reference linked ID is missing (and replaced by linking
code with an empty place-holder), we should just keep the local
overriding datablocks as-is, until broken links are fixed.
Not really working yet though, needs more work here...
Similar change to the one done for tagged IDs overriding some days ago.
We do not always want to remap all local usages of a linked data-block
to its new local overriding copy.
Remove unused OBJECT_OT_mode_set_or_submode, add
OBJECT_OT_mode_set_with_submode which can switch to edit mode as well
as a sub-mode - currently only mesh select mode is supported
(others may be added later).
Part of T68836
`transform conversions.c` is a file that is getting too big (almost 10,000 lines).
So it's a good idea to split it into smaller files.
differential revision: https://developer.blender.org/D5677
When click-dragging to change values in textures (for example Musgrave-
>Size to give an example) the step size is too big.
Reviewers: brecht, lichtwerk
Reviewed By: brecht, lichtwerk
Differential Revision: https://developer.blender.org/D5661
Was always evaluating due to typo in rB34ab90f546f0.
Reviewers: brecht
Maniphest Tasks: T68840
Differential Revision: https://developer.blender.org/D5695
It is possible that POST callbacks will modify objects or relations.
This change makes it so an extra update pass is done if needed.
Reviewers: brecht
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D5690
The operator set as active object material the material used in the selected stroke.
Access to the operator were added in the stroke menu and context stroke menu.
Reviewers: antoniov, pepeland
Tags: #bf_blender, #grease_pencil
Differential Revision: https://developer.blender.org/D5692
setting/clearing render region uses ND_RENDER_OPTIONS notifier, but
listener was only refreshing RENDER and VIEWLAYER tabs in that case,
whereas the render region buttons are located in OUTPUT tab.
Reviewers: billreynish
Maniphest Tasks: T69522
Differential Revision: https://developer.blender.org/D5685
I believed the crash I experienced happened because:
1. The `extract_pos_nor_init` function is called.
2. Tasks are added to the task pool for `extract_pos_nor`.
3. The tasks begin to be executed while more tasks are added.
4. In some rare cases, all existing tasks are finished, but not all have been added yet.
5. This let the task-counter go down to zero.
6. This triggered a call to `extract_pos_nor_finish`.
7. Then more tasks are added and in the end `extract_pos_nor_finish` is called again.
A solution is to use a task pool that is suspended when created.
Unfortunately, there was an outdated comment, that was probably the root cause of the issue.
Reviewers: fclem, sergey
Differential Revision: https://developer.blender.org/D5680