Commit Graph

92496 Commits

Author SHA1 Message Date
Martijn Versteegh
8e02b0d5d4 Cleanup: make functions for setting clone/stencil layer more consistent
This was missing in rBf1beb3b3f60be45854285935d6bfcedf839b317c.

Differential Revision: https://developer.blender.org/D14991
2022-05-20 09:36:30 +02:00
Campbell Barton
af7502dd9b Merge branch 'blender-v3.2-release' 2022-05-20 16:46:52 +10:00
Campbell Barton
d27f4e8493 Fix popup menu memory activating labels when names matched menu items
When labels in popups (typically headings) matched the name of a button,
the label would be activated instead of the button.

This caused the unwrap menu in the UV editor not to re-select "Unwrap"
when opening a second time.
2022-05-20 16:42:35 +10:00
Campbell Barton
838806be28 WM: return the string length from operator name conversion
- In some cases it avoids using strlen on the result.
- Use ATTR_NONNULL for all arguments.
- Remove NULL pointer check for WM_operator_bl_idname src argument.
- Rename from/to to src/dst.
2022-05-20 13:35:28 +10:00
Campbell Barton
930e526cae Cleanup: warnings, spelling, formatting
Avoid multiple `sound.bl_rna.properties["channels"].enum_items` in
the same line. Note we might want a way to avoid having to do this.
2022-05-20 11:24:34 +10:00
Campbell Barton
42a6c226d0 CMake: fix AUDASPACE disabling WITH_PYTHON for Blender
When AUDASPACE couldn't find NUMPY, it would disable WITH_PYTHON for
the rest of Blender. Now setting the value globally is only done for
standalone AUDASPACE builds. Now it's possible to build Blender with
AUDASPACE & PYTHON but without NUMPY.

While this isn't an especially important configuration to support,
having Python mysteriously disabled is a hassle to troubleshoot.

NOTE: extern/audaspace/CMakeLists.txt has become out sync with the
original [0], it seems this is being maintained in our repository.

[0]: https://github.com/neXyon/audaspace/blob/master/CMakeLists.txt
2022-05-20 11:18:49 +10:00
Campbell Barton
a42307eb65 Fix building with OpenEXR on Linux 2022-05-20 10:00:40 +10:00
Harley Acheson
f600a2aa6d IMBUF: Thumbnails of all EXR files using less RAM
Specialized thumbnailing function to create previews of all EXR image
files, regardless of type, size, or dimensions. Uses less RAM by only
loading a single row of pixels at a time.

See D14663 for more details and examples.

Differential Revision: https://developer.blender.org/D14663

Reviewed by Brecht Van Lommel
2022-05-19 14:55:04 -07:00
Marcos Perez
89106a695a VSE: Display sound sample rate and channels
Display information about sound media in "Source" category in side panel
similar to movie resolution and framerate.

The specs are stored in the `Sequence` struct, and are extracted at
the moment of struct creation. If the "source file" is changed,
the specs change also.

Reviewed By: ISS

Differential Revision: https://developer.blender.org/D14565
2022-05-19 21:05:23 +02:00
Antonio Vazquez
9e9895b055 GPencil: Avoid Automerge with Closed strokes
The algorithm is not designed to be used with Closed strokes (cyclic) and actually the result is arbitrary. In order to avoid this, now the closed strokes never are merged.

Related to T98235

Feedback by: @mendio
2022-05-19 18:05:15 +02:00
Germano Cavalcante
65e13cc2d2 Merge branch 'blender-v3.2-release' 2022-05-19 12:23:23 -03:00
Germano Cavalcante
bc6965cb98 Fix T98230: Automatic Constraint doesn't work if cursor is not moving
The change was kind of intentional on {rB21e72496a629}.

That commit made mouse movement to "select" the contraint in Auto
Constraint a requirement.

This deduplicated the code a bit, but this requirement is not
comfortable for the first "selection" of the contraint.

So the constraint "selection" is now done in two ways:
- If there is no contraint, the "selection" is done immediately;
- If there is already a constraint, the "selection" is delayed by 1 event to simulate a constraint cancellation if there is no mouse movement.
2022-05-19 12:22:30 -03:00
Bastien Montagne
436a7ee651 Merge branch 'blender-v3.2-release' 2022-05-19 16:54:10 +02:00
Bastien Montagne
2d5b91d6a0 Fix (studio-reported) more possibilities to edit content of linked/override collections.
Existing code for the `Move` operator, and some `Collections` panel
operations (Object properties) was absolutely not override-safe, and
sometimes not even linked-data safe.
2022-05-19 16:51:24 +02:00
Antonio Vazquez
eb13072399 Merge branch 'blender-v3.2-release' 2022-05-19 16:22:00 +02:00
Antonio Vazquez
f8ebb0e1d5 GPencil: Remove icons in Build modifer mode parameter
The list must not use icons.

