Commit Graph

92960 Commits

Author SHA1 Message Date
Kévin Dietrich
67f5596f19 Fix T98866: GPU subdiv crash in edit mode with loose geometry
The BMesh case was missing when extracting the loose edges flags used for
display, so the code was crashing on unitialized `MEdge` pointer.
2022-06-14 01:39:28 +02:00
Julian Eisel
afde12e066 Outliner performance: Only expand sub-trees if needed
Before this, we would build the sub-trees of some elements, just to
remove them afterwards. In big files, this would sometimes build ten
thousands of elements unnecessarily. Now support not building those
sub-trees in the first place.

Performance tests in a Sprite Fright production file (release build):
- View Layer display mode, reduced Outliner tree rebuilding from ~45ms
  to 12-17ms
- Library Overrides display mode, Hierarchies view, reduced tree
  rebuilding from 5-6s(!) to 220ms
2022-06-13 22:06:08 +02:00
Richard Antalik
988fc24930 Fix T93500: Sequence.fps returns 0 when proxy is used
Caused by `seq_open_anim_file` early returning if anim struct exists,
exen if it's not initialized. To ensure `anim` struct is initialized
when `openfile` argument is true, don't do early return.
2022-06-13 20:46:39 +02:00
Cian Jinks
3b7ce70232 Fix T94499: Knife missed clipping check
The knife BVH raycast functionality was missing a check to discard
points which were clipped.
2022-06-13 19:28:48 +01:00
Richard Antalik
1c5f09e8a8 Fix T93469: Image not moving in proportion to mouse
Apply scale factor when preview aspect ratio is not 1:1.
2022-06-13 20:12:35 +02:00
Richard Antalik
1243c2bdae Fix VSE: Effect strip has length of 1 frame when added
Length was set properly when added, but it was clamped by function
`seq_time_effect_range_set`

Add early return for generator effects where offsets can be used
normally.
2022-06-13 18:29:51 +02:00
Erik
40d700c6fb UI: Use "bl_order" for UI child panels
The "bl_order" property on add-on UI panels can be used to put
them in a specific order regardless of the order of registering.
This patch makes this ordering also possible for panels inside panels.

Differential Revision: https://developer.blender.org/D15174
2022-06-13 18:27:50 +02:00
Sybren A. Stüvel
e2993719a8 IO: update documentation for HierarchyIterator::weak_export
The documentation for `HierarchyIterator::weak_export` mentions a feature
that was removed at some point. Another example is used to illustrate its
functionality.

No functional changes.
2022-06-13 16:17:00 +02:00
Yiming Wu
5abe127b3d GPencil: Use better sampling limits.
The problem with T98683 is that sampling interval can be set to very small,
resulting in very dense points. This patch attempts to optimize that a little bit.

Reviewed By: Antonio Vazquez (antoniov)

Differential Revision: https://developer.blender.org/D15180
2022-06-13 22:13:16 +08:00
Yiming Wu
85fde25178 LineArt: General code cleanups.
- Use uintxx_t for all 8/16/64 bit integer types.
- Removed prepend_edge_direct thingy which is no longer needed in current edge iterator model.
- Minor code path adjustments like only copies view vector when necessary etc.
- Correctly handle ies==NULL in edge cutting function.
- White spaces and comments etc.

Reviewed By: Sebastian Parborg (zeddb)

Differential Revision: https://developer.blender.org/D15181
2022-06-13 22:13:16 +08:00
Hans Goudey
10850f0db9 Cleanup: Use more specific includes for grease pencil modifiers
Also remove unused includes in some cases.
This should make these files recompile less often.
2022-06-13 16:02:44 +02:00
Brecht Van Lommel
5ada2afb6d Cleanup: fix various typos
Found via codespell -q 3 -S ./intern,./extern -L ans,ba,bording,datas,eiter,fiter,hist,inout,lod,ot,parm,parms,pixelx,pres,te

Contributed by luzpaz.

