Commit Graph

126911 Commits

Author SHA1 Message Date
Sergey Sharybin f604235206 Refactor: Make display_clear a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin ace2f6a183 Refactor: Make display_update a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin 964b83aa8b Refactor: Make current_scene_update a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin 0193c5029b Refactor: Make stats_draw a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin ed058088b3 Refactor: Make progress a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin 6df46fd2fc Refactor: Make draw_lock a base render method
Also semantically separate draw_lock and draw_unlock, as it
is more clear than a single method with a boolean argument.

Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin bddc790166 Refactor: Make test_break a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin dd5ef3f91a Refactor: Make prepare_viewlayer a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin c664618e10 Cleanup: Add _cb suffix to the callbacks stored in Render
Should be no functional changes.

Preparing for introduction of member function which are
available in the base class.
2023-08-14 11:18:24 +02:00
Ray Molenkamp deb4aa88b0 CMake/CPack: Fix windows distribution
the revert in 282944caac was incomplete
this commit restores the missing bits needed to make blender run
again.
2023-08-13 22:21:12 -06:00
Richard Antalik bf001961f3 Fix #110861: VSE operators disregards locked strips
Operators slip, swap and split operated on strips that are locked.
2023-08-14 05:54:27 +02:00
Campbell Barton cdab5d82d7 CMake: remove non-functioning logic to delete files before installing
This logic has not been working since 2014 [0] although it was briefly
fixed (by accident) when TARGETDIR_VER was made an absolute directory
[1] (since reverted as that caused problems with CPACK/WIN32).

"file(REMOVE_RECURSE ${TARGETDIR_VER})" would attempt to remove:
- "${CMAKE_BINARY_DIR}/${TARGETDIR_VER}" instead of
- "${CMAKE_INSTALL_PREFIX}/${TARGETDIR_VER}".

While this could be re-enabled by correcting the path,
it slows down the install target by copying files every "install".

This could be made to detect changes and only cleaning files in this
case however this ends up being fairly involved, see: PR !111084.

As stale files haven't been causing problems as far as I'm aware,
remove this code.

[0]: e43c5fa005
[1]: d605cc7574
2023-08-14 12:57:24 +10:00
Richard Antalik 675b66d852 Fix #110846: VSE tools region not updated with other regions
Add listener to the region.
2023-08-14 04:07:15 +02:00
Clément Foucault d844c5a13a Metal: Add support for Multi-Viewport
This seems to work but there is an issue with fragment
shader not getting the correct value.

Authored by Apple: Michael Parkin-White
2023-08-13 23:46:53 +02:00
Clément Foucault c7dce76619 Metal: Various fixes
Authored by Apple: Michael Parkin-White
2023-08-13 23:42:06 +02:00
Clément Foucault 743d78461f GPU: Make test compile without OpenGL 2023-08-13 23:38:07 +02:00
Bastien Montagne 29930ef589 readfile: Move Object proxy validation code from lib_link to do_version.
This is now deprecated data, no reason to keep such logic in the main
lib-linking code of Object ID.
2023-08-13 13:43:54 +02:00
Campbell Barton 282944caac CMake: revert use of CMAKE_INSTALL_PREFIX as it broke CPack on WIN32
Absolute paths aren't supported when using CPack on WIN32.
This effectively reverts [0] & [1].

[0]: 7209ed80bb
[1]: d605cc7574
2023-08-13 21:34:03 +10:00
Bastien Montagne 6cd7eda1c6 Fix (unreported) wrong handling of depreacted non-Empty instantiating objects in readfile code.
Fixing this is do-version work. Having that kind of logic in lib-linking
code is... beyond despicable.
2023-08-13 13:10:27 +02:00
Bastien Montagne 44e3995cf5 Cleanup: Simplify 'expand' main loop in readfile code.
No behavioral change expected here.
2023-08-13 11:25:24 +02:00
Campbell Barton d605cc7574 CMake: use CMAKE_INSTALL_PREFIX in more places
Also remove quotes for consistency as they aren't needed and weren't
used in quite a few places.
2023-08-13 14:27:47 +10:00
Campbell Barton 329474f018 CMake: fix for WITH_DOC_MANPAGE failing to run Blender
Use the installed executable location instead of the build location,
this would work in situations when the build location had relevant
files accessible but this is often not the case.
2023-08-13 14:19:57 +10:00
ChengduLittleA 337c47275c Fix #110917: Multiply `UI_SCALE_FAC` to view scroll operators
Previously the delta value is hard coded (40), this would be too slow on
high DPI screens. Now multiply that by `UI_SCALE_FAC` will solve the
issue.

