Not a real fix, just preventing crashes due to broken particle data.
Particle draw code can get into an invalid state, which can crash
drawing code. This just prevents the crash.
Pull Request: https://projects.blender.org/blender/blender/pulls/123075
The new `pgettext_n` function (typically imported as `n_`) can be used
when there is a need to extract messages, without translating them. It
is essentially a no-op equivalent to the C++ version `N_`.
Use early returns and some other small changes to reduce the indentation
and improve clarity of the `getname_anim_fcurve()` function.
No functional changes.
Pull Request: https://projects.blender.org/blender/blender/pulls/123068
The bloom render pass has been deprecated in Blender 4.2. It was still
visible in the UI in the shading popover and available in the python API.
This PR removes the UI option and deprecated the parts of the python API.
Current add-ons that use this API should still be able to use the API, but
it would not do anything. Add-ons are encourage to remove these calls.
The flags are not cleaned up so they should still work when switching back
to previous Blender versions.
Release notes have been updated to include these changes.
Pull Request: https://projects.blender.org/blender/blender/pulls/123059
This makes the following user preferences/settings work when inserting keys on layered actions:
- Keyframe type ('Keyframe', 'Breakdown', etc.)
- Handle type (auto, auto-clamped, etc.)
- Interpolation mode (bezier, linear, etc.)
Pull Request: https://projects.blender.org/blender/blender/pulls/123006
Somehow the 16K inside a string is parsed as being an integer, leading
to error messages about the `K` suffix.
```
ERROR (gpu.shader): gpu_shader_icon_multi VertShader:
|
1 | #version 430
|
| Error: C0159: invalid char 'K' in integer constant suffix
```
Fixed by changing the 16K to the actual number.
Related to #122977 With this PR blender will start, but EEVEE will render pink.
Pull Request: https://projects.blender.org/blender/blender/pulls/123071
When navigating the samples were always reset. This was introduced
by 7ec59b05ff where samples needed
to be reset when painting.
This PR solves it by separating the navigation and the painting more
clearly in the API. Also cleans up some calls that are also encapsulated
via the EEVEE Instance class.
Validated that painting and navigating still worked with these changes
applied.
Pull Request: https://projects.blender.org/blender/blender/pulls/123064
This type was not necessary because `ptr_` is allowed to
be `nullptr`. This also means that we don't need to handle
the `None` case in switch statements. We assume that at
this point the owner is valid.
The new option on bones to control the wire width had a redundant part
of `Custom Shape`. Since the property is already within a section for
Custom Shape we can shorten the label.
Pull Request: https://projects.blender.org/blender/blender/pulls/123063
Strips still have sharp corners when you're dragging them from file browser and
switch to rounded when dropped. Fix by using the same drawing code (and shader)
as regular timeline drawing path.
Pull Request: https://projects.blender.org/blender/blender/pulls/123013
Previously these were shown as missing add-ons, since they have been
intentionally removed, remove them as part of versioning instead
of showing them as "Missing Add-ons". This is especially important
for X3D & STL which were enabled by default which meant any user
loading 4.1 preferences would have them shown as missing add-ons.
Extract the 'can this Action be assigned to this ID?' logic from the
RNA function `rna_Action_actedit_assign_poll()` to the `animrig` module.
This way it can be called from multiple places in the future, and tested
properly.
No functional changes.
Pull Request: https://projects.blender.org/blender/blender/pulls/123060
Just for the `pyrna_struct_keyframe_insert()` function, reduce the
reporting level of keyframe insertion failures from `RPT_ERROR` to
`RPT_WARNING`. This prevents the conversion of these reports to a Python
exception.
`CombinedKeyingResult::generate_reports()` now accepts an option
argument `report_level`, so that the caller is in control over the type
of reports it generates.
Previously only errors were converted to exceptions; warnings were
implicitly cleared and never displayed. To avoid these 'keyframe
insertion failure' reports from becoming invisible, the
`pyrna_struct_keyframe_insert()` function now sends any warnings to
stdout (unless there were errors, in which case the old
error-to-exception behaviour is still there).
Pull Request: https://projects.blender.org/blender/blender/pulls/122827
Blender crashes when rendering a scene strip that references a scene
with a GPU compositor active. This is because when rendering a scene
strip, a new render with a nullptr system GPU context is created for the
scene it references, which is then used for compositing.
Ideally, the strip scene would have its own context, but we can't ensure
its context because we are not in the main thread. The alternative is to
then identify scenes that will be rendered before hand and set their
renders before starting the job, which doesn't seem like a great
solution. So for now, we just use the DST context in those cases.
Pull Request: https://projects.blender.org/blender/blender/pulls/123057
This makes sure to set the legacy properties when setting
the render method and the use transparent flag.
EEVEE-legacy should be able to render these materials
without issues.
When using Metal backend on ATI/Intel GPUs the stencil buffer doesn't
contain the correct information, skipping diffuse and glossy PBR components.
Failing behavior was introduced by e97e06ea2c
This PR works around this by reverting the code when using ATI/Intel GPUs.
The root cause is somewhere the combination of stencil export support, clear
operations and subpass.
**TODO**
- [ ] Validate that this fixes the ATI issue as well
Pull Request: https://projects.blender.org/blender/blender/pulls/122993
Show "Loading..." now when file list loading is unfinished, but no item is
visible yet.
Would show "No items" earlier which is misleading, because the file
loading job may simply not have started yet, or found no relevant files
yet.
Pull Request: https://projects.blender.org/blender/blender/pulls/123029
Having the sun extracted is mandatory to keep
the same look and avoid too much light
leaking compared to EEVEE-Legacy. But adding
shadows might create performance overhead and
change the result in a very different way.
So we disable shadows in older file.
The UI Module has decided that popup tooltips should never be scaled
with local 2D region zooming. Instead they should only follow the
global resolution scale. This PR just removes tooltip aspect to do so.
Pull Request: https://projects.blender.org/blender/blender/pulls/122854