This is kind of wrong fix from the perspective of properly maintaining dependencies
of static libraries, but having cyclic dependencies and whole-archive for the test suit
makes it very hard to do things properly.
Pull Request: https://projects.blender.org/blender/blender/pulls/123123
Render border is stored either in the current View3D data (UI data, not
undoable), or in Scene's render data when in camera view (only undoable
case).
This commit removes the `UNDO` flag of the related operators, and
instead manually pushes an undo step when executed in camera view.
Pull Request: https://projects.blender.org/blender/blender/pulls/122767
The VSE timeline strip thumbnail code seems to have at least two issues:
Sometimes the thumbnail would go 1px outside of the right side of the strip
itself. This seems to be caused by floating point inaccuracy where current
thumbnail position is tracked in "fractional timeline frames" instead of some
integers like pixels. The last, often clipped, thumbnail would thus spill over
outside of the strip. Fixed this by making sure the last pixel column of the
strip is not included into thumbnail drawing (pointless to draw there since it
is always covered by strip border).
Another problem was that the first thumbnail of the strip was often incorrectly
clipped and the last pixel from it was removed, and so it was leaving a pixel
gap between first and other thumbnails. This was under "Set the clipping bound
to show the left handle moving" comment, where due to inclusive range check it
was always causing the "clipped" part to be set to true for the first thumb.
Also while trying to untangle all of this, moved variables closer to their
usage. Some of them were only used inside the thumb loop but were declared in
whole function (probably coming from when it was C code).
Pull Request: https://projects.blender.org/blender/blender/pulls/123119
Changes to the remote repository JSON format hadn't been properly
accounted for, a quick-fix was left in that converted the JSON
package listing into a dictionary as it was accessed (every redraw).
Update the behavior to perform the conversion when loading the data
from the JSON. This is also needed for multi platform & blender-version
support.
Prevent non-compliant data in remote repositories from causing errors
in Blender's interface.
Move from a dictionary to a named-tuple which uses normalized values.
7413031dd6 introduced an error and related warning when generating Py API docs:
```
/blender/doc/python_api/sphinx-in/bpy.app.translations.rst:132: ERROR: Unexpected indentation.
...
/blender/doc/python_api/sphinx-in/bpy.app.translations.rst:132: WARNING: Lexing literal_block 'See :func:`pgettext` notes.' as "python3" resulted in an error at token: '`'. Retrying in relaxed mode.
```
Pull Request: https://projects.blender.org/blender/blender/pulls/123097
Asset library loading uses the file browser backend (file-list), so it
would use the same job type. The job system makes sure that jobs of the
same type (or actually, with the same start callback)
wait for others of the same type to finish. This can be a problem here,
since loading asset libraries (which can take a while) could conflict
with regular file browers. Having both run in parallel is no issue, they
use local data only.
Also see #123033 to address the added TODO comment.
Fixes#121235
Pull Request: https://projects.blender.org/blender/blender/pulls/123027
Previous commit that made VSE strip controls not be blurry (91fa37fecb)
applied "snap to pixel grid" in a wrong place - the rectangle corners
should be snapped, not the center and half-size of it.
Pull Request: https://projects.blender.org/blender/blender/pulls/123065
These messages are part of enum items not directly used by their
EnumProperty, because they are returned by a function. They cannot be
accessed in RNA at all times, and need to be extracted manually.
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_`.
The bl_info dictionary is deprecated for most extensions, but it is
still used for core add-ons and since Node Wrangler is now built-in,
it should be marked as official.
The reason for this change is actually that it enables translation of
the Node Wrangler UI, because add-ons below official support level
were never considered for translation.
-----
The reason only OFFICIAL add-ons are translated is that they are enabled [here](4f36fb1afe/scripts/modules/bl_i18n_utils/bl_extract_messages.py (L1052)) during message extraction.
Pull Request: https://projects.blender.org/blender/blender/pulls/123043
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
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 7ec59b05ffb0143b7d7a68b7989a1b48fd6bd1b8 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
The UI has changed and fast GI options was moved to the raytracing
panel in the UI. When this was done they were not added to the
raytracing presets what adds confusion when adding the presets.
This PR adds the fast GI options to the presets.
Pull Request: https://projects.blender.org/blender/blender/pulls/123061
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.
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.
Local repositories no longer convert manifest files into a JSON file
(that matched the format of the remote repositories JSON data).
Instead the data is loaded directly from the manifest files.
This is necessary to support read-only "System" repositories.
Use a class to generalize loading from both data sources to simplify the
implementation which was previously inlined.
This fixes an error where stale data from the manifests was
sometimes used because the generated JSON was considered up to date.
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 e97e06ea2c298b4cf2fd906cf77d36d2da698cda
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