Pull Request: https://projects.blender.org/blender/blender/pulls/110940
2023-08-13 04:57:36 +02:00
Hans Goudey 9804b2244a Cleanup: Make sculpt face visibility test inline
This simple function just performed a null check and an array lookup.
Just writing it in the few places its used works fine too, and avoiding
the function call per triangle can improve and make the check clearer.

Also, avoiding the abstraction makes the "node fully visible" check
when building the PBVH more obvious; that has been refactored here.

Pull Request: https://projects.blender.org/blender/blender/pulls/111072
2023-08-12 23:58:26 +02:00
Hans Goudey b04a72866d Revert "Multires: Simplify grids normals update and grid to face map"
This reverts commit c97178fa2e.

This was committed to main by mistake, it was meant for a local branch.
2023-08-12 16:38:39 -04:00
Hans Goudey d38a0cf537 Fix: Potential error in RNA operator description callback
Avoid freeing the RNA list before converting the result to std::string.
2023-08-12 16:29:51 -04:00
Guillermo 0f501865a5 Fix #111073: Crash when F3 is pressed
Initializing a string whit `nullptr` causes undefined behavior.

Pull Request: https://projects.blender.org/blender/blender/pulls/111075
2023-08-12 22:21:50 +02:00
Hans Goudey c97178fa2e Multires: Simplify grids normals update and grid to face map
The goal is to move to more data oriented design, reducing memory
usage and simplifying code by clarifying data access, avoiding
unnecessary levels of abstraction, and reusing code.

- Simplify threading with the C++ threading API
- Pass the faces to update with an IndexMask instead of a pointer array
  - IndexMask uses less memory and simplifies masking and iteration
- Store the grid to face map with indices instead of pointers
  - Now this is exactly the same as `build_loop_to_face_map`
2023-08-12 12:20:10 -04:00
Hans Goudey 3d6a8ab54f Cleanup: Remove unused argument to PBVH draw 2023-08-12 12:17:25 -04:00
Iliya Katueshenock 63fd2575e6 Nodes: move more rna code to geometry node files
Continuation of 43667b807e.
Only geometry nodes with shared enum arrays.

Pull Request: https://projects.blender.org/blender/blender/pulls/111056
2023-08-12 17:36:42 +02:00
Germano Cavalcante 6332eecda0 Fix #110970: knife project is broken
Error in 5cdec2f12a

`ED_view3d_win_to_segment_clipped` returns the ray_end directly.

The code was treating it as if it were a direction.
2023-08-12 10:47:52 -03:00
Julien Kaspar 8814101a20 Keymap: Compatible Keymap - Consistency and Updates
The changes in this keymap are much more involved.
If any shortcut isn't mentioned, that means it is unchanged.

General:

- All brush shortcuts have been removed for free custom mapping
- `S` & `U` are now consistently mapped for Brush size & strength
- Redundant shortcuts have been removed such as
  - Line Session drawing (In GP Draw Tool)
  - Select Alternate in GP
  - Quadriflow Remesh (In Mesh Sculpt Mode)
  - Box Hide (In Mesh Sculpt Mode)
  - Dynamic Topology Toggle (In Mesh Sculpt Mode)
  - Mask Overlay (In Mesh Sculpt Mode)
- Removed Lasso Mask/Select shortcuts (This keymap is mainly using the Tools instead. Easy to add back if needed.)

Mode Switching (Global change):

Easier mode switching access for any workflow.

- `123` = switch selection/mask modes for the **current mode**. If in object mode, it will first switch to edit mode (Previously this would always switch to edit mode)
- `4` = Mode switching pie menu (previously `4-7` for individual modes)
- `Tilde` = Transfer Mode (Previously not mapped. Useful for instant object switching while keeping the current mode)
- `5-0` = Unassigned

Brush vs Selection:

Multiple Modes were missing these shortcuts.

- `Shift` `LMB` = Smooth Brush
- `Ctrl` `LMB` = Inverted Brush
- `Shift` `Alt` `LMB` = Set Selection
- `Shift` `Alt` `Ctrl` `LMB` = Toggle-Extend Selection

Brush Size vs Select Linked:

These were previously in direct conflict. Now they are both distinct and based on other DCC software.

- `[` = Decrease Brush Size
- `]` = Increase Brush Size
- `Alt` `dbl LMB` = Select Linked Pick
- `Ctrl` `Alt` `dbl LMB` = Deselect Linked Pick
- `Ctrl` `L` = Select Linked

Select & Mask:

