Correct error in own fix [0] popovers (F9-redo) were handled the same
as popup menus. `F4,P` wasn't opening the preferences as it used to.
Resolve by checking if the parent was a menu.
[0]: c3bf00cd2d
The world light direction in the irradiance cache was inverted due
to misunderstanding of a code review comment. This PR fixes this
so the captured light from a direction is stored in the SH correctly.
Pull Request: https://projects.blender.org/blender/blender/pulls/110258
Enum popups don't set an active button so accelerator keys didn't work.
Always use accelerator keys in popups because these are typically
launched from non-menus (the redo popup for e.g.) where it doesn't
make sense to pass the event to the parent.
Shader write must be correctly specified where required for
shaders which perform direct image and buffer writing operations.
Authored by Apple: Michael Parkin-White
Pull Request: https://projects.blender.org/blender/blender/pulls/110219
The Realtime GPU compositor crashes when muting output or viewer nodes.
This happens because output nodes are scheduled regardless of their
muted statued, however, the initial reference count takes the muted
status into account, resulting in a use after free error, hence the
crash.
To fix this, we simply do not schedule muted output nodes.
"Flip" option in mirror modifier is only effective for when "Bisect" is
enabled, thus grey out the flip option when it's ineffective to avoid
confusion on the user interface.
Pull Request: https://projects.blender.org/blender/blender/pulls/110191
It is possible to organize shape keys into a tree through the
reference key setting. Mesh editing and sculpting a reference
key is supposed to update all its children, but this was only
done for one level of dependencies.
This changes the code to retrieve the complete set of dependent
keys and update them all.
Caused by fd3e44492e.
Images were drawn filling the entire window, now use available size/
offset inside the window and pass these as `rctf` to
`draw_display_buffer`.
Should be good for 3.6/3.3 LTS
Pull Request: https://projects.blender.org/blender/blender/pulls/110206
When scenes only have a world probe the world probe had several
artifacts.
- The first sample didn't update the world.
- When switching between viewports the world didn't get updates
- When rendering it ignored the resolution that was set by the user
The reason was that the ubo was only updated when the probes where
synced. This PR adds an exception to also update when there is only
the world probe.
Pull Request: https://projects.blender.org/blender/blender/pulls/110238
Implementation of the smoothing operator for grease pencil strokes.
Works on `CurvesGeometry` position and other attributes, such as radius.
Based on the gaussian blur like algorithm in `BKE_gpencil_stroke_smooth_point` by Henrik Dick.
Pull Request: https://projects.blender.org/blender/blender/pulls/109635
This is a fairly verbose part of nodes RNA, which defines the base
NodeSocket and NodeSocketInterface types as well as all the subtypes
required for showing correct properties based on socket type.
The RNA for this part of nodes is quite self-contained, so moving it
to a separate files works well and reduces the overall size of
rna_nodetree.cc considerably (~1700 LoC). This does not include any
functional changes.
Moving this to a separate file will make it easier to improve the node
group interface (#109135).
Pull Request: https://projects.blender.org/blender/blender/pulls/110220
The LOD selection for reflection probes wasn't correct and would
select a noisier texture than required. This change will improve
the LOD selection making less noise in the rendered image.
Pull Request: https://projects.blender.org/blender/blender/pulls/110234
In order to better suit the upcoming changes of shader node previews, this
patch replaces the old implementation of the storage of the compositor
previews. It also prevents memory loss for future modification.
BKE_node_preview_clear_tree was removed as it is no longer needed and
will not be used by the new shader node previews.
Pull Request: https://projects.blender.org/blender/blender/pulls/110064
Previously the normal strength linearly interpolated and extrapolated
the normal in world space. Instead do it in tangent space, in a way
that ensure the normal remains above the surface and valid.
Pull Request: https://projects.blender.org/blender/blender/pulls/109763
No user visible changes expected, the new button state is not used yet.
Setting a new uiBut drawflag shows items in an indeterminate state, not
indicating a specific value or state.
Pull Request: https://projects.blender.org/blender/blender/pulls/108210
Introduced in recent commit (#110194) where the reflection probes are used as
ubos. Ubos have different memory requirements, but the struct
wasn't adjusted, resulting in incorrect renderings.
Pull Request: https://projects.blender.org/blender/blender/pulls/110202
File > New> General tooltip is misleading, as explained in issue #109875
Changes the tooltip from the current "Open the default file (doesn't save the current file)" to simply "Open the default file".
It could be argued that the note is still valid for when people have Preferences > Save & Load > Save Prompt disabled, but we don't have a similar note in any of the other cases that open a different file.
Pull Request: https://projects.blender.org/blender/blender/pulls/110086
The `light_cache_info` string holds information about the outcome of
Eevee light cache baking. It is currently 64 bits, which is enough to
hold all possible messages in English. However, some messages need to
be longer than this in other languages, so the holding string also
needs to be longer. From what I can tell, 128 bytes is plenty enough.
Pull Request: https://projects.blender.org/blender/blender/pulls/110028
No user visible changes expected.
Previously the calculations to skip building the layout for invisible
items used the scrolling offsets quite a bit. These values are managed
in code elsewhere, better to minimize such dependencies. Plus we can
rely less on floating point values, making code more simple & reliable.
Also see #103343.
Couldn't move two files yet:
* `softbody.c`: The corresponding regression test fails. It seems like the
conversion to C++ changes floating point accuracy, but it's not clear where that happens exactly.
* `writeffmpeg.c`: Is a bit more complex to convert because of the static array in `av_err2str`.
Pull Request: https://projects.blender.org/blender/blender/pulls/110182
Our intent was that uniform buffers would have been used already. The
buffer was already marked as uniform buffer, but still was attached
as an SSBO leading to incorrect bindings.
Until now we didn't detect any artifacts, but it conflicted with
cryptomatte.
Pull Request: https://projects.blender.org/blender/blender/pulls/110194
This affected `Mesh Deform`, `Corrective Smooth` and `Laplacian Smooth`.
Exposed by 57ea827bfb (e5ec04d73c).
Evaluating the incoming mesh can be different in
`BKE_object_handle_data_update` as opposed to
`object_force_modifier_update_for_bind` due to different
`CustomData_MeshMasks` being used (the former used a handpicked set, the
later was still using `CD_MASK_BAREMESH`). But since moving many
relevant [to modifiers] data to attributes, this could lead to binding go
wrong (e.g. reporting a vertex count mismatch as reported in #110021
which was due to the fact that creases were not propagated and that
changed the output [also vertex count] of a subdivision modifier in the
stack).
Now use `CD_MASK_DERIVEDMESH` in `object_force_modifier_update_for_bind`
to get all relevant attributes for evaluation (this is not used in `BKE_object_handle_data_update`
to avoid a big performance impact there).
Also fixes#109626 afaict.
Should probably go into 3.6 LTS (maybe even 3.3 LTS).
Pull Request: https://projects.blender.org/blender/blender/pulls/110095
When trying to rename a generic label in the outliner, like the "Object"
category name inside library override properties view, `do_item_rename`
will crash because it failed to gurad type `TSE_GENERIC_LABEL`.
Now fixed.
Pull Request: https://projects.blender.org/blender/blender/pulls/110188
This reverts part of d594954bf2 as the MSVC preprocessor does not
enjoy nested `#if` statements inside macro parameters leading to
a build error.
Neither GCC nor MSVC is correct or wrong here as the C99 standard
has this to say on the subject:
"If there are sequences of preprocessing tokens within the list of
arguments that would otherwise act as preprocessing directives, the
behaviour is undefined"
source: C99 - 6.10.3.11 (Macro replacement)
Worth noting C++17 has identical language inside the cpp.replace
section of the standard.
Given this is undefined behaviour for both C99 and C++17, best not to
rely on it.