Commit Graph

90919 Commits

Author SHA1 Message Date
Harley Acheson
4101d3e400 UI: Changes to Paint Cursors
Changes to cursors that can be used for painting and sculpting.

Differential Revision: https://developer.blender.org/D5951

Reviewed by Brecht Van Lommel
2019-09-30 16:46:05 -07:00
William Reynish
60a827a2a9 UI: Update paint crosshair for Mac
This is based on feedback from users.
Only affects Mac for now, Windows will be committed separately.
2019-10-01 00:00:06 +02:00
Campbell Barton
9411b0a3c7 Cleanup: use PyC_StringEnum to path access functions
This gives better error messages, simplify code.
2019-10-01 05:19:38 +10:00
Campbell Barton
aba6fc8208 ImBuf Py API: implement resize method argument 2019-10-01 05:18:30 +10:00
Campbell Barton
07feb6e814 PyC API: utility to parse a string as an RNA like enum
More convenient than comparing strings,
with the advantage that errors don't need to repeat expected values.
2019-10-01 05:18:25 +10:00
Julian Eisel
ddb157999e UI: Remember File Browser Display Options in Preferences
This makes it so that some display related properties of the file
browser state are remembered in the Preferences. Otherwise, users often
end up doing the same set up work over and over again, so this is a
nice way to save users some work.
It's typical for other file browsers to remember their state too, so
another benefit is having a more conventional behavior, meeting user
expectations better.

Some points:
 * We currently store: Window size, display type, thumbnail size,
   enabled details-columns, sort options, "Show Hidden" option. More can
   be added easily.
 * No changes are stored to the Preferences if "Auto-save Preferences"
   is disabled. This is how Quick Favorites behave too and it's a
   reasonable way to make this behavior optional.
 * The Preferences are only saved to permanent memory upon closing
   Blender, following existing convention of Preferences and Quick
   Favorites.
 * If settings weren't actually changed, Preference saving is skipped.
 * Only temporary file browsers save their state (invoked through
   actions like open or save), not regular file browser editors. These
   are usually used for different purposes and workflows.
 * Removes "Show Thumbnails" Preferences option. It would need some
   special handling, possibly introducing bugs. For users, this
   simplifies behavior and should make things more predictable.
   Left in DNA data in case we decide to bring it back.

Reviewers: brecht, #user_interface, billreynish, campbellbarton

Reviewed By: #user_interface, William Reynish, Campbell Barton, Brecht
             van Lommel (quick first pass review in person)

Maniphest Tasks: T69460

Differential Revision: https://developer.blender.org/D5893
2019-09-30 19:27:02 +02:00
Campbell Barton
5940f6b3d9 Fix T58683: Reload Scripts breaks toolbar button formatting
Add a function which clears internal cached operator pointers,
run before reloading scripts.
2019-10-01 01:59:31 +10:00
Campbell Barton
68c2f7a2d0 Revert "Fix T58683: Reload Scripts breaks toolbar button formatting."
This reverts commit ba90d2efa5.

This can be resolved without adding a boolean to all operator types
to check if it's "WM_OT_tool_set_by_id".
2019-10-01 01:57:51 +10:00
Campbell Barton
6a6ac502f2 Cleanup: unused arguments 2019-10-01 01:57:51 +10:00
mano-wii
bb0b46f78c GPU: Make sure workaround is supported
`context_local_shaders_workaround` is only supported on OpenGL 4.1 or higher.
2019-09-30 12:15:31 -03:00
Antonio Vazquez
7dc70feb63 GPencil: Fix unreported keymap missing for Extrude tool
For some reason this keymap was removed and is required to avoid console warnings.
2019-09-30 17:13:31 +02:00
Bastien Montagne
fae5348307 Fix T70375: Typo in label (Height used instead of High).
Also, use Title Caps for labels...
2019-09-30 16:03:21 +02:00
Pablo Dobarro
e8f6f70846 PBVH: PBVH_FullyMasked and PBVH_FullyUnmasked flags
This commit introduces flags to tag the PBVH nodes as fully masked or unmasked. This is used in do_brush_actions to filter fully masked nodes during a stroke. Other tools can also be updated to use this flags.
Sculpt updates now require a flag to update the mask or the vertex coordinates.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5935
2019-09-30 15:58:03 +02:00
Pablo Dobarro
3dc027add3 Fix T70385: Pose brush breaks when using pose origin offset
Reviewed By: jbakker

Maniphest Tasks: T70385

