This happens because blender 4.3 only knows about GPv3 IDs, and
therefore stores a reference to a directly linked GPv2 obdata as a GPv3
one, which cannot be found again on next file load in the GPv2 library.
The idea of this fix is, if the looup of a idcode+idname fails, to also
search for the same name but with an older, deprecated ID code.
Pull Request: https://projects.blender.org/blender/blender/pulls/129220
Blender crashes when picking Cryptomatte while rendering. This is
because pass data are not yet allocated. To fix this, we just fail the
picking until data becomes available.
Crash is poll function when drag type is other than layer/group For
example: dragging some element from outliner to layer list.
Also removed redudant check when returning from function.
Pull Request: https://projects.blender.org/blender/blender/pulls/129246
Now can pick "H.265 / HEVC" in the video codec dropdown.
Implementation notes:
- Remap CRF value (which is for H.264) slightly to better match H.265
CRF range (e.g. default Medium 23 -> 28).
- Set lossless mode via appropriate private param, and use 4:4:4 YUV
format just like for some other video codecs when in lossless.
- Currently there are no built-in presets for H.265. Maybe later, especially
if/when we'll add 10 bit or HDR videos.
Pull Request: https://projects.blender.org/blender/blender/pulls/129119
- Both "hit_resullt" & "hitresult" were used in the same functions
with different meanings. Rename `hitresult` to `select_id`,
a convention already widely used.
- Armature selection shadowed "result", using it to store two kinds
of selection results, use "hit_result" for GPUSelectResult.
We would have to use task isolation here because of the use of
`EnumerableThreadSpecific`. Anyway, nested threading isn't
helpful because of the relatively small node sizes.
Pull Request: https://projects.blender.org/blender/blender/pulls/129222
The `find_curve_mapping_from_index` function could fail if no
`interval` was returned from `find_frames_interval`, but this error
was not handled by the caller. This meant that
`InterpolateOpData::from_operator` could create empty
`InterpolationPairs` for every layer. In this case, the operator would
not do any interpolation, but it would still create a keyframe.
The operator shouldn't try to interpolate when there are no mappings
found.
The fix makes `find_curve_mapping_from_index` return `true`
when it succeeds. Then it checks if any mappings have been found
and if none were found returns `nullptr` from `InterpolateOpData::from_operator`.
The operators can then check if the `InterpolateOpData` exists
and otherwise exit.
Pull Request: https://projects.blender.org/blender/blender/pulls/129212
Blender crashes when changing the compositor execution device. That's
because cached resources that were originally computed for CPU are now
being used for GPU and vice versa, which can be unexpected in code that
uses them.
To fix this, we free and recreate the entire compositor context when the
execution device or precision change, because it is much easier and
safer to recreate everything as opposed to trying to update the
necessary resources.
When selection type is set/and for gesture selection tools, Instead of
current attribute, all three selection attributes (`.selection`, `left_handle`,
`right_handle`) are reset in every iteration of for loop.
Pull Request: https://projects.blender.org/blender/blender/pulls/129147
3a708a27f9 and c8e75c03c3 include a version bump in the release branch.
The main branch should also get a version bump so the same versioning
code runs for files saved with main.
In grease pencil draw mode, enable the Draw, Erase and Utilities
catalogs by default for the asset shelf, meaning they will show up as
tabs in the shelf. For grease pencil sculpt mode it's the Contrast,
Transform and Utilities mode (consistent with mesh sculpt mode).
This makes the assets of the corresponding types easily available, even
without requiring the "Filter Brushes by Tool" asset shelf option
enabled. It also makes the catalogs and the contained brushes more
discoverable as an organization helper.
These catalogs were added in 09bd5a5777.
Disables the "Filter Brushes by Tool" toggle of the brush asset shelf
options by default.
After further feedback, we want to keep this option disabled by default.
It's useful to be able to access all brushes from the asset shelf,
regardless of what the active tool is. In many cases you'd see the asset
shelf with only one brush, which wastes space and isn't a good look
design quality wise. The following commit will also enable some more
asset catalogs by default which should be useful for filtering brushes,
and reduce the need for filtering by active tool.
So all things considered, while having this option is useful, it can
remain disabled by default.
The interpolation tool in edit mode would create an empty keyframe if nothing in the
`from_drawing` and `to_drawing` was selected. This is not how the tool behaved in GPv2
so this is unexpected.
The fix checks that if `only_selected` is used, there also is a selection in both of the
drawings in the pair, and otherwise fallback to interpolating all the strokes.
This is consistent with how the tool worked in 4.2.
Pull Request: https://projects.blender.org/blender/blender/pulls/129206
- `_PySet_NextEntry` has been removed, use generic iterator access
which will has some additional overhead as it needs to create
an iterator to access the values.
- Add v3.13 compatibility defines to account for renaming:
_PyObject_LookupAttr -> PyObject_GetOptionalAttr
_PyLong_AsInt -> PyLong_AsInt
- Unfortunately use of Python's internal API needs to be used to
inspect op-codes in `bpy_driver.cc`.
Testing GLTF/FBX IO there isn't any significant performance impact
from these changes.
Resolves#123871.
PR #128051 made some improvements to code by cleaning up properties and
simplifying logic.
However, the default tool in most spaces is box select. By switching to
box select default, there should be more front-facing consistency across
spaces while still retaining near-identical behavior.
This patch would fix the small bug listed in #128671 while keeping the
simplified code benefits from #128051.
Also:
- Move selection keymap items up in the Sequencer (Global) keymap so it
is more visible (similar to Node Editor ordering).
- Split `side_of_frame` property for ctrl press keymap item into a
separate keymap item on ctrl click for both LCS and RCS to avoid
clashing with ctrl+drag for box selects in RCS.
Pull Request: https://projects.blender.org/blender/blender/pulls/129028
When starting a docking operation from an assigned shortcut, the source
area will be incorrect if the Status Bar is not currently being shown.
This PR just adds defaults that are never valid window coordinates.
Pull Request: https://projects.blender.org/blender/blender/pulls/129187
This property was available for `layers` but was missed for layer groups.
Adds a `parent_group` property for layer groups that returns the
parent group if the group is inside another group.
For groups that are inside the root, returns `None`.
Pull Request: https://projects.blender.org/blender/blender/pulls/129168