Commit Graph

117277 Commits

Author SHA1 Message Date
Bastien Montagne
4d4a84bbeb Merge branch 'blender-v3.3-release' 2022-08-18 15:50:05 +02:00
Bastien Montagne
582704a758 LibOverride: Preserve active object when creating overrides. 2022-08-18 15:49:50 +02:00
Bastien Montagne
a149c4aaee LibOverride: Fix more crashes when creating overrides from IDTemplates.
Assigning to RNA ID pointer properties will not _always_ trigger a
rebuild of the outliner tree, so try to enforce this when actually
creating overrides.
2022-08-18 15:49:50 +02:00
Luca Rood
9a65dca37c Merge branch 'blender-v3.3-release' 2022-08-18 15:26:30 +02:00
Luca Rood
8a799b00f8 Fix T100423: Addon's custom context menu entries get overridden by other addons
This introduces a new `UI_MT_button_context_menu` class which is
registered at startup. Addons can append/prepend draw functions to this
class, in order to add their custom context menu entries.

The new class replaces the old `WM_MT_button_context` class, thus
requiring a small change in addons using this feature. This is done
because addons were previously required to register the class
themselves, which caused addons to override each other's context menu
entries.

Now the class registration is handled by Blender, and addons need only
append their draw functions. The new class name ensures that addons
using the old method don't override menu entries made using the new
class.

Menu entries added with the legacy `WM_MT_button_context` class are
still drawn for backwards compatibility, but this class must not be used
going forward, as any addon using it still runs the risk of having its
menu entries overridden, and support for the legacy class is subject to
removal in a future version.

Reviewed By: campbellbarton

Maniphest Tasks: T100423

Differential Revision: https://developer.blender.org/D15702
2022-08-18 14:46:30 +02:00
Sergey Sharybin
a7652bf2f7 Fix T100470: Crash when changing the domain type 2022-08-18 14:29:56 +02:00
Bastien Montagne
756308f9e4 Merge branch 'blender-v3.3-release' 2022-08-18 12:36:41 +02:00
Bastien Montagne
c375750423 Fix T100476: Shift click to create overrides on objects not working.
Case where object was directly linked and not owned by a linked
collection was not properly handled, added some level of support for it
now.

Note that the behavior may not always be ideal in cases where the linked
object would be linked in many different local collecitons, hard to get
best solution always from this Editor given limited hierarchy data
available here.
2022-08-18 12:24:54 +02:00
Bastien Montagne
80b7902a56 Fix (unreported) outliner not redrawing on 'removed ID' notification.
Could lead to crahses in some cases, with outliner drawing code
accessing freed ID data in its tree.
2022-08-18 12:23:47 +02:00
Omar Emara
1854d31321 Realtime Compositor: Implement directional blur node
This patch implements the directional blur node for the realtime compositor.

Differential Revision: https://developer.blender.org/D15672

Reviewed By: Clement Foucault
2022-08-18 12:20:18 +02:00
Omar Emara
b828d453e9 Realtime Compositor: Implement filter node
This patch implements the filter node for the realtime compositor.

Differential Revision: https://developer.blender.org/D15661

Reviewed By: Clement Foucault
2022-08-18 12:00:14 +02:00
Omar Emara
6cb0a122df Realtime Compositor: Implement bokeh image node
This patch implements the bokeh image node for the realtime compositor.

Differential Revision: https://developer.blender.org/D15660

Reviewed By: Clement Foucault
2022-08-18 11:53:08 +02:00
Campbell Barton
0aaff9a07d WM: optimize adding notifier duplication check
Use a GSet to check for duplicate notifiers, for certain Python scripts
checking for duplicate notifiers added considerable overhead.

This is an alternative to D15129 with fewer chances to existing logic.
2022-08-18 15:55:45 +10:00
Campbell Barton
7be1c8bbae Cleanup: de-duplicate notifier add function 2022-08-18 14:45:49 +10:00
Campbell Barton
fcd72756ab Cleanup: early return, reduce right-shift 2022-08-18 14:45:47 +10:00
Colin Basnett
f5234474bd Fix T97618: Clipped text labels intermittently missing ellipses
The offending line was attempting to artificially add width to the
length of the string in order to "avoid ellipsing text that nearly
fits". The line doesn't actually appear to do anything beneficial, and
it causes the nasty text bug.