Differential Revision: https://developer.blender.org/D5945
2019-09-30 15:45:27 +02:00
Patrick Mours
b89a1687ce Fix "denoise_animation" tests with OptiX in Cycles
The OptiX device only loads the denoising kernels when the "use_denoising" feature is active. This was not set by the calling code however and therefore they were never loaded and attempting to launch them failed (see T69801).

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5946
2019-09-30 15:38:07 +02:00
Pablo Dobarro
61efeb6df9 Fix PBVH search callback in pose and elastic deform
Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5947
2019-09-30 14:58:22 +02:00
Pablo Dobarro
6b419c18b0 Sculpt: Only redraw nodes where the mask changed
Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5923
2019-09-30 14:37:19 +02:00
Patrick Mours
91f6aa6a57 Fix memory leak after using OptiX in Cycles
The "optix_devices" array was not freed on exit, which caused a memory leak (see T69801).

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5944
2019-09-30 14:05:40 +02:00
William Reynish
04ef62177f UI: Use paint crosshair cursor in all paint & sculpt modes
Currently, we use the crosshair cursor in Sculpt mode, but not in the other paint modes.

  - Sculpt Mode: This crosshair cursor is too weighty.
  - Texture, Weight, Vertex Paint: Using the arrow cursor for painting is not right.

This commit makes the following changes:

  - Use the new special paint crosshair instead
  - Use this cursor in all paint modes, not just Sculpt

Reviewed by: Brecht

Differential Revision: https://developer.blender.org/D5940
2019-09-30 13:33:54 +02:00
Bastien Montagne
56854bd177 Fix RNA's "editable" func regarding IDProps and override.
`RNA_property_overridable_get()` need the original RNA property (i.e.
the actual IDProp in case it is one), not the 'proxy' type property
returned by `rna_ensure_property()` for IDProps.

Makes custom properties of library overrides editable at last, now we
only have to keep them overridden values!
2019-09-30 11:01:29 +02:00
Brecht Van Lommel
64c8e9a219 macOS: don't require python3 to be installed to run "make update"
And fall back to python3 from our libraries for other commands, once checked
out with make update.
2019-09-30 10:51:17 +02:00
Campbell Barton
a6a0a09197 Cleanup: spelling 2019-09-30 17:07:05 +10:00
Stefan Werner
04133ee863 Revert "macOS: Replaced OSSpinLock with os_unfair_lock."
This reverts commit 9d282d7a8d.
os_unfair_lock requires macOS 10.12 or newer.
2019-09-30 08:29:17 +02:00
Richard Antalik
64c222ff58 Fix T69334: VSE Very low framerate
Revert "Sequencer: use Alpha Over blend mode by default"

This reverts commit 7c6c5b40ca.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D5943
2019-09-29 16:17:56 -07:00
Richard Antalik
cdcb844d27 Fix T69684: Sound Strip "Pan" function is misleading
Gray-out pan property when sound mono property is unset.

Reviewed By: billreynish

Differential Revision: https://developer.blender.org/D5806
2019-09-29 16:14:42 -07:00
Brecht Van Lommel
ff10ff782b Fix wrong sculpt flat shaded normals after recent optimizations 2019-09-29 23:43:16 +02:00
Brecht Van Lommel
24be998b98 Fix T70345: wrong transforms of objects after recent NVIDIA workaround
This reverts commit 44d042094e and adds a
simpler workaround for just the node links display issue. There are other
issues though so this is not a full workaround.
2019-09-29 21:10:12 +02:00
Campbell Barton
56fe8239ab Fix T70320: View clipping doesn't hide extra wireframe 2019-09-30 04:50:22 +10:00
Harley Acheson
3a3e5fb365 Fix T69935: Silence Win32 OS Error Dialogs
Call SetErrorMode() at startup to prevent error mode dialogs.

Differential Revision: https://developer.blender.org/D5941

Reviewed by Brecht Van Lommel
2019-09-29 11:43:24 -07:00
Julian Eisel
98c0d16da5 UI: Use responive layout for upper bar in file browser
The upper bar (containing file path, navigation and display buttons) may
now be split into two rows as horizontal space is reduced.
The first row contains the navigation related buttons, the lower one the
filter and display related ones.

Mainly solves the issue where the file path and search buttons became
barely usable in tight layouts, but generally makes things better for
such cases.
2019-09-29 20:37:51 +02:00
Julian Eisel
57519f237a UI: Let file browser tool/bookmarks region push upper bar in
Main reason for doing this is that the navigation buttons are very
close to the file list now, making them much faster to reach.

Initially we let the upper bar (the one with the file path, navigation
and display buttons) use full area width, because designs back then had
more horizontal space problems. The designs have changed meanwhile, and
horizontal space is less of an issue.

