Age | Commit message (Collapse) | Author |
|
The thread affinity setting in OIDN can break multithreading on some CPUs.
While this leads to somewhat worse performance on CPUs that do work correctly,
it's better than having some CPUs use only half the cores.
|
|
|
|
This adds the ability to mark slots as removed while iterating through
a mutable set.
Differential Revision: https://developer.blender.org/D12867
|
|
Use mutable iterator to support callbacks removing themselves.
|
|
When there was no image buffer, sample leaked memory.
|
|
This margin was inconsistently calculated: only taking the
visible region and interface scale into account in some cases.
|
|
We do this in other nodes to reduce overhead of using the same node more
than once. I don't think it will make a difference with index nodes
currently, but at least it's consistent.
|
|
noise.cc uses std::min and std::max without
including the algorithm header required.
Newer MSVC versions and GCC implicitly include
it somewhere, which isn't something we should
count on. Best to include what you use.
|
|
Even though these nodes do support fields internally, there are no
input string sockets that support fields currently, so removing
the diamond sockets for now helps avoid confusion.
Differential Revision: https://developer.blender.org/D12828
|
|
|
|
Split thumbnail job in 2 passes. First pass will render visible images
and second part renders set of "guaranteed" equally spaced images.
When viewing larger amount of strips, it is likely that only 1 or 2
images will be rendered in first pass, while in second pass it is up to
30 images.
This results (seemingly) in 3x better performance, but zooming before
set of guaranteed images is done will be slightly more inaccurate.
|
|
During rendering VSE cache is invalidated, so thumbnails would be
removed and thumbnail job would constantly restart.
Even if thumbnails would be preserved, resources should be dedicated
for rendering job.
|
|
When the 'Separate Children' option is selected, the children of
the selected collection are inserted into the geometry output
sorted alphabetically by name.
One item to note is that the rename function does not trigger a
depsgraph update. This means that the changes are not reflected
in the spreadsheet until another action triggers the update.
Differential Revision: https://developer.blender.org/D12907
|
|
All attributes should be writeable, it is now only needed for the
legacy `normal` attribute on meshes.
|
|
Calculating the number of points is overkill here, if there are many splines.
The `exists` check just needs to know if there are any points at all.
|
|
Move the static functions higher in the file so they are usabl
for an upcoming patch, and make it use clearer names instead
of overloading a function name.
|
|
Pencil
Not naming the auto-generated vertexgroup after the selected bone was
just confusing (since the group would not have an effect), so now use
similar code that is used for meshes for greasepencil as well.
Maniphest Tasks: T92314
Differential Revision: https://developer.blender.org/D12906
|
|
This helps identify where the function came from.
|
|
Error in {rB69d6222481b4}
|
|
Remove the code I had hoped to fix in rB3edae09e, the fix was unreliable.
No functional changes to Blender.
|
|
Instead of switch statements, make use of generic virtual arrays
so the code is shorter and easier to read.
Differential Revision: https://developer.blender.org/D12908
|
|
|
|
It seems possible to switch object selection (if `Lock Object Modes` is
turned off) and end up with an object that has a SculptSession but a
NULL PBVH.
(I was not able to repro from scratch, but file from the report was
clearly in that state).
This would crash in displaying scene statistics.
While there might be a deeper fix (making sure PBVH is available early
enough -- possibly using `BKE_sculpt_object_pbvh_ensure`,
`sculpt_update_object` or friends), there are also many checks in tools
for PBVH, so the situation seems to be somewhat vaild/expected also in
other places.
So to fix this, just check for a non-NULL PBVH, returning early
otherwise.
Note: this leaves us with displaying 0/0 Faces & Vertices in the borked
case until an operation takes place that updates the PBVH.
Maniphest Tasks: T92246
Differential Revision: https://developer.blender.org/D12904
|
|
The `use_occlusion_test` parameter test was accidentally removed in
{rB91c33c8b9952}
|
|
The old code only worked when built-in nodes are only unregistered
at most once while Blender is running. However, this is not the case
when running certain unit tests such as `AbstractHierarchy*`
in `blender_test`.
Found by Sybren, thanks.
|
|
In an attempt to reduce scrolling. This can be re-visited if a kind of switch
between "compact" and "comfortable" UI size is implemented in the future.
|
|
On GCC in release mode (and maybe also debug mode without ASAN enabled),
allocating an `AssetLibraryService` will reuse the space that should
have just been freed. This made a test fail, as it was testing that new
memory was allocated and not some old instance reused.
To ensure that the calls that should allocate a new block of memory
return a unique pointer, I added some dummy allocation to the test.
No functional changes to Blender
|
|
Port shader node musgrave texture
Differential Revision: https://developer.blender.org/D12701
|
|
Previously, every node had its own declaration. This isn't ideal, because
it's often the case that all nodes of the same type have the same declaration.
That's the case for all nodes using declarations currently. It will not be true
for e.g. group nodes in the future.
Sharing node declarations between nodes makes it a bit more efficient.
Differential Revision: https://developer.blender.org/D12898
|
|
This was caused by `DRW_view_data_texture_list_size_validate` which now
delete everything from the render engine.
This might change in the future but for now we just avoid calling it from
the render loop (when using DRW_cache_restart).
|
|
CD_PROP_COLOR vertex data is stored in scene linear while legacy vertex
colors are srgb, so both operators also need to do this conversion
Reviewed By: sergey
Maniphest Tasks: T79005
Differential Revision: https://developer.blender.org/D8320
|
|
Adds a button, Update All Paths, to the Motion Paths property tabs and
will always show. The operator goes through all visible objects and
updates their motion paths.
The current implementation has a subtle functional change. Calculating
or updating motion paths for armature objects (through the Object tab,
not Armature tab) now also updates the paths for its bones. We could
preserve the old behavior but it doesn't seem necessary. It seems more
likely that the animator wants to update both anyways.
Reviewed by: sybren
Maniphest Tasks: T83068
Differential Revision: https://developer.blender.org/D11667
|
|
Add `blender::bke::AssetLibraryService` class that acts like a
blendfile-scoped singleton. It's allocated upon the first call to
`BKE_asset_library_load` and destroyed in the LOAD-PRE handler.
The `AssetLibraryService` ensures that edits to asset catalogs are not
lost when the asset browser editor closes (or even reloads). Instead,
the `AssetLibrary` pointers it owns are kept around as long as the blend
file is open.
Reviewed By: Severin
Maniphest Tasks: T92151
Differential Revision: https://developer.blender.org/D12885
|
|
The Endpoint Selection node allows for the Selection of an aribitrary
number of endpoints from each spline in a curve. The start and end
inputs are evaluated on the spline domain. The result is outputted
as a boolean field on the point domain.
Differential Revision: https://developer.blender.org/D12846
|
|
The property was missing when a group input changed from not
supporting fields to supporting fields.
|
|
Differential Revision: https://developer.blender.org/D12758
|
|
Previously, some multi-functions were allocated in a resource scope.
This was fine as long as the multi-functions were only needed during
the current evaluation of the node tree. However, now cases arise
that require the multi-functions to be alive after the modifier is finished.
For example, we want to evaluate fields created with geometry nodes
outside of geometry nodes.
To make this work, `std::shared_ptr` has to be used in a few more places.
Realistically, this shouldn't have a noticable impact on performance.
If this does become a bottleneck in the future, we can think about ways
to make this work without using `shared_ptr` for multi-functions that
are only used once.
|
|
Hide gizmos & prevent transform & selection in scope display.
|
|
Replace modal operator with the OPTYPE_DEPENDS_ON_CURSOR flag.
This has the advantage of showing the shortcut in the menu.
|
|
Support setting a cursor when an operator is waiting for input.
|
|
|
|
Operators and operator-macros duplicated RNA properties.
|
|
Move most of the gizmo snap and placement code to `view_cursor_snap.c`.
Simplify and extend the snap API.
Differential Revision: https://developer.blender.org/D12868
|
|
Regression in 46aa70cb486d719139ac43e5c9ac4b0fe998e202
|
|
- Rename RNA SpaceSeq.show_strip_overlay to show_overlays
matching the 3D View, the term "strip" was misleading as this is used
for the preview as well.
- Rename various RNA overlay settings to overlay_frame
since "Frame Offset" is a specific feature, avoid having both
Editor.show_overlay and SpaceSeq.show_overlays.
- Rename Editing `over_*` -> `overlay_frame_*` in DNA,
as well as flags.
|
|
|
|
Add an outine around the playhead, matching the color of the background (slightly darkened)
to improve the readability of the current frame line when placed against curves or strips
with a similar color.
{F10944336, size=full}
Differential Revision: https://developer.blender.org/D12810
|
|
Currently, the background color of headers gets darkened when the editor is not active,
this makes it hard to theme, and adds contrast/noise when it's not needed.
This patch makes headers use the regular theme color when the editor is not active, so it
can be made to flush with the background more easily. And lightens the header (by +10,
same value as before) when the editor is active, providing the wanted highlight.
The motivations behind this change are:
* Simplify picking a theme color for headers.
* Widgets already become lighter on mouse hover, this change creates a connection with that concept.
Left: current master, inactive header is darkened.
Right: this patch, inactive header gets the theme color, active editor gets header in a slightly lighter color (like most widgets)
{F11052503, size=full, loop, autoplay}
Reviewed By: #user_interface, HooglyBoogly
Differential Revision: https://developer.blender.org/D12856
|
|
Back in Blender 2.30, the GUI project brought panels into Blender among other important visual updates.
For the first time it was possible to move the wall of buttons around. Providing a clear separation
between sections (it even allowed the grouping of panels in tabs!)
During the 2.5 redesign, the separation between panels became a line on top of each panel, and panels received
theme settings for background and header colors. The default theme used the same color for both.
In 2.8 the background color of panels was different from headers in the default theme, so the separator
line was removed. While the separator line wasn't elegant (only on top, non-themeable, hard-coded emboss effect),
it provided a sort of separation between panels.
This patch solves the panels-separation by simply adding a margin space around them (not visible in default theme yet).
Even though the margin reduces the width of the working area slightly, it makes room for the upcoming always-visible scrollbars.
Other adjustments:
* Use arrow icon instead of triangle to collapse/expand
* Use rounded corners to match the rest of the UI (editor corners, nodes, etc).
{F10953929, size=full}
Margin on panels makes use of the `style->panelouter` property that hasn't been
used in a while. Also slight tweaks to `boxspace` and `templatespace` style properties so they
are multiples of 2 and operations on them round better.
There is technically no need to update the themes for them to work, so no theme changes are included in this patch.
{F10953931, size=full}
{F10953933, size=full}
{F10953934, size=full}
{F10954003, size=full}
----
A new theme setting under Style controls the roundness of all panels (added it to Style instead of ThemeSpace because I think controlling the panel roundness per editor is a bit overkill):
{F11091561, size=full, autoplay, loop}
Reviewed By: HooglyBoogly
Differential Revision: https://developer.blender.org/D12814
|
|
Differential Revision: https://developer.blender.org/D12878
|