Commit Graph

1304 Commits

Author SHA1 Message Date
Brecht Van Lommel
f165c75e14 Refactor: Add various DNA_*_enums.h and DNA_*_types.h files
* Move colorband and theme DNA to own headers
* Move some anim, curve, modifier and space enums to new headers
* Move data transfer enums to DNA
* Duplicate imbuf proxy and GPU backend enums

For a few reasons:
* Reduce number of includes in DNA headers
* Don't define enums used in DNA outside of DNA
* Move theme settings to separate header for userdef_default_theme.c
* Prepare for using default initializers in DNA headers. (#134531)

Pull Request: https://projects.blender.org/blender/blender/pulls/138831
2025-05-20 13:26:43 +02:00
Aras Pranckevicius
9e4c26574a VSE: new cache implementation
Rework internals of how VSE caching is done. Primarily to make all the
caching logic more understandable from development point of view, but
also has several user visible implications (more details in the PR):
- Simpler and fewer caching UI options,
- Disk cache is gone (primary reason: proxies are kinda the same thing),
- VSE cache size set in preferences is actual size used for VSE caches
  now (previously caching stopped as soon as whole Blender used that
  much memory, even if some memory usage was not about VSE at all),
- Certain scenarios of cache invalidation are faster now.

Pull Request: https://projects.blender.org/blender/blender/pulls/137926
2025-05-14 12:59:46 +02:00
Harley Acheson
48403607dd UI: Status Bar Event Icons for Trackpad Gestures
Adding three icons to represent panning, rotate, and zoom gestures
and using them for status bar event icons for
GHOST_kTrackpadEventScroll, GHOST_kTrackpadEventRotate, and
GHOST_kTrackpadEventMagnify.

Pull Request: https://projects.blender.org/blender/blender/pulls/138569
2025-05-07 23:57:03 +02:00
Sergey Sharybin
9477fa4eb0 Migrate existing files to Git LFS
The files that were binary and were committed prior to the
Git LFS configuration in the main repository.

override restrictions

Pull Request: https://projects.blender.org/blender/blender/pulls/138452
2025-05-05 17:18:42 +02:00
Sergey Sharybin
bbfc97ad6f Move tests/data and assets to the main repository
This change moves the tests data files and publish folder of assets
repository to the main blender.git repository as LFS files.

The goal of this change is to eliminate toil of modifying tests,
cherry-picking changes to LFS branches, adding tests as part of a
PR which brings new features or fixes.

More detailed explanation and conversation can be found in the
design task.

Ref #137215

Pull Request: https://projects.blender.org/blender/blender/pulls/137219
2025-05-05 15:10:22 +02:00
Aaron Carlisle
c92abb6af1 Icons: Match SVG height for Add/Remove icons
Adjust the height of the remove icon SVG to match the add icon, ensuring consistent sizing across UI elements.

This resolves alignment issues when pairing SVG icons with text or font-based elements. A height of 1100px was chosen to vertically center the icon cleanly in Blender's UI without introducing fractional pixel offsets.

No visual differences are expected in Blender.

Pull Request: https://projects.blender.org/blender/blender/pulls/137438
2025-05-03 17:21:06 -04:00
Pablo Vazquez
3e8801849f UI: Make auto-run scripts setting off by default
Even though the default startup already has `Trusted Source` and
`Auto Run Python Scripts` off by default, when resetting their values
to default (right click, Reset to Default) they would be turned on.

It was simply missing explicitly setting this off by default.

Pull Request: https://projects.blender.org/blender/blender/pulls/137205
2025-04-09 18:57:13 +02:00
Harley Acheson
a21481cbdd UI: Allow Changing Editor Outline Width
The gaps between editors need to be selected and manipulated in order
to resize areas. How wide these need to be depends on the accuracy and
resolution of your pointing device. And also on the fine motor control
and visual acuity of the user. If you are using a tablet pen, touch
device, or are visually or physically challenged, then you need these
gaps to be wider. This PR allows a wide latitude in this.

Pull Request: https://projects.blender.org/blender/blender/pulls/126334
2025-04-07 21:15:20 +02:00
Jacques Lucke
8ec9c62d3e Geometry Nodes: add Closures and Bundles behind experimental feature flag
This implements bundles and closures which are described in more detail in this
blog post: https://code.blender.org/2024/11/geometry-nodes-workshop-october-2024/

tl;dr:
* Bundles are containers that allow storing multiple socket values in a single
  value. Each value in the bundle is identified by a name. Bundles can be
  nested.
* Closures are functions that are created with the Closure Zone and can be
  evaluated with the Evaluate Closure node.

To use the patch, the `Bundle and Closure Nodes` experimental feature has to be
enabled. This is necessary, because these features are not fully done yet and
still need iterations to improve the workflow before they can be officially
released. These iterations are easier to do in `main` than in a separate branch
though. That's because this patch is quite large and somewhat prone to merge
conflicts. Also other work we want to do, depends on this.

This adds the following new nodes:
* Combine Bundle: can pack multiple values into one.
* Separate Bundle: extracts values from a bundle.
* Closure Zone: outputs a closure zone for use in the `Evaluate Closure` node.
* Evaluate Closure: evaluates the passed in closure.

Things that will be added soon after this lands:
* Fields in bundles and closures. The way this is done changes with #134811, so
  I rather implement this once both are in `main`.
* UI features for keeping sockets in sync (right now there are warnings only).

One bigger issue is the limited support for lazyness. For example, all inputs of
a Combine Bundle node will be evaluated, even if they are not all needed. The
same is true for all captured values of a closure. This is a deeper limitation
that needs to be resolved at some point. This will likely be done after an
initial version of this patch is done.

Pull Request: https://projects.blender.org/blender/blender/pulls/128340
2025-04-03 15:44:06 +02:00
Harley Acheson
0ee642611c UI: Add Specific Icon to Represent Preview While Loading
Rather than continuing to use ICON_TEMP, meant to represent temporary
locations, this PR adds a specific one - ICON_PREVIEW_LOADING - for
this purpose. Just a copy of ICON_TEMP for now, but with all parts at
40% opacity, matching how we use it now. Not only gives us an icon we
can later change, but also removes our special handling of reducing
opacity for one icon id.

Pull Request: https://projects.blender.org/blender/blender/pulls/135463
2025-03-04 23:35:30 +01:00
Harley Acheson
a021176ff4 UI: Show "Not Found" Icon when Not Found
In the unlikely event that an icon is requested that is not found, show
a specific icon that is meant to indicate this state, in "Error" color.

Pull Request: https://projects.blender.org/blender/blender/pulls/134959
2025-03-03 22:25:42 +01:00
Harley Acheson
e850a09762 UI: Add Icons to Represent Error Conditions
This PR adds three SVG Icons. One to represent that an icon is not
found - ICON_NOT_FOUND - so represent when an out-of-range value was
used to specify an icon. The second - ICON_CHAR_NOTDEF - is to
represent that a text character is not found in the specified font or
font stack. The third - ICON_CHAR_REPLACEMENT - is to indicate the
portion of a text string that contains invalid bytes.

Pull Request: https://projects.blender.org/blender/blender/pulls/134008
2025-02-19 01:11:24 +01:00
Harley Acheson
0dce68333f UI: Vertically Aligned Grip Icon
Add a variation of the current Grip icon that is vertically-aligned.
the current ICON_GRIP works great when it has lots of horizontal space,
but ICON_GRIP_V might be needed for horizontally constrained uses.

Pull Request: https://projects.blender.org/blender/blender/pulls/134777
2025-02-19 00:19:08 +01:00
Harley Acheson
d111b46b7a Merge branch 'blender-v4.4-release' 2025-02-17 09:47:59 -08:00
Harley Acheson
3e77dd1e46 Fix: Enable Translation Options by Default
This PR changes the default user preferences so that the Translation
Options are enabled. Otherwise with fresh install changing language
only translates tooltips.

Pull Request: https://projects.blender.org/blender/blender/pulls/134649
2025-02-17 18:46:43 +01:00
RedMser
aa1a1d586e Fix Unreported: Use correct icons for pose markers in Action editor
The pose markers were confusing, as the selection state also changed
the shape of the icon.

`PMARKER_ACT` and `PMARKER_SEL` (resp. active and selected) now look
the same. There is no concept any more of an "active" pose marker, but
the icon is still there to avoid breaking add-ons that happen to use
it.

`PMARKER` (unselected) now uses the icon that previously was used for
`PMARKER_SEL`.

This way the pose markers are always visually different from scene
markers.

Pull Request: https://projects.blender.org/blender/blender/pulls/132819
2025-02-13 16:23:42 +01:00
Harley Acheson
0381f18429 UI: New Presets Icons
Replacement for ICON_PRESET AND ICON_PRESET_NEW that looks like settings
on an audio mixing board.

Pull Request: https://projects.blender.org/blender/blender/pulls/134313
2025-02-13 02:44:47 +01:00
Brecht Van Lommel
e2e1984e60 Refactor: Convert remainder of blenlib to C++
A few headers like BLI_math_constants.h and BLI_utildefines.h keep working
for C code, for remaining makesdna and userdef defaults code in C.

Pull Request: https://projects.blender.org/blender/blender/pulls/134406
2025-02-12 23:01:08 +01:00
Harley Acheson
5956752eb7 UI: Themeable RedAlert, Error, Warning, Info Colors
The "Red Alert" color is currently hard-coded, which causes problems in
themes.  It also has an Enum value of 0, which precludes using this
value as "unset". We also use Error, Warning, and Info colors that are
part of the Info Editor.  This PR moves these out of the Info Editor
and into the "State" part of the theme. And then makes TH_REDALERT use
the TH_ERROR color.

Pull Request: https://projects.blender.org/blender/blender/pulls/131127
2025-02-12 20:59:47 +01:00
Sean Kim
c83c981dab Assets: Update submodule hash
Related PR: blender/blender-assets#24

Pull Request: https://projects.blender.org/blender/blender/pulls/134250
2025-02-07 16:57:39 -08:00
Sean Kim
24bfa41a2c Assets: Update submodule hash
Related PR: blender/blender-assets#24

Pull Request: https://projects.blender.org/blender/blender/pulls/134250
2025-02-08 01:54:23 +01:00
Sean Kim
9ad4db8b3d Merge branch 'blender-v4.4-release' 2025-02-07 13:54:48 -08:00
Sean Kim
1a603602e7 Assets: Update submodule hash
Related PR: blender/blender-assets#23

Pull Request: https://projects.blender.org/blender/blender/pulls/134247
2025-02-07 22:52:58 +01:00
Campbell Barton
b113e848ef NDOF: implement new methods to pick the orbit-center
Note: this is a back-port from `main`, details below,
Original message:

Add support for dynamic NDOF orbit center calculation.

- When "Auto" NDOF preference is enabled:
  All visible objects in the viewport are used to calculate a
  bounding box center, if the bounds are outside the view or the center
  is behind the viewport, use a Z-Buffer test to calculate the depth in
  the middle of the region.

- When "Use Selected Items" NDOF preferences is enabled,
  calculating the bounds from the selection.

- An option to show the orbit center as a guide has also been added.

Ref !129594

Co-authored-by: Kamil Galik <kgalik@3dconnexion.com>

Back-ported as this change as this only missed the 4.4 branch by hours
and is considered an important feature for 4.4 by 3dconnexion.

This includes the following commits from main:

1a14d69498
30399fd165
3a8658958f
da8d9d989e
2a0ce11104
fb539baa89
2025-02-07 10:23:45 +11:00
Campbell Barton
30399fd165 NDOF: enable "Auto" center & show orbit center guide by default 2025-02-06 09:54:44 +11:00
Thomas Dinges
eaef5e87c2 Revert "Release: Bump branch to 4.4 Beta."
This reverts commit 8a6e3a0bd7.
2025-02-05 11:25:54 +01:00
Thomas Dinges
8a6e3a0bd7 Release: Bump branch to 4.4 Beta.
Splash screen by Flow.
2025-02-05 11:24:33 +01:00
Campbell Barton
cb83a41dc4 Cleanup: spelling in comments
Also include "release/" in the `check_spelling_py` target.
2025-01-31 15:07:11 +11:00
Gilberto.R
17c98a2c8c UI: Flip Material icon horizontally
Horizontally flip the 'Material' Icon to better differentiate it from
the 'World' icon. https://blender.community/c/rightclickselect/p9Zp/

Pull Request: https://projects.blender.org/blender/blender/pulls/131568
2025-01-28 00:05:07 +01:00
Nika Kutsniashvili
693f8f37d0 Fix #133326: Material preview for Grease Pencil
Material preview panel for grease pencil was accidentally removed in e10b0b3449 because it had EEVEE engine listed as `COMPAT_ENGINES`, which also seemed accidental. After adding panel back I noticed that .blend file for generating previews was also faulty. It was updated 2 years ago when GPv3 was experimental feature, and file wasn't up to date to current state.

This PR also adds new .blend file for generating material previews that is mostly the same as one in Blender 4.2, except:
- I organized it, removed unnecessary stuff.
- For Flat preview it was using flat checkerboard background, for other modes 3D room, which seemed unnecessary and not useful for Grease Pencil, so now every mode uses flat background.
- "Cloth", "Liquid", and "Shaderball" modes in 4.2 didn't render at all and resulted in all white screen. Now they render default Circle, which is not correct, but at least better than nothing. In future we can add custom drawings to those modes for previewing materials on more complex objects.

Pull Request: https://projects.blender.org/blender/blender/pulls/133372
2025-01-21 16:34:48 +01:00
Sean Kim
7ba732a911 Assets: Update submodule hash
Related PR: blender/blender-assets#19

Ref: #131122

Pull Request: https://projects.blender.org/blender/blender/pulls/133219
2025-01-17 21:30:22 +01:00
Harley Acheson
6696f11808 UI: Upgrade Inter font 4.0 -> 4.1
Released November 15 2024, version 4.1 has a lot of changes shown here:
https://github.com/rsms/inter/releases but nothing that anyone should
notice as it mostly looks identical. Same transforms applied: Tabular
numbers, Open Digits, and Disambiguation without slashed zero.

Pull Request: https://projects.blender.org/blender/blender/pulls/132508
2025-01-16 22:56:53 +01:00
Sean Kim
8b6556d556 Assets: Bump submodule hash for recent change
Related PR: blender/blender-assets#18

Pull Request: https://projects.blender.org/blender/blender/pulls/132761
2025-01-07 19:09:27 +01:00
Harley Acheson
6a06e87f85 Fix #120833: Align Reset to Default with Preferences Defaults
This PR fixes a number of items in Preferences that "Reset to Default"
to different values than the default preferences. For some items this
is because they just have incorrect values, some have redundancies
between the U_default struct and property default, and many others are
caused by our code that reverses struct defaults for properties that
are "negative SDNA", or don't struct defaults for enum_bitflag_sdna
properly. Items include "show_splash", "anisotropic_filter", etc.

Pull Request: https://projects.blender.org/blender/blender/pulls/132762
2025-01-07 18:58:27 +01:00
Campbell Barton
ebf41cf047 Cleanup: quiet mypy warnings 2025-01-06 16:58:56 +11:00
Campbell Barton
4f1817cc18 Cleanup: declare __all__ for Python scripts
Declare all to make public public API's explicit and
help detect unused code.
2025-01-06 16:45:36 +11:00
Campbell Barton
6216e8574c Cleanup: declare __all__ for doc-generation & icon updating utils 2025-01-04 20:33:53 +11:00
Aras Pranckevicius
5458dff301 Fix #132172: studiolight HDRIs have black/negative pixels
The worldspace studiolight HDR images shipped in Blender have some
black/negative pixel artifacts, mostly in the brightest areas. These
are caused by the default downscaling filter that has negative lobes,
last time they were updated/added in e9df155d53. Fix the issue by
downloading already correct resolution (1024x512) from the source,
and recompressing with the same DWA quality setting.

Co-authored-by: Steffen Dünner <steffen.duenner@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/132220
2024-12-23 12:40:17 +01:00
Richard Antalik
8ce5356522 VSE: Text editing in preview
This commit implements most features needed for simple text editing.

Active text strip can be edited in preview by pressing tab key, which
enabled text editing mode. With this mode active, outline matches text
boundary box and cursor is drawn.

Cursor can be moved with usual keys. Pressing shift starts selection.
Selection and navigation works when text is scaled or rotated. Mirrored
text is not supported in this PR. it can be done, but the text is
unreadable that way, so I kept it simple.

Multi line text is supported. Pressing return key starts new line.

Copy/paste operator uses OS copy paste buffer, so text from other apps
can be pasted.

Text is still limited to 512 characters. Text string property still
exists in side panel and is limited to single line. Individual
characters can not be styled in different way like in 3D viewport, but
the code is mostly ready for such feature.

Ref: #126547

Pull Request: https://projects.blender.org/blender/blender/pulls/127239
2024-12-19 15:56:54 +01:00
Sean Kim
8b853e46a0 Assets: Update sculpt essential library hash
Relevant PR: blender/blender-assets!17

Pull Request: https://projects.blender.org/blender/blender/pulls/131881
2024-12-13 22:57:47 +01:00
Jesse Yurkovich
3bb6e8f1b8 Cleanup: Remove old embedded preview_grease_pencil_legacy.blend
Looks like a simple leftover. The linkers are smart enough to completely
exclude this from the final binary so this is only targeting `main` as a
general cleanup.

Part of #130518.

Pull Request: https://projects.blender.org/blender/blender/pulls/129271
2024-12-02 18:07:57 +01:00
Sean Kim
1af839d419 Fix #130707: Weight paint gradient tool doesnt fill behind start point
See blender/blender-assets!15 for the actual asset file change.

As part of the brush asset project, various weight paint brushes had
their falloff curve changed. This had the unintended effect of changing
the behavior of the gradient tool, as it shares the currently active
brush's settings.

This behavior is unintuitive and not well documented, as an interim fix,
the bundled assets were reverted.

Pull Request: https://projects.blender.org/blender/blender/pulls/131058
2024-11-27 22:46:49 +01:00
Sean Kim
be62107fbd Assets: Update asset repository hash for essentials library updates
Includes blender/blender-assets@360e2172

Pull Request: https://projects.blender.org/blender/blender/pulls/131057
2024-11-27 22:18:03 +01:00
Harley Acheson
8bcb714b9e UI: Face Orientation Front Color Transparent
This PR changes the default theme color for TH_FACE_FRONT, used by the
Face Orientation overlay, to have zero alpha. That way, by default, it
can be used always and not interfere with the display of (normal) front
faces.

Pull Request: https://projects.blender.org/blender/blender/pulls/130618
2024-11-20 21:39:40 +01:00
John Kiril Swenson
25f34c0614 Merge branch 'blender-v4.3-release' 2024-11-07 22:48:15 -06:00
John Kiril Swenson
2c10fe4158 Fix: VSE: Make "connect strips" default
Implementation in #124333 had versioning code in `versioning_userdef.cc`
to make sure that updated configs would also have connected strips by default,
but forgot to change `userdef_default.c`.

Pull Request: https://projects.blender.org/blender/blender/pulls/129993
2024-11-08 05:45:58 +01:00
Sean Kim
7262146c1f Merge branch 'blender-v4.3-release' 2024-11-07 13:20:47 -08:00
Sean Kim
5c880a5291 UI: Revert default brush icon to monochrome version
Earlier in the brush assets project, for mesh sculpting, grease pencil,
and curves sculpting, the toolbar brush icon used was changed to a
version with a green highlight. This commit reverts that change to use
the monochrome grey icon instead in each of these modes.

For Sculpt mode specifically, the Paint tool icon is kept as this green
version to differentiate the usages. In future releases, further changes
are planned for sculpting related brushes to better represent their
functionality.

---

### Sculpt Mode Toolbar

![image](/attachments/f1575814-88f0-44f7-8ab6-7b069ff09763)

Pull Request: https://projects.blender.org/blender/blender/pulls/129934
2024-11-07 22:13:58 +01:00
Julian Eisel
b95b5e0f77 Assets: Update assets repository hash for essentials library updates
A number of fixes were done for the brushes in the essentials asset
library, update the hash to include them.
2024-11-05 12:08:18 +01:00
Julian Eisel
d8680e9476 Merge branch 'blender-v4.3-release' 2024-11-05 12:06:47 +01:00