However, when the file browser is shrunk horizontally, or if it's open
in a small area (e.g. see "Shading" workspace), having the tool region
open brings back the space issues. But even the file list layout becomes
problematic then, and the same issue was present before the new file
browser design, so we've decided this is an acceptable tradeoff.
2019-09-29 20:37:51 +02:00
Campbell Barton
02c4410a37 Cleanup: use doxy sections for image_ops.c 2019-09-30 03:47:54 +10:00
Julian Eisel
f8b57dbb81 Keymaps: Don't show confirm prompt when creating directories
* We don't show the prompt when invoked through the button either
* Creating directories isn't a destructive action and it's not dangerous
* The prompt is annoying and users often requested getting rid of it

This change is applied to both, the default and the industry compatible
keymap.
2019-09-29 18:45:52 +02:00
Brecht Van Lommel
860854b07f Fix (workaround) memory leak cancelling sculpt mask expand 2019-09-29 16:22:09 +02:00
Brecht Van Lommel
0fd3723b95 Fix small memory leaks in some sculpt tools
Also use MEM_SAFE_FREE to simplify code.
2019-09-29 16:22:09 +02:00
Brecht Van Lommel
0ffb96f701 Sculpt: minor optimizations for GPU draw buffer filling
Ref T70295
2019-09-29 16:22:09 +02:00
Brecht Van Lommel
9b0fd5ef2a Sculpt: only update draw buffers for visible nodes during paint stroke
Also applies to some other sculpt tools like filter and mask expand.

The full update happens after the paint stroke is finished, so it does not
happen on view navigation, which would cause a delay.

Ref T70295

Differential Revision: https://developer.blender.org/D5922
2019-09-29 16:22:09 +02:00
Brecht Van Lommel
f6fc863acd Sculpt: multithread GPU draw buffer filling for workbench
This improves performance of some sculpt tools, particularly those that modify
many vertices like filter and mask tools, or use brushes with large radius.

For mask expand it can make updates up to 2x faster on heavy meshes, but for
most tools it's more on the order of 1-1.1x. There are bigger bottlenecks to
solve, like normal updates.

Ref T70295

Differential Revision: https://developer.blender.org/D5926
2019-09-29 15:28:15 +02:00
Brecht Van Lommel
c931a0057f Sculpt: use dynamic scheduling and chunk size 1 for multithreading
This is under the assumptions that each node has enough work to avoid
the threading overhead, while also having a possible variable amount of
work. For example most of the vertices being masked or outside of the
brush radius.

Improves performance by about 10% for tools like mesh filter on an
entire 3 million poly mesh, tested on a quad core.

Ref T68873
2019-09-29 15:27:37 +02:00
Brecht Van Lommel
8b00a73620 Cleanup: move sculpt parallel range threading test into function
Easier to experiment with different settings this way.
2019-09-29 15:27:37 +02:00
Brecht Van Lommel
1ca105ebdc Sculpt: disable workbench anti-aliasing during stroke painting
This mostly happens automatically anyway since there is usually not enough
time left over for it. But when it does it happen it breaks partial redraw,
and may also have a negative impact on responsiveness.

Ref T70295
2019-09-29 15:27:37 +02:00
Brecht Van Lommel
c31a849a14 Fix wrong sculpt cursor drawing when using "ignore_background_click"
Not all the necessary state got restored.
2019-09-29 15:04:10 +02:00
Alexander Gavrilov
ba90d2efa5 Fix T58683: Reload Scripts breaks toolbar button formatting.
Assuming it's actually necessary to do this check very efficiently,
replace the hack based on caching a pointer, with a different one
that caches the string comparison result in the operator object.
2019-09-29 09:28:02 +03:00
Clément Foucault
44d042094e GPU: Workaround for broken node links on NVidia drivers
Related to T70011 and T70008
2019-09-29 01:19:45 +02:00
Brecht Van Lommel
2c7365aec7 Fix unnecessary use of atomics in PBVH normal update 2019-09-28 12:29:52 +02:00
Brecht Van Lommel
5bace9f5dd Cleanup: compiler warnings 2019-09-28 12:29:52 +02:00
Brecht Van Lommel
b192c01254 Fix build error on Windows 2019-09-28 12:29:07 +02:00
Alexander Gavrilov
7ea1b8451e Drivers: fix transform channel panel for W rotation and quaternions. 2019-09-28 10:31:51 +03:00
Alexander Gavrilov
775a13dea0 RNA: fix the name of the parent inverse matrix in Data API Outliner view. 2019-09-28 10:14:46 +03:00
Brecht Van Lommel
a2457dd7bb Debug: add 888 and 889 debug values for redraw and PBVH node visualizatons
More convenient to use the debug menu than having to modify code every time.
2019-09-28 01:35:53 +02:00