Regression since a904db3ee7 ("skip no-op colorspace transforms for
float images"), the newly added do_display_buffer_apply_no_processor
function did not handle case of both source and destination being
float images. This happens when VSE produces a float image, and
you turn on a Waveform scope.
Pull Request: https://projects.blender.org/blender/blender/pulls/129293
The first encounter wasn't counted for, which resulted in a bias of one
(vertices with single neighbor return false), I initialized the counting from
1 instead of zero which seems to solve the problem.
Pull Request: https://projects.blender.org/blender/blender/pulls/129021
The issue was that the code that remaps the materials for when
a slot is removed was returning when the `material_index` attribute
didn't exist instead of continuing the loop over all drawings.
This issue was present both in `BKE_grease_pencil_material_remap`
and `BKE_grease_pencil_material_index_remove`
but `BKE_grease_pencil_material_remap` forced the `material_index`
attribute to be created, which meant that the early return
was never hit.
The fix fixes both issues:
* Continue instead of return.
* Don't create the `material_index` attribute in `BKE_grease_pencil_material_remap`
if it doesn't exist.
Pull Request: https://projects.blender.org/blender/blender/pulls/129288
The issue was that the strokes were not using the `POLY` type and
needed to be tagged.
This adds a function `tag_positions_changed` on the `GreasePencilDrawing`
so that the high-level python API can tag the positions if
the `point.position` attibute is written to.
Pull Request: https://projects.blender.org/blender/blender/pulls/129292
The issue only happened when compiling with clang which
apparently evaluated the parameters in a different order.
`IMB_steal_encoded_buffer` sets `ibuf->encoded_size` to 0.
Duplicate descriptions for dynamic enum menu items to resolve
use-after-free error.
based on !129008.
Ref !129164
Co-authored-by: Julian Eisel <julian@blender.org>
This reverts commit 94959cb84f.
make_license.py was actually refactored in main, and this is introducing
a minor conflict. I will leave make_license as it is in 4.3, and focus
on the cleanups in main itself.
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
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
This generates a `license.md` file with all the relevant information about
the different libraries and their respecive licenses.
This should replace: THIRD-PARTY-LICENSES.txt
Important files:
* `make_license.py` (main script called by `make license`.
* `licenses.json` (file to add the definition of new licenses).
* `licenses/*/*.txt` (individual license files.
The `license.md` groups the libraries per license, list their
corresponding copyright information and include the complete license.
Code includes contributions from:
* Campbell Barton (multi-line parser for versions.cmake).
* Thomas Dinges (Windows support for `make license`).
Part of: !129018
This is being added straight to 4.2, prior to the `make license` command
which will use this to generate a more complete license file.
Licenses information and ambiguities worked with Dalai Felinto.
Part of !129018.
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
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
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