Old:
{F13029695}

New:
{F13327308}

Reviewed By: campbellbarton

Ref D15585
2022-08-18 11:01:53 +10:00
Campbell Barton
2a2ca3292a CMake: always unset CMAKE_REQUIRED_* variables after use
Always unset these variables after use as they could interfere with
other checks made afterwards.
2022-08-18 10:01:27 +10:00
Campbell Barton
cfe5bf4b22 Cleanup: spelling, format 2022-08-18 08:46:24 +10:00
listout
f197b1a1f1 CMake: support building with musl libc
Instead of using macros like GLIBC we can use the CMake build
systems internal functions to check if some header or functions are
present on the running system's libc.

Add ./build_files/cmake/have_features.cmake to add checks for
platform features which can be used to set defines for source
files that require them.

Reviewed By: campbellbarton

Ref D15696
2022-08-18 08:12:56 +10:00
Hans Goudey
0a84cc691d Cleanup: Move subdiv_mesh.c to C++ 2022-08-17 18:11:01 -04:00
Pablo Vazquez
f60b47f2c8 UI: Fix inconsistency use of uppercase/capitalization
Since VBO stands for vertex buffer object it should always be uppercase.

"Vertex" in "vertex buffer object" should only be capitalized at the
beginning of a sentence.
2022-08-17 22:23:48 +02:00
Pablo Vazquez
646ef6e157 UI: Avoid the word "Use" in checkbox labels
As per the writing styles guidelines.
https://wiki.blender.org/wiki/Human_Interface_Guidelines/Writing_Style
2022-08-17 22:14:28 +02:00
Julian Eisel
0be6427429 Outliner: Compile outliner tree-hashing files in C++
Some performance issues were found here with a heavy production file and
we want to look into using some C++ to improve things for this ancient
code.
2022-08-17 21:00:22 +02:00
Julian Eisel
d8223bdc38 Cleanup: Improvements to Outliner tree writing code, add assert
Comments there weren't really helpful, took me a while to get what they
try to say. This attempts to add a better explanation. Also add an
assert for a previous, implicit (but commented) assumption, and some
minor cleanups.
2022-08-17 20:27:52 +02:00
Julian Eisel
ecf4a7835d Outliner: Avoid unnecessary Outliner storage copy
Was always creating a copy of `SpaceOutliner`, even though it's only
needed for one conditional branch. This is a shallow copy, so shouldn't
be that expensive, still trivial to avoid.
2022-08-17 20:27:52 +02:00
Ray Molenkamp
f6a6665947 deps/windows: bzip2 1.0.8 for python
backport of python PR 31735 [1]

[1] https://github.com/python/cpython/pull/31735
2022-08-17 12:16:22 -06:00
Hans Goudey
31279d522b Fix: Compiler warning in macro after recent C++ conversion
The iterator parameters struct should be initialized to zero in both
C and C++. Using memset seems to be the only reliable way to do that.
2022-08-17 13:16:48 -04:00
Hans Goudey
27f2ff6b5b Cleanup: Remove redundant use of evaluated non-mesh objects
Metaball, curve, text, and surface objects use the geometry component
system to add evaluated mesh object instances to the dependency graph
"for render engine" iterator. Therefore it is unnecessary to process
those object types in these loops-- it would either be redundant work
or a no-op.
2022-08-17 13:02:45 -04:00
Bastien Montagne
04a04e9f69 Merge branch 'blender-v3.3-release' 2022-08-17 18:08:37 +02:00
Bastien Montagne
244ef1f0f5 LibOverride: Remove the 'make all editable' user preferences.
This behavior is now implicitely controlled by the 'Make' operations,
based either on context or selected items.
2022-08-17 18:08:18 +02:00
Hans Goudey
9a67aac8d7 Cleanup: Fix outdated comment 2022-08-17 12:05:20 -04:00
Hans Goudey
a73cc81646 Cleanup: Remove unused function
Also remove two DispList references I missed in the previous commit.
2022-08-17 12:03:26 -04:00
Hans Goudey
6718afdc8a Cleanup: Fix outdated comments referring to DispList 2022-08-17 11:57:21 -04:00
Hans Goudey
316194c384 Merge branch 'blender-v3.3-release' 2022-08-17 11:13:13 -04:00
Hans Goudey
92493a5fa7 Fix: Node editor context path for curves objects
The object data path item wasn't added properly.
Also remove some of the unnecessary variables and forward declarations.
2022-08-17 11:11:28 -04:00
Hans Goudey
eaa87101cd Metaball: Evaluate metaball objects as mesh components
With the ultimate goal of simplifying drawing and evaluation,
this patch makes the following changes and removes code:
- Use `Mesh` instead of `DispList` for evaluated basis metaballs.
- Remove all `DispList` drawing code, which is now unused.
- Simplify code that converts evaluated metaballs to meshes.
- Store the evaluated mesh in the evaluated geometry set.