Differential Revision: https://developer.blender.org/D15155
2022-06-13 13:17:32 +02:00
Joseph Eagar
434133a631 Cleanup: Remove unused variable and parameter in pbvh_update_draw_buffers 2022-06-13 02:46:35 -07:00
Julian Eisel
9634f7fae3 Cleanup: Move dragging code for buttons to own file
Moves code for managing dragging data from buttons to a separate file.
This way all this closely related code is in one location, making it
easier to see how it all relates, and easier to find.
2022-06-13 11:15:39 +02:00
Kévin Dietrich
16f5d51109 Fix T98735: GPU subdiv displays normals for all elements
The normals flags were not setup properly which made normals for all
elements (vertices, faces) to be drawn when using the normals overlay.
Also remove usage of uints for the flag in the APIs.
2022-06-13 06:20:46 +02:00
Joseph Eagar
c55dac9904 Fix T98745: Anchored mode not working for sculpt smear brush 2022-06-12 12:30:46 -07:00
Joseph Eagar
afe57c4001 Fix T98784: PBVH gpu layout check being ignored
Moved gpu vert format checking outside of pbvh_update_draw_buffers,
which isn't called in every code path of BKE_pbvh_draw_cb. This led
to the draw cache being partially populated by old draw buffers
that were subsequently freed, causing a crash.
2022-06-12 12:12:41 -07:00
Chris Blackbourn
4c7b0804f8 Cleanup (GPU): Improve efficiency of circle drawing. 2022-06-12 17:49:25 +12:00
Chris Blackbourn
cc4d46d91e Fix unreported: Choose nsegments for 2D rotation gizmo based on screen scale.
This mostly affects large rotation gizmos at high DPI.
Without this patch, they appear as 32-gons instead of circles.
2022-06-12 17:47:15 +12:00
Chris Blackbourn
9d7e731444 Fix unreported: 2D Gizmo bounding box updated to use gizmo scale. 2022-06-12 17:39:35 +12:00
Howard Trickey
f24d32f791 Fix T98517: Curve Fill Node creating extra edges.
The delaunay2d function, with mode CDT_CONSTRAINTS_VALID_BMESH_WITH_HOLES
sometimes didn't eat away all of the edges. Doing a prepass to remove
the outer edges until they hit the constraints solves this problem.
2022-06-11 12:33:27 -04:00
Michael Kowalski
add1da52ad Fix T97362: forward slashes in USD texture paths
Ensuring that relative paths to textures in exported USDs use
forward slash separators, for cross-platform compatibility.
2022-06-10 15:07:45 -04:00
Yiming Wu
9e622e1d02 LineArt: Clean up LineartRenderBuffer.
This patch does code clean ups in `LineartRenderBuffer` because it's
grown kinda big and we need better way to organize those variables inside.

Reviewed By: Sebastian Parborg (zeddb)

Differential Revision: https://developer.blender.org/D15172
2022-06-10 22:49:37 +08:00
Michael Kowalski
f6268f921a USD import: Handle material name collisions
This is a partial fix for T90535.

Added Material Name Collision USD import menu option, to specify
the behavior when USD materials in different namespaces have the
same name.

The Material Name Collision menu options are

- Make Unique: Import each USD material as a unique Blender material.
- Reference Existing: If a material with the same name already
exists, reference that instead of importing.

Previously, the default behavior was to always keep the existing
material. This was causing an issue in the ALab scene, where
dozens of different USD materials all have the same name,
usdpreviewsurface1, so that only one instance of these materials
would be imported.

Reviewed by: Sybren

Differential Revision: https://developer.blender.org/D14869
2022-06-10 10:15:09 -04:00
Bastien Montagne
717ab5aeae LibOverride: Consider animated/driven properties as part of the 'system override' ones in the Outliner.
Conceptually animated/driven properties are not controlled by the
liboverride system anymore, even though they may generate override
operations. So consider them as part of the 'system overrides' category,
and hide them by default in the Outliner.
2022-06-10 15:56:55 +02:00
Bastien Montagne
4d0f7c3dcd LibOverride: Add util to check if a given Override Property is animated.
Searches in available animdata for fcuve(s) with matching RNA path.
2022-06-10 15:56:55 +02:00
Bastien Montagne
f5d0a40122 RNA path: add util to find the char in an RNA path where the array indexing starts.
Usefull to easily trim away the 'aray index' part of an RNA path, e.g.
when searching for an FCurve (which never contains that index part in
its RNA path).
2022-06-10 15:56:55 +02:00
Bastien Montagne
07341d7b32 Liboverride: Add rna array index return value to BKE_lib_override_rna_property_find.
Very useful e.g. for dealing with FCurves search.
2022-06-10 15:56:55 +02:00
Antonio Vazquez
9cad614ad5 Fix T98756: GPencil Set Vertex Color Attribute does not color unpainted
The operator set the color but the factor of the mix value was not updated and as the default value was 0, the color was not vivible and only worked when the stroke was previously painted.
2022-06-10 15:25:56 +02:00
Ramil Roosileht
9670c649d8 Fix regression in the recent unit system change
Resolves unit tests failure since the D15085.
Also addressed API documentation and formatting format.