Feedback by @pablovazquez
2022-05-19 16:21:25 +02:00
Dalai Felinto
d0fabb318e UI: Expose new tool icon: Selection Paint
This icon will be used by the curves paint select brush.
2022-05-19 15:25:38 +02:00
Hans Goudey
f5b708d1cf Cleanup: Decrease variable scope 2022-05-19 14:08:54 +02:00
Hans Goudey
29ca935eb8 Cleanup: Remove redundant function
`BKE_object_get_evaluated_mesh` now looks inside `geometry_set_eval`.
2022-05-19 14:02:16 +02:00
Bastien Montagne
4fc96e5000 Merge branch 'blender-v3.2-release'
Conflicts:
	source/blender/blenkernel/intern/lib_override.c
2022-05-19 12:04:07 +02:00
Bastien Montagne
24745e8d27 Fix liboverride extreme resync times in case of libraries dependency loops.
That max number of `10000` level of recursivity was a typo (should have
been `1000`), but even that is way too high, typical sane situation
should not lead to more than a few tens of levels, so reducing the max
level to 200.

Also improve error message with more context info about the issue.

Found while investigating issues for the Blender Studio's Heist production.
2022-05-19 11:59:58 +02:00
Bastien Montagne
74420d95b3 Revert "Fix liboverride extreme resync times in case of libraries dependency loops."
This reverts commit e42e4e8568.

Wrong commit, sorry for the noise.
2022-05-19 11:51:01 +02:00
Bastien Montagne
e42e4e8568 Fix liboverride extreme resync times in case of libraries dependency loops.
That max number of `10000` level of recursivity was a typo (should have
been `1000`), but even that is way too high, typical sane situation
should not lead to more than a few tens of levels, so reducing the max
level to 200.

Also improve error message with more context info about the issue.

Found while investigating issues for the Blender Studio's Heist production.
2022-05-19 11:47:28 +02:00
Hans Goudey
c88de1594f Fix T98237: Double free with curve object conversion to mesh
In some cases (when there is an evaluated curve), the conversion code
would try to free the evaluated data-block twice, because freeing the
object would free it from `data_eval` and then the data-block was freed
again explicitly. Now check if the data-block is stored in `data_eval`
before freeing `object.data` manually. This is another area that's made
more complex by the fact that we change the meaning of `object.data`
for evaluated objects. The solution is more complicated than it should
be, but it works whether or not an evaluated mesh or curve exists.
2022-05-19 11:10:17 +02:00
Hans Goudey
f4cbfaded6 Cleanup: Remove unnecessary indentation 2022-05-19 10:00:12 +02:00
Bastien Montagne
2e06c223cc Fix T73250: Override Library will always return to Object Mode on file opening.
Was an old known annoying issue, since the matching RNA property is
read-only we need a manual handling of this in override applying and
resyncing code.
2022-05-19 09:06:33 +02:00
Campbell Barton
5d0432a2ea Merge branch 'blender-v3.2-release' 2022-05-19 14:32:59 +10:00
Campbell Barton
a111aae415 Merge branch 'blender-v3.2-release' 2022-05-19 14:32:54 +10:00
Campbell Barton
3ecc03c3d6 Fix T93779: Python is unable to set axis aligned views
It wasn't possible to temporarily orbit the view, then set back to an
axis-aligned view.

Details:

- It was possible to change RegionView3D.view_rotation while the view
  kept the axis alignment value (Top, Left, Front .. etc) which
  displayed in the viewport overlay.

  Now changing the view rotation directly or via "view_matrix" resets
  the axis-alignment - clearing when the view is no longer axis-aligned
  or assigning the newly aligned axis.

- RegionView3D.is_orthographic_side_view added in [0] could be assigned
  but wasn't useful as it treated an enum as a boolean only setting the
  RegionView3D.view to RV3D_VIEW_USER or RV3D_VIEW_FRONT.

  Now enabling this aligns the viewport rotation to it's closest
  axis-aligned orientation setting RegionView3D.view & view_axis_roll
  accordingly. Note that the "orthographic" term is misleading as the
  property only relates to axis-alignment, not to the
  perspective/orthographic setting. We could consider deprecating the
  current naming.