This has the following indirect benefits:
- Evaluated meshes from metaball objects can be used in geometry nodes.
- Renderers can ignore evaluated metaball objects completely
- Cycles rendering no longer has to convert to mesh from `DispList`.
- We get closer to removing `DispList` completely.
- Optimizations to mesh rendering will also apply to metaball objects.

The vertex normals on the evaluated mesh are technically invalid;
the regular calculation wouldn't reproduce them. Metaball objects
don't support modifiers though, so it shouldn't be a problem.
Eventually we can support per-vertex custom normals (T93551).

Differential Revision: https://developer.blender.org/D14593
2022-08-17 10:20:25 -04:00
Julian Eisel
71f091a631 Cleanup: Remove unused Outliner search element storage
This is old code to keep track of an active search element, so you could
step through the search results. This isn't used anymore, and not needed
since searching now filters the tree to only show matches. If we ever
wanted to have support for stepping through elements again, that should be
done via the active element instead.
2022-08-17 16:15:03 +02:00
Hans Goudey
db054b447d Cleanup: Move view3d_select.c to C++
Almost entirely adding casting and standard clang tidy changes.
Also switch to `blender::Vector` instead of the macro-based `BLI_array`.
2022-08-17 09:54:01 -04:00
Omar Emara
923e10d751 Fix: Crash if Movie Clip node has an empty movie
The movie clip GPU texture free function doesn't do null checks, so make
sure the movie clip is not null before freeing.
2022-08-17 15:11:35 +02:00
Bastien Montagne
f4040da3ef install_deps: replace libglew by libepoxy.
Should have been part of D15291/rBa296b8f694d1.

ref. T99618
2022-08-17 14:23:17 +02:00
Philipp Oeser
1e427e224b Merge branch 'blender-v3.3-release' 2022-08-17 14:15:33 +02:00
Philipp Oeser
224869acc5 Use report warning opening file written by newer Blender binary
handle_subversion_warning() was reporting with RPT_ERROR type, replaced
with RPT_WARNING.

RPT_ERROR would stop python scripts opening files written by newer
Blender binary with bpy.ops.wm.open_mainfile(), preventing further code
from running. This does not seem right since Blender itself still loads
the files.

Ran into this checking T100446 in 2.93.

Differential Revision: https://developer.blender.org/D15712
2022-08-17 14:11:51 +02:00
Campbell Barton
517d622057 Cleanup: conversion warnings in GCC 2022-08-17 21:34:13 +10:00
Bastien Montagne
6ab5bced61 Merge branch 'blender-v3.3-release' 2022-08-17 13:01:09 +02:00
Sebastian Parborg
1c63e4233d Cleanup: Fix "unused m_system" warnings
The dummy `m_system` variable is not needed in the GHOST_NULL classes
2022-08-17 12:54:46 +02:00
Bastien Montagne
fec2543648 LibOverride: Add Make/Reset/Clear entries to IDTemplate contextual menu.
Matches main operations exposed in View3D and the Outliner.
2022-08-17 12:10:31 +02:00
Campbell Barton
a078262804 Merge branch 'blender-v3.3-release' 2022-08-17 17:07:31 +10:00
Campbell Barton
839ece6477 Fix T100411: Invert Axis Pan option ignored for Lock Camera Pan/Zoom 2022-08-17 17:06:09 +10:00
Campbell Barton
a123fc9e22 GHOST/EGL: Only draw grey into buffers attached to windows
Avoid redundant drawing, match GHOST/GLX behavior.
2022-08-17 16:21:13 +10:00
Campbell Barton
b1d3097fa9 WM: update comment about window redraw for thumbnails 2022-08-17 15:56:00 +10:00