Commit Graph

101410 Commits

Author SHA1 Message Date
Hans Goudey
189fc24f1a Cleanup: Simplify removing curves in GP erasor stroke mode
Avoid the initial copy, and avoid moving from a const reference.
2023-07-24 14:07:44 -04:00
Hans Goudey
78dba0bb17 Cleanup: Pass array references with spans in GP eraser 2023-07-24 13:49:27 -04:00
Amelie
4f56261f76 GPv3: Stroke mode for the Eraser tool
Implementation of the stroke mode of the eraser tool for grease pencil.
In this mode, the eraser removes each stroke that it touches, meaning each stroke that either intersects the eraser or that has all points inside of it.

Pull Request: https://projects.blender.org/blender/blender/pulls/110304
2023-07-24 17:04:39 +02:00
Sybren A. Stüvel
47cc5787a6 Fix compiler error when building without WITH_INPUT_NDOF
Some declarations were outside the `#ifdef WITH_INPUT_NDOF`, but still
referred to things inside that block. Now everything is inside the file.
2023-07-24 16:42:56 +02:00
Lukas Stockner
8fd0551bfe Cleanup: format 2023-07-24 16:06:45 +02:00
Lukas Stockner
c7eb426eae Cleanup: Remove leftover code in versioning 2023-07-24 16:05:35 +02:00
Sybren A. Stüvel
00e5b2b6db Refactor: Anim, simplify Armature drawing code a little bit
Reduce indentation in two armature drawing functions, by flipping
conditions and using `continue` (instead of having the entire `for`-body
inside two nested conditions).

No functional changes.
2023-07-24 15:53:59 +02:00
Germano Cavalcante
017d4912b2 Transform: Use alternative hotkeys for Transform Navigation
In order to avoid navigation hotkey conflicts during transform
operations, this commit implements the "Transform Navigation with Alt"
option.

This option is enabled by default and makes navigation hotkeys require
the `Alt` key during a transforming in the 3D View.

Pull Request: https://projects.blender.org/blender/blender/pulls/109754
2023-07-24 15:51:58 +02:00
Germano Cavalcante
30b53c1005 Fix View Pan operation failing
Caused by 329cf07499
2023-07-24 10:40:36 -03:00
Lukas Stockner
b220ec27d7 Cycles: Update Velvet BSDF to Sheen BSDF with new Microfiber sheen model
This patch extends the old Velvet BSDF node with a new shading model,
and renames it to Sheen BSDF accordingly.

The old model is still available, but new nodes now default to the
"Microfiber" model, which is an implementation of
https://tizianzeltner.com/projects/Zeltner2022Practical/.

Pull Request: https://projects.blender.org/blender/blender/pulls/108869
2023-07-24 15:36:36 +02:00
Germano Cavalcante
0b3d2a4f47 View3D Refactor: rename view operator files
Use the `view` prefix to better identify the hierarchy of these files.
2023-07-24 09:50:39 -03:00
Germano Cavalcante
329cf07499 View3D Refactor: compute 'ViewOpsData::zfac' only when needed 2023-07-24 09:50:39 -03:00
Germano Cavalcante
e8289c0aff View3D Refactor: support 'ViewOpsType' for Roll
This deduplicates the code and will make it easier to integrate this
operator into the overall navigation utility.
2023-07-24 09:50:39 -03:00
Germano Cavalcante
b4e6c02709 View3D Refactor: support 'ViewOpsType' for Orbit
This deduplicates the code and will make it easier to integrate this
operator into the overall navigation utility.
2023-07-24 09:50:29 -03:00
Germano Cavalcante
384c2e1f36 View3D Refactor: use structs to confine the Operator's navigation data
Adopt the use of structs to enclose and organize operator-specific
navigation data.

With this, we create well-defined boundaries for the navigation data of
individual operators.

This makes the code more flexible and easier to maintain and avoid
errors.
2023-07-24 09:46:32 -03:00
Germano Cavalcante
10835154eb Cleanup: split 'view3d_navigate.cc' operators into their own files
This reorganization makes the code more modular and makes it easier to
identify and fix possible errors in the future.
2023-07-24 09:37:05 -03:00
Germano Cavalcante
6faa39edb7 Cleanup: split 'ViewOpsData::init_navigation' into specific functions
The logic of `ViewOpsData::dyn_ofs` was scattered and confusing.

Confining it to a function makes initialization and usage clearer.
2023-07-24 08:49:57 -03:00
Pratik Borhade
7cdb9814c5 Fix #110253: Regression: Extruding bone from root fails
Caused by 0b7d8a20bf
Above commit broke the operation because of this change: `if (do_extrude != 0)`
Earlier True/False/2 were used to determine the point of extrude.
Use enum to fix this and to improve the code readability.