Differential Revision: https://developer.blender.org/D15162
2022-06-10 11:17:14 +02:00
Philipp Oeser
d83a418c45 Fix T98727: Dynamic Paint does not update normals
Caused by {rB6a3c3c77b3eb}.

Displacement and wave were tagging the original mesh normals dirty,
instead the result's normals need tagging. Seems like a typo in above
commit (similar to rBfe43c170831f).

Maniphest Tasks: T98727

Differential Revision: https://developer.blender.org/D15165
2022-06-10 10:52:42 +02:00
Campbell Barton
2601b9832d GHOST: add back-trace handler to the API
Add a back-trace handler to GHOST, so error handlers can include a
back-trace (when supported).

No functional changes.
2022-06-10 18:36:10 +10:00
Hans Goudey
6a11cd036c Cleanup: Clang tidy 2022-06-10 10:29:35 +02:00
Hans Goudey
aebca2bd65 Fix: Missing include 2022-06-10 10:11:49 +02:00
Dalai Felinto
e6548c03f9 UI: Sculpt Curves Slide icon 2022-06-09 17:17:58 +02:00
Hans Goudey
32ee2ffc7d Fix: Crash in selection paint brush with empty curves 2022-06-09 15:40:07 +02:00
Bastien Montagne
14d1ad8dd8 FCurve: optimize search from an RNA path + index.
By checking the index value first instead of a full fledge string
comparision in `BKE_fcurve_find`, we can make that code significatly
faster (from about 10% in a Heist production file to over 45% in a
heavily animated test file).

While this code was already very fast (a few microseconds per call
typically), it gets called a lot from the UI (several hundreds of time
per refresh), among other things.

NOTE: the `UNLIKELY` hint is responsible for 25% to 30% of the
speed improvement.
2022-06-09 15:17:20 +02:00
Germano Cavalcante
6d726192be Fix variable being used without being initialized 2022-06-09 10:11:14 -03:00
Campbell Barton
41c7c744eb Cleanup: use C-style comments, add missing doxy section 2022-06-09 21:31:08 +10:00
Campbell Barton
ed15900473 Cleanup: use const variables & arguments 2022-06-09 21:26:48 +10:00
Hans Goudey
8a6cbcf386 Curves: Port delete geometry node to the new curves type
Add a method to remove points from the new curves type, just like
the existing curve removal function. No functional changes are expected.
The code is simpler because all data is just stored as attributes, but
also different because the point data for all curves is stored in the same
arrays.

Similar performance improvements as other commits in T95443 are
expected, expecially for cases where there are many small curves.

Differential Revision: https://developer.blender.org/D15130
2022-06-09 13:09:04 +02:00
Bastien Montagne
a91c8d8efa Fix T98686: Cant rename local NLA tracks within a local library override data-block.
We need a specific exception to general rule 'no rename of anim channels
in liboverride data' for the locally-inserted NLA tracks.
2022-06-09 09:50:27 +02:00
Bastien Montagne
62dece5c86 Cleanup: return true/false instead of 0/1 when returnin boolean. 2022-06-09 09:37:19 +02:00
Chris Blackbourn
38bfa53081 Fix T78815: Redraw UV Editor on collection visibility change 2022-06-09 17:39:56 +12:00
Aaron Carlisle
0926495de4 UI: Tooltip Edit - Copy to selected button
This commit changes the tool tip for the "Copy To Selected Button" operator.
The exiting tool tip for this operator suggests that it will "copy property to selected objects or bones".

However, it will only copies the property value to the selected objects or bones if the property already exists on the selected items.
It does not copy the property.

Differential Revision: https://developer.blender.org/D14528
2022-06-08 23:26:15 -04:00
Germano Cavalcante
96f88511ee Fix T98688: Snapping not working in curve objects with evaluated geometry
It's an old behavior. Not really considered a bug.

But snapping to faces is already supported in this case.
And allowing snapping to other elements is not disruptive.
2022-06-08 21:49:11 -03:00
Campbell Barton
132e58610d Cleanup: spelling in comments & variables 2022-06-09 10:27:20 +10:00
Campbell Barton
3bdf1c11fb Cleanup: warnings 2022-06-09 10:17:39 +10:00
Campbell Barton
84906d47dc Cleanup: format 2022-06-09 10:11:25 +10:00
Campbell Barton
8b8fbffeea Fix software cursor being used with absolute events in Wayland
The software cursor was being enabled with absolute events,
causing a problem with absolute tablet events.

This caused both cursors to be visible at once when using a tablet
(with D15152 applied).
2022-06-09 10:11:25 +10:00