- `Q` = Cycle Masking/Selection Tools
- `Ctrl` `A` = Mask/Select Pie Menu (Draw, Paint, Sculpt Modes)
- `Alt` `A` = Auto-Masking Pie Menu (Mesh & GP Sculpt Mode)
- `Shift A` = Expand Mask (Mesh Sculpt Mode) / Grow Selection (Curve Sculpt Mode)
- `Shift` `Alt` `A` = Expand Mask by Normals (Mesh Sculpt Mode)

Face Sets & Visibility:

Previously missing shortcuts.

- `Shift` `W` = Face Set Expand
- `Shift` `Alt` `W` = Active Face Set Expand
- `Ctrl` `W` = Face Set Edit Pie Menu
- `Page Up` = Grow Active Face Set
- `Page Down` = Shrink Active Face Set
- `H` = Hide Active Face Set
- `Shift` `H` = Hide Inactive Face Sets / Show everything
- `Ctrl` `H` = Hide Masked Geometry

Transforming:

For Sculpt and Weight Painting modes. Previously missing

- `C` = Cursor Tool
- `W` = Move Tool
- `E` = Rotate Tool
- `R` = Scale Tool
- `T` = Transform Tool
- `Shift` `RMB` = Set Cursor / Set Transform Pivot in Sculpt Mode

Sculpting:

Consistent and easier to access shortcuts for remeshing and subdiv level .

- `Shift` `D` = Subdivision level Down (Previously on `Pg Down`)
- `D` = Subdivision level Up (Previously on `Pg Up`)
- `Shift` `Ctrl` `D` = Voxel Size / Dyntopo Size
- `Ctrl` `D` = Voxel Remesh / Dyntopo Flood Fill

Adding missing shortcuts

Painting:

Fixing various missing or inconsistent shortcuts.

- `Backspace` = Set Color/Weight
- `I` = Sample Color/Weight
- `Alt` `I` = Sample Vertex Group
- `Alt` `Ctrl` `I` = Vertex Group Lock Pie
- `X` = Swap Colors (Previously missing in Sculpt Mode)

Grease Pencil:

Adding many missing shortcuts.

- `Shift S` = Animation Menu (Previously on `I` and missing outside of Draw Mode)
- `Shift` `Alt` `S` = Insert Blank Keyframe
- `Alt` `H` = Unhide Layers
- `Ctrl` `H` = Hide Active Layer
- `Shift` H = Hide Inactive Layers
- `Y` = Active Layer Menu
- `Shift` `Y` = Merge Layer Down
- `Alt` `Y` = Material Menu
- `Alt` `Backspace`/`Delete` = Delete Active Keyframe (Previously on `D` `Backspace`/`Delete`)

Other:

Adding missing shortcuts.

- `MMB` for panning in the User Interface (Highly requested)
- `Shift F` = Center View to Mouse (Replacing Frame Selected(All Regions) shortcut)
- `D` = Annotate
- `L` = Toggle Stabilize Stroke (Previously on `Shift` `S`)
- `Ctrl F` = Weight radial control in weight painting modes

Ref !109750.
2023-08-12 23:44:07 +10:00
Campbell Barton 7209ed80bb CMake: use CMAKE_INSTALL_PREFIX for the install destination
Use the variable instead of "." for the install destination.
While they're equivalent, it's not discoverable where the value
for "." is set.

It also results in paths containing "/./", while valid isn't so nice
if the paths are copied from the terminal for use elsewhere.
2023-08-12 23:44:06 +10:00
Campbell Barton 848e808b8a Cleanup: various non-functional C++ changes, correct doxy groups 2023-08-12 18:48:20 +10:00
Campbell Barton 931467cbd5 Fix type checking error in recent fix for #110464
Correct type check from dce2368b8c.
2023-08-12 18:41:23 +10:00
Campbell Barton 311fa9768d Cleanup: spelling in comments 2023-08-12 16:29:51 +10:00
Campbell Barton 4f59b33873 Cleanup: minor changes to discover_nodes.py
- Compile & reuse the regular expression.
- Use `fh` instead of `f` for the file-handle.
- Correct typo.
2023-08-12 16:29:50 +10:00
Campbell Barton 86c4ce66af Cleanup: pass ICON_NONE instead of zero to UI functions 2023-08-12 16:29:49 +10:00
Campbell Barton 12538b75e9 Cleanup: unused but set variable warning 2023-08-12 16:29:48 +10:00
Campbell Barton 206f126617 Fix regression in remove_cc_flag macro
Recent change in [0] caused the CFLAGS variables not to be manipulated
by remove_cc_flag. Unfortunately EVAL is needed to set a variable
that references a variable name.