[0]: 63bae864f4
2022-05-19 14:31:22 +10:00
Campbell Barton
76b6741981 Fix View Roll failure to align the quaternion to the view-axis
View roll checked if the resulting roll was close to a view axis
but didn't write the aligned quaternion back to the final result.
Add ED_view3d_quat_to_axis_view_and_reset_quat since most callers
to ED_view3d_quat_to_axis_view will reset the quaternion when a view
aligned axis is found.
2022-05-19 13:06:45 +10:00
Campbell Barton
e9c3af3dd7 Cleanup: always assign return args for SCULPT_paint_image_canvas_get
Asserting the variables weren't NULL raised a warning with GCC 12.1,
instead of suppressing the warning, always assign NULL which is often
expected behavior and makes the function work as documented.
2022-05-19 11:17:01 +10:00
Campbell Barton
6730c11dd9 Cleanup: quiet deprecated-copy warning with GCC 2022-05-19 11:17:01 +10:00
Campbell Barton
3e2017491a Cleanup: spelling in comments & move doc-strings to headers 2022-05-19 11:17:01 +10:00
Campbell Barton
30e666f747 Cleanup: format, reduce line length & strip trailing space 2022-05-19 11:17:01 +10:00
Clément Foucault
ae2d2c9361 DRW: GPU wrappers: Fix resize routines for StorageArrayBuffer
Resizing was not resizing the `data_` buffer. Also use `power_of_2_max_u`.
2022-05-19 00:35:36 +02:00
Clément Foucault
b16eff2bb3 EEVEE-Next: Fix error on curve prepass caused by velocity commit 2022-05-19 00:35:36 +02:00
Clément Foucault
b3e53d6daa EEVEE-Next: Fix display of compiling shader countdown
Also fix naming convention on public variable.
2022-05-19 00:35:36 +02:00
Clément Foucault
f4028630bf EEVEE-Next: Display error instead of crashing on unsupported hardware
This message will remain in effect until we bump up the minimum
hardware requirement.
2022-05-19 00:35:36 +02:00
Germano Cavalcante
769cdccd0e Fix assertion raised in Merge By Distance
Harmless assertion in `r_weld_mesh->wpoly_new[r_weld_mesh->wpoly_new_len++]`
that checks the size even though it has enough space.
2022-05-18 19:06:50 -03:00
Germano Cavalcante
22812579bb Cleanup: rename 'WeldPoly' member 'len' to 'loop_len'
This avoids confusion.
2022-05-18 18:46:28 -03:00
Germano Cavalcante
7ace6dc496 Fix compilation errors with 'USE_WELD_DEBUG' 2022-05-18 18:40:20 -03:00
Ray Molenkamp
89ccff62d2 makesdna: centralize DNA header list.
There's currently 4 places that need to be edited when adding
a DNA header, and as you can imagine, this has gotten out of
sync quite a bit.

source/blender/CMakeLists.txt - 84 headers
source/blender/makesdna/intern/CMakeLists.txt - 33 headers
source/blender/makesdna/intern/makesdna.c@includefiles - 77 headers
source/blender/makesdna/intern/makesdna.c@Disabletypes - 76 headers

This diff makes source/blender/CMakeLists.txt the only place
where we need to keep track of dna headers, less maintenance
less mistakes. For all old places there is now a comment reminding
people of the new location.

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D13048
2022-05-18 15:09:19 -06:00
Clément Foucault
699944572f EEVEE-Next: Fix memory leak 2022-05-18 23:01:08 +02:00
Clément Foucault
0fcfc4cc5b EEVEE-Next: Add Velocity module
This module allow tracking of object and geometry data accross time.
This commit adds no user visible changes.

It work in both viewport (*) and render mode, gives correct motion
for any camera projection type and is compatible with displacement (**).

It is a huge improvement upon the old EEVEE velocity which was only used
for motion blur and only available in render.

It is also an improvement for speed as the animated objects do not need to
be rendered a 3rd time. The code is also much cleaner: no GPUVertBuf
duplication, no GPUBatch amendment, no special cases for different geometry
types, no DRWShadingGroup per object, no double buffering of velocity.

The module is still work in progress as the final output may still be
flawed.

(*): Viewport support is already working but there might be some cases where
mapping will fail. For instance if topology changes but not vertex count.

(**): Displacement does not contribute to motion vectors. Surfaces using
displacement will have the same motion vectors as if they were not displaced.
2022-05-18 23:01:08 +02:00
Clément Foucault
33c5adba62 GPUStorageBuf: Add GPU_storagebuf_copy_sub_from_vertbuf()
This allows using the Graphic API to copy buffer data.
The GPU module do not expose untyped buffers even if that's what most API
do, so the copy function need to be strongly typed.

Contains GL backend implementation.
2022-05-18 23:01:08 +02:00
Clément Foucault
9631bb1e17 GLShader: Add glsl_shader_defines.glsl to compute shaders 2022-05-18 23:01:08 +02:00
Clément Foucault
ca780f4406 GL: Fix gl error during debug name setup for shader storage buffers 2022-05-18 23:01:08 +02:00
Clément Foucault
4fa743af85 GPUSource: Add error message on source not found
Without this, we could have crashes during static compilation of shaders
without knowing where it would come from.
2022-05-18 23:01:08 +02:00
Clément Foucault
683570c7fe DRW: Wrappers: Use runtime length of the buffer instead of the initial len
This could have produce errors especially in the iterators.
2022-05-18 23:01:08 +02:00
Clément Foucault
80811c5638 DRW: Replace StorageFlexibleBuffer with explicit get_or_resize()
This is to avoid hiding resize inside the `[]` operator.
2022-05-18 23:01:08 +02:00