Pull Request: https://projects.blender.org/blender/blender/pulls/110256
2023-07-24 13:45:39 +02:00
Germano Cavalcante
15a4609ece Cleanup: Convert 'ViewOpsData' functions into methods
This commit refactors the code by converting the data manipulation
functions of 'ViewOpsData' into methods.

This change adopts a more object-oriented approach, resulting in
improved code organization and enhanced reusability.

Pull Request: https://projects.blender.org/blender/blender/pulls/110209
2023-07-24 13:41:47 +02:00
Sybren A. Stüvel
546892bdbc Cleanup: fix compiler warning in makesdna
No functional changes.
2023-07-24 12:50:36 +02:00
Chris Blackbourn
8ace65e3c6 Cleanup: simplify uv parametrizer state information
Just use RAII, no need to track extra initializer state.
2023-07-24 17:50:59 +08:00
Campbell Barton
50edca5306 Cleanup: minor readability changes to escape_uri_string
- A `_size` suffixed argument was modified to be come the length,
  store in a variable with a `_len` suffix to avoid confusion.
- The enum type for masking characters read like a number
  (used Set suffix), add `e` prefix to make it clear it's an enum.
2023-07-24 12:44:46 +10:00
Campbell Barton
5107fb6625 Cleanup: quiet ASAN warning initializing eWM_CapabilitiesFlag to -1
ASAN warns about this since moving wm_window.c to C++,
add an initialized flag instead of using an invalid value to
represent an uninitialized state.
2023-07-24 12:41:09 +10:00
Campbell Barton
a82836b6c2 Cleanup: replace typdef with 'using'
Apply modernize-use-using with edits (as it strips out useful info).
2023-07-24 11:04:19 +10:00
Campbell Barton
b8ea968929 Cleanup: simplify struct & enum declarations for C++ 2023-07-24 10:13:31 +10:00
Clément Foucault
2ed108cb84 Fix EEVEE: Broken Normals and Transparency
This was caused by 89218b66c2
The removal of the transmission roughness socket messed
with the hardcoded socket indices used to for auto socket
values and optimization detection.

Use defines inbetween sockets declarations to make it more
obvious that it they needs to be updated on socket changes.
This also makes the code a bit more meaningful.
2023-07-23 13:50:25 +02:00
Clément Foucault
9bf37be99c EEVEE-Next: Fix invalid surfel normals
The normals were inverted because they use
geometric normals. These are computed using
partial derivatives (`dFdx` & `dFdy`) and are
dependent on the view orientation. But the
baking views were not all captured from the
same side, which flipped sufels normals in
2 out of the 3 views.
2023-07-22 10:43:49 +02:00
Lukas Stockner
89218b66c2 Cycles: Remove Transmission Roughness from Principled BSDF
This was already unsupported in combination with Multiscattering GGX,
prevented the Principled BSDF from using microfaced-based Fresnel for
Glass materials, and would have made future improvements even trickier.

Pull Request: https://projects.blender.org/blender/blender/pulls/109950
2023-07-22 04:16:49 +02:00
Campbell Barton
32288bd200 Cleanup: correct struct member comments 2023-07-22 12:15:40 +10:00
Campbell Barton
3a3de9b674 Cleanup: spelling in comments 2023-07-22 11:46:41 +10:00
Campbell Barton
302887c619 Cleanup: use boolean literals in source/
Apply clang-tidy modernize-use-bool-literals to source/.
2023-07-22 11:43:01 +10:00
Campbell Barton
d1aac3b08c Cleanup: various non-functional changes for C++ (python, makesrna)
- Remove redundant void, struct.
- Use function style casts.
2023-07-22 11:33:36 +10:00
Campbell Barton
81ee130063 Cleanup: use C++ system headers
Apply clang-tidy modernize-deprecated-headers to source/
2023-07-22 11:27:25 +10:00
Campbell Barton
c81fffaa30 Fix function signatures for PyGetSetDef callbacks
While in practice this didn't cause problems on supported platforms,
omitting the closure argument is incorrect.
2023-07-22 11:16:04 +10:00
Campbell Barton
056a7bbb5c Cleanup: ignore GCC cast-function-type warning for PyMethodDef's
PyMethodDef::ml_flags define the function signature making the warning
meaningless.
2023-07-22 11:13:55 +10:00
Ray molenkamp
19422044ed Cleanup: CMake: Modernize bf_bmesh dependencies
Pretty straightforward