[0]: e95e6ad66a
2023-08-12 16:29:46 +10:00
Pratik Borhade d87db8d569 Fix #111024: Crash when adding attribute to curve object
After 12ef20990b, attributes and vertex group names were checked
simultaneously to fix the name collision. But this results in crash when
new attribute is added to curve object (it searches for vertex group
list). To avoid the crash, check for supported id types in new function
`BKE_id_supports_vertex_groups`.

Pull Request: https://projects.blender.org/blender/blender/pulls/111036
2023-08-12 07:37:37 +02:00
Hans Goudey efacffebfc Cleanup: Add comment for mesh triangulation faces cache 2023-08-11 22:03:25 -07:00
Charles Wardlaw cf5666345d USD IO: Generic Attributes Support
Part 2 of the patch I wrote moving USD over to the new Attributes API
for Colors: https://projects.blender.org/blender/blender/pulls/105347

This patch adds support for more types of generic Mesh Attributes.
Attribute Types and Domains are converted to their USD counterparts
where possible.  For example, float Attributes used for modifying
shader masks or int Attributes for grouping are now able to be
round-tripped.  Due to the differences in the two systems some
conversions are necessary, but attempts were made to keep data
loss to a minimum.

If you export to USDA, you'll find the Attributes get prefixed with
a "primvars:" namespace; this is expected behavior and identifies
the exported Attributes as different from other USD Schema.

Not supported:
- Edge domain.  There doesn't seem to be a proper conversion for
this in USD.  One exception is for creasing and sharpness, but if
they are desired I can add them in a future patch.

Co-authored-by: kiki <charles@skeletalstudios.com>
Co-authored-by: Charles Wardlaw <cwardlaw@nvidia.com>
Co-authored-by: Hans Goudey <h.goudey@me.com>
Co-authored-by: Charles Wardlaw <kattkieru@users.noreply.github.com>
Co-authored-by: Michael Kowalski <makowalski@nvidia.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/109518
2023-08-11 23:47:17 +02:00
Germano Cavalcante 6ec842c43c Merge by Distance: Redo face split code
The split face code relied a lot of the edges added to the weld context.

But with 113004687d, some edges are removed from context. And even more
edges can be removed (reducing loops and arrays).

Removing the dependence on edges decreases the array and time spent in
loops.

Furthermore, the corner edge array should not be needed for the
merge by distance operation.

So this commit redoes the face/loops iterator which previously
needed the `loop_next` member to skip loops depending on the previous
one (possibly linked to the edge whose vertex will be merged) and now
uses the `switch_to` member to switch loops instead of skipping and
depend on the former.
2023-08-11 16:23:52 -03:00
Hans Goudey 0bd3c23f1b Fix: Build error on windows after recent commit
See f0467b4615

Pull Request: https://projects.blender.org/blender/blender/pulls/111054
2023-08-11 21:15:04 +02:00
Hans Goudey f0467b4615 Cleanup: Return std::string from operator name and description callbacks
With the end goal of simplifying ownership and memory management,
and allowing the use of `get_name` in contexts without statically
allocated strings, use `std::string` for the return values of these two
operator type callbacks instead of `const char *` and `char *`.

In the meantime things get uglier in some places. I'd expect `std::string`
to be used more in the future elsewhere in Blender though.

Pull Request: https://projects.blender.org/blender/blender/pulls/110823
2023-08-11 19:11:27 +02:00
Brecht Van Lommel 6fa4519b98 Cycles: remove unnecessary transform parameters from lights
The transform matrix already specifies everything, no need to duplicate
this which can lead to mistakes.

Ref #110689
2023-08-11 17:41:06 +02:00
Brecht Van Lommel 1d2b2e23a0 Fix Hydra render delegate handling paths with certain characters wrong
Use appropriate function for converting paths. This adds an ugly
dependency on a function that is private to python/, similar to how it
is done for Freestyle. Solving that will be for a separate change.

Ref #110765
2023-08-11 17:41:06 +02:00
Almaz-Shinbay 55117f20ee Outliner: Port pose group elements to new tree-element code design
No user visible changes expected.

Part of #96713, continuation of work started in 249e4df110 and 2e221de4ce.
Refer to these for a motivation and design overview.

Adds new classes for pose group elements.

Pull Request: https://projects.blender.org/blender/blender/pulls/110587
2023-08-11 17:36:09 +02:00
Nicolas Sourd 092251b1fd Fix Cycles Hydra render delegate ignoring the light falloff property
If the falloff is defined with a supported value, a LightFalloffNode is added
to the graph, instead of the default EmissionNode.

Pull Request: https://projects.blender.org/blender/blender/pulls/110690
2023-08-11 17:24:08 +02:00