Commit Graph

138746 Commits

Author SHA1 Message Date
Campbell Barton
c55ae88148 Fix #123954: string attributes don't work with BMesh
RNA accessors were ignoring MStringProperty::s_len and assumed UTF8
encoding which is not the case. Use byte strings and get/set the length
member.
2024-07-04 12:29:59 +10:00
Campbell Barton
e3457bccbf Extensions: sub-commands "build" & "validate" validate manifest tags
Enforce tags from extensions.blender.org with support for using an
alternate set of tags (for other repositories), or no tag validation
at all if the repositories choose not to enforce this.

- By default building & validating an extensions fails when unknown
  tags are used.

- The option `--valid-tags`` has been added which can either:

  - Reference a JSON file which lists valid tags per extension type.
  - Pass in an empty string to disable tag validation.

Default to constraining packages to use Blender's official tags as every
extension defining their own tags is likely to result in many similar
tags & a bad user experience. Details in code-comments.

Implements #123986.
2024-07-04 11:56:07 +10:00
Harley Acheson
140a214541 Merge branch 'blender-v4.2-release' 2024-07-03 18:27:35 -07:00
Harley Acheson
ff89e24bf5 Fix #122808: Better Indication of Missing VFont
For text objects, current code will use another font if you ask for
a character that is not found in the selected font. But what if the
selected font is invalid? This can happen with a saved Blend that uses
a non-packed font that is since deleted. Current behavior will show
nothing. This PR restores earlier behavior where we use the built-in
font in this case.

Pull Request: https://projects.blender.org/blender/blender/pulls/122851
2024-07-04 03:26:22 +02:00
Jesse Yurkovich
1d77518b58 Merge branch 'blender-v4.2-release' 2024-07-03 17:04:55 -07:00
Jesse Yurkovich
4806078dbd Fix: USD: Use correct property names in RNA update callback
Use the correct property names in the up and forward axis update
callbacks. Otherwise they don't work as intended and the following will
be traced to the console:
```
RNA_enum_get: WM_OT_usd_export.forward_axis not found.
RNA_enum_get: WM_OT_usd_export.up_axis not found.
```

Pull Request: https://projects.blender.org/blender/blender/pulls/124112
2024-07-04 02:03:27 +02:00
Michael Kowalski
95a335b70e Merge remote-tracking branch 'origin/blender-v4.2-release' 2024-07-03 19:27:21 -04:00
Michael Kowalski
94c184d2a7 USD: custom properties export improvements
Added a new custom_properties_namespace USD export option, to
allow replacing or omitting the current default "userProperties"
namespace prefix.

Note that this option does not apply to names that already have a prefix
(e.g., it would apply to name "bar" but not "foo:bar").  It also does not apply
to the  internal Blender "object_name" and "data_name" properties which
always have the prefix "userProperties:blender".

Also added logic to handle ":" namespace delimiters in property names.

Pull Request: https://projects.blender.org/blender/blender/pulls/124067
2024-07-04 00:45:30 +02:00
Hans Goudey
70bde716fc Cleanup: Sculpt: Move more operators code to C++ namespace 2024-07-03 17:13:33 -04:00
Hans Goudey
e17457d5f1 Sculpt: Data oriented refactor for topology rake brush action
Part of #118145.
2024-07-03 17:04:47 -04:00
Hans Goudey
1efe3983ec Sculpt: Data oriented refactor for elastic deform brush
Part of #118145.
2024-07-03 16:31:21 -04:00
Ray Molenkamp
3094e2a144 Merge remote-tracking branch 'origin/blender-v4.2-release' 2024-07-03 14:24:22 -06:00
Hans Goudey
c1c2f8abd9 Cleanup: Sculpt: Remove old draw sharp brush code
Missed in 750e3a6fbaead58d931ef159d0edf4033c624d5d.
2024-07-03 16:22:52 -04:00
Hans Goudey
a5b169c103 Cleanup: Remove unused variable in draw sharp brush 2024-07-03 16:15:01 -04:00
Hans Goudey
b6a04c207a Fix: MEM_new/MEM_freeN mismatch in menu search code 2024-07-03 16:12:45 -04:00
Raul Fernandez
750e3a6fba Sculpt: Initial data oriented refactor for draw sharp brush
Part of #118145.

Pull Request: https://projects.blender.org/blender/blender/pulls/123103
2024-07-03 22:10:00 +02:00
Hans Goudey
3d0c556289 Cleanup: Formatting 2024-07-03 16:04:44 -04:00
Jesse Yurkovich
e9ba414799 Fix #124103: Build error when using WITH_USD but not WITH_HYDRA
Move a few functions to a common location so that they're all accessible
from both USD and Hydra.

Pull Request: https://projects.blender.org/blender/blender/pulls/124119
2024-07-03 22:02:53 +02:00
Hans Goudey
a9e29bea94 Sculpt: Data oriented refactor for line project tool
Part of #118145.
The tool seemed to ignore procedural deformation from
modifiers or shape keys, that as well as locking/clipping
should work now.

Pull Request: https://projects.blender.org/blender/blender/pulls/124123
2024-07-03 21:44:52 +02:00
Hans Goudey
525293a95d Fix: MEM_new/MEM_freeN mismatch in file browser code
Caused by cd84d3f3da197b12b56d766ee469c5fc1c368a21
2024-07-03 15:13:48 -04:00
Hans Goudey
cbb60190b4 Cleanup: Sculpt: Use const for gesture data, rename variables 2024-07-03 14:52:15 -04:00
Hans Goudey
a7c7e58a4c Sculpt: Data oriented factors calculation for paint brushes
Part of #118145.

Store intermediate data (factors and distances) in thread local storage
for the paint and smear color brushes. The rest of the brushes aren't
refactored to the new "standard", but most of the code we want to
remove in the short term isn't used anymore.
2024-07-03 14:52:15 -04:00
Hans Goudey
0b44d3d163 Cleanup: Sculpt: Use const SculptSession arguments 2024-07-03 14:52:15 -04:00
Hans Goudey
f8fc28bea9 Refactor: Sculpt: Add API function for accessing original color data 2024-07-03 14:52:15 -04:00
Hans Goudey
6fce121596 Cleanup: Sculpt: Simplify vertex position access in color smear brush 2024-07-03 14:52:15 -04:00
Sean Kim
b2ec10184c Sculpt: Initial data oriented refactor for draw face sets brush
Part of #118145.

Performance after this change results in an 156% speedup. This is
measured on the function `stroke_update_step` on a mesh with 24k verts
across 20k instances of the function being timed. In absolute values,
this represents a 0.09ms speedup, from 0.16ms to 0.25ms.

For BMesh, the brush now takes mask values into consideration by
averaging all of the vert mask values for a face.

Co-authored-by: Hans Goudey <hans@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/123811
2024-07-03 20:46:36 +02:00
Harley Acheson
38681f3a63 UI: Large Blender Logo Alignment Fixes
Slight changes to the sizing and placement of the Blender logo within
its icon bounds. Perfect alignment to grid for top of the horizontal
bar, bottom, and right edges. Could allow use down to about 32x32.

Pull Request: https://projects.blender.org/blender/blender/pulls/124120
2024-07-03 20:13:30 +02:00
Harley Acheson
c468319497 UI: Use Large Blender Logo for Blend File in File Browser
For times when we show the blender logo inside a larger document image,
use the version meant for larger sizes. The complexity is almost
identical, but we use it larger here so use the nicer one.

Pull Request: https://projects.blender.org/blender/blender/pulls/124117
2024-07-03 19:16:40 +02:00
Harley Acheson
c6411e61ae Fix: Handle Missing Font in ID List Previews
Handle missing font in the hover tooltip preview in the Data-block ID
selector. Add error handing both in IMB_font_preview itself and in the
current caller (to show message).

Pull Request: https://projects.blender.org/blender/blender/pulls/124111
2024-07-03 18:24:28 +02:00
Hans Goudey
5b50bb19e7 Cleanup: Sculpt: Use C++ math types for color paint brushes 2024-07-03 12:13:52 -04:00
Hans Goudey
ad0e327dd0 Sculpt: Data oriented refactor for color smooth brush
Part of #118145.
2024-07-03 12:13:52 -04:00
Hans Goudey
ea202f83bf Cleanup: Use const SculptSession arguments 2024-07-03 12:13:52 -04:00
Harley Acheson
1992296828 Fix #124068: Update Text Style Weights With Change of UI Font
Only when the user changes the UI font to one that does not have a
variable weight axis, update the text style weights to match the font's
design weight. So if changing to an old-school font that has a fixed
weight, for example bold, also update UI Text Style weights to match
so everything looks as designed and expected.

Pull Request: https://projects.blender.org/blender/blender/pulls/124074
2024-07-03 18:02:20 +02:00
Bastien Montagne
06be295946 Add detection of mismatches usages of MEM_new/MEM_freeN.
This commit will error (and abort if enabled) when trying to call
`MEM_freeN` (and related `MEM_dupallocN`, `MEM_reallocN` and
`MEM_recallocN` functions) with a pointer created the C++ way (i.e.
through `MEM_new`, or the guardedalloc-overloaded `new` operator).

To do so, it adds internal use only implementations for `malloc_alligned`
and `free`, which take an extra parameter indicating whether they are
dealing with data created/deleted the 'C++ way' (using `new`/`delete`
and similar).

The cpp-created data are flagged with the new
`MEMHEAD_FLAG_FROM_CPP_NEW`, either in the lower two-bytes len value for
lockfree allocator, or as a new flag member of the guarded allocator
header data.

The public `MEM_new`/`MEM_delete` template functions, and the
guardedalloc-overloaded versions of `new`/`delete` operators are updated
accordingly.

These changes have been successfully tested both with and without
`WITH_CXX_GUARDEDALLOC`.

NOTE: A lot of mismatches have already been fixed in `main` before merging
this change. There are likely some less easy to trigger ones still in our
codebase though.

Pull Request: https://projects.blender.org/blender/blender/pulls/123740
2024-07-03 17:23:03 +02:00
Bastien Montagne
a1e2cc2b6e Cleanup: Unused variables in non-assert release builds. 2024-07-03 16:33:03 +02:00
Clément Foucault
71159872a4 Fix: EEVEE: VDB renders as bounding box when using Volume Scatter
Use the same approach as Cycles and only render the volume
objects if the shader is using any attribute.

Fix #124061
2024-07-03 16:27:08 +02:00
Bastien Montagne
4afb48acad Cleanup: Move internal guardedalloc headers to C++.
Pull Request: https://projects.blender.org/blender/blender/pulls/124106
2024-07-03 16:04:18 +02:00
Lukas Stockner
e2d77fbc1c Cleanup: Remove outdated asserts
61fb25cb946154 removed the factors argument.
2024-07-03 16:01:38 +02:00
Sergey Sharybin
35788ca3c9 Merge branch 'blender-v4.2-release' 2024-07-03 16:01:21 +02:00
Alaska
659e19607d Cycles: Cleanup calls to _cycles.available_devices
Refactor the call to `_cycles.available_devices` into it's own function
and update `self.device` at the same time to avoid mis-matches between
`_cycles.available_devices` and `self.device`.

Pull Request: https://projects.blender.org/blender/blender/pulls/124079
2024-07-03 16:00:42 +02:00
Alaska
090fed06a9 Cycles: Fix automatic OptiX denoiser section criteria
Only select OptiX as the automatic denoiser if an OptiX
device is selected in preferences.

Pull Request: https://projects.blender.org/blender/blender/pulls/124032
2024-07-03 16:00:02 +02:00
Hans Goudey
78e9621bcd Sculpt: Refactor sampling for multi-plane scrape brush
Part of #118145.
2024-07-03 09:59:25 -04:00
Hans Goudey
734e9fa4b8 Fix: MEM_new/MEM_freeN mismatch in edit mesh undo
For non-trivial custom data types, the undo system did a shallow copy of the
base array which implicitly transferred ownership of the data to the undo
system. Combined with implicit sharing, this was hacky at best, and quite
wrong at worst, since it freed the implicit sharing info incorrectly.

To fix this, free the mesh custom data with the standard function for that
and add the non-trivial layers to the undo state using implicit sharing to
avoid another copy.

Alternative to #123894 and #123884.

Pull Request: https://projects.blender.org/blender/blender/pulls/123991
2024-07-03 15:32:05 +02:00
Hans Goudey
7f4de339f8 Cleanup: Correct misleading variable name in previous commit 2024-07-03 09:21:22 -04:00
Hans Goudey
61fb25cb94 Sculpt: Separate distance filtering from calculation
Remove the filtering of factors from the brush distance calculation
function to simplify its responsibilities and to allow passing a custom
radius from the outside. Factor filtering is now done in a separate
function. Also rename the distance calculation functions.
2024-07-03 09:18:39 -04:00
Bastien Montagne
a882d289fe Cleanup: Unused vars in non-assert release builds. 2024-07-03 15:14:18 +02:00
Clément Foucault
e10dcc01bd Fix: EEVEE: Avoid loosing SSS small radius energy
This was caused by the effective radius of some
components were below the first sample radius.
This meant that the accumulation resulted in zero
weight for these components.

This patch introduce a minimum radius that can
be represented depending on the sample closest
to the center pixel. This makes sure that we
have at least one sample that will have
non-zero weight.

Fix #124031
2024-07-03 15:09:19 +02:00
Aras Pranckevicius
28d00f16d9 Merge branch 'blender-v4.2-release' 2024-07-03 16:01:55 +03:00
Aras Pranckevicius
44510662e9 Fix #123541: VSE thumbnails in some cases are drawn outside of the strip
Code was using seq->start + seq->len to figure out where the "right
side of content" is, seemingly since forever (i.e. since 997b5fe4
added strip thumbnails). But that is incorrect starting with 3.3,
where seq->len is "number of frames / samples in source media",
but that does not necessarily match number of frames in the timeline.
For movies this happens when media framerate does not match
sequencer framerate.

Use SEQ_time_content_end_frame_get instead to calculate where the
content ends.

Pull Request: https://projects.blender.org/blender/blender/pulls/124081
2024-07-03 14:59:07 +02:00
Sergey Sharybin
bd75344b2b Merge branch 'blender-v4.2-release' 2024-07-03 14:47:23 +02:00