- Remove any bmesh paths from INC
- Add a dependency though LIB when missing

context: https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/110363
2023-07-22 02:05:21 +02:00
Germano Cavalcante
8165b70e58 Fix #110337: 'Target Selection' options modified after transform
Caused by 3a2f5fb9db

`ENUM_OPERATORS` was incorrectly set causing problems for C++ code.
2023-07-21 18:50:37 -03:00
Jacques Lucke
febe38743c RNA: move remaining rna files to C++
Also see #103343.

Pull Request: https://projects.blender.org/blender/blender/pulls/110354
2023-07-21 21:08:05 +02:00
Jacques Lucke
5b2accd26f Cleanup: fix debug build 2023-07-21 19:49:27 +02:00
Jacques Lucke
ec05e5a3fc Python: move remaining python files to C++
Also see #103343.

Pull Request: https://projects.blender.org/blender/blender/pulls/110352
2023-07-21 19:41:03 +02:00
Ray Molenkamp
a670b53abe Cleanup: CMake: Modernize bf_blenfont dependencies
Pretty straightforward

- Remove any blenfont paths from INC
- Add a dependency though LIB when missing

context: https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/110351
2023-07-21 19:13:37 +02:00
Ray Molenkamp
0f541db97c Cleanup: CMake: Modernize bf_intern_clog dependencies
Pretty straightforward

- Remove any clog paths from INC
- Add a dependency though LIB when missing

context: https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/110350
2023-07-21 18:37:30 +02:00
Ray molenkamp
be516e8c81 Cleanup: CMake: Modernize bf_blentranslation dependencies
Pretty straightforward:

- Remove any blentranslation paths from INC
- Add a dependency though LIB when needed

Slightly different than usual:

blentranslation still had a dependency on imbuf, from a time long
gone, cleaned that up since I was in the area

context: https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/110324
2023-07-21 16:22:10 +02:00
Sybren A. Stüvel
f645130465 Anim: Refactor the armature drawing code
Introduces a strategy pattern for the implementation of the various
armature drawing modes. Instead of having to `switch (arm->drawtype)`
(or `if`/`else if`/`else` chains) everywhere, one function is used to
select the appropriate `ArmatureBoneDrawStrategy` subclass.

In the future this class could be expanded even further. Currently there
are still places where there are explict checks for the draw type,
making it cumbersome to add new types. For now I feel it's already a
good enough move forward; future extensions can be done in later PRs.

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/106232
2023-07-21 15:03:50 +02:00
Philipp Oeser
126fd4a181 Fix #110341: Appended text looses user after reload
Even if a text datablock was "used" by in the Text Editor, it would be
lost after save/reload if no fake user is set.

This is not in line with other datablocks if they are used by an editor
(e.g. images, clips, masks etc.).

Now handle this with `IDWALK_CB_USER_ONE` (instead of `IDWALK_CB_NOP`)
in `id_refcount_recompute_callback` >
`BKE_screen_foreach_id_screen_area` which re-ensures a user is set.

(Bit on shaky ground here, but this seems like this is how this is
handled for other editors "consuming" a datablock).

Pull Request: https://projects.blender.org/blender/blender/pulls/110344
2023-07-21 14:41:45 +02:00
Nate Rupsis
9ec018e1df Fix: Bump BLENDER_FILE_SUBVERSION to 11 used in #108286 2023-07-21 08:40:56 -04:00
Dalai Felinto
a51b38dec5 Cleanup: make format 2023-07-21 14:23:49 +02:00
Falk David
8dd0faec54 GPv3: Refactor: ramer_douglas_peucker_simplify
This refactors the `ramer_douglas_peucker_simplify` function to be more generic.

No functional changes expected.

Pull Request: https://projects.blender.org/blender/blender/pulls/110338
2023-07-21 12:44:36 +02:00
Sybren A. Stüvel
4833dd931b Makesdna: more verbose Align struct error
Change the `makesdna` error message from:

```
Align struct error: Bone color
```

to:

```
Align struct error: Bone::color (starts at 180 on the native platform;  180 % 8 = 4 bytes)
```

This has a few advantages:

- The colon notation (`Bone::color`) makes it easier to recognise that this is about a specific struct field.
- It makes it clear that this is about the start/offset of the inner struct.
- It includes the math the check is actually doing, providing concrete information on how to change the code to fix the issue.

Pull Request: https://projects.blender.org/blender/blender/pulls/110291
2023-07-21 12:24:35 +02:00
Campbell Barton
495a198393 Cleanup: use C++ system headers 2023-07-21 16:07:33 +10:00