Commit Graph

96913 Commits

Author SHA1 Message Date
Antonio Vazquez 526e8a3da1 GPencil: Cleanup transform code 2020-06-11 20:35:50 +02:00
Aaron Carlisle a03ebe9431 UI: Adjust names for Find/Replace Set Selection
This is really doing two operation so using the ampersand makes more 
sense.
Also selection sounds better than selected.
This also adjusts the name in the text Edit menu which was an issue 
raised in T68738
2020-06-11 14:05:57 -04:00
Bastien Montagne a61ba6c73d Fix possibility to add objects in override collections.
Override collections do not support that, add proper checks in BKE code
adding objects to collections.

Also try to find a suitable collection in parents in that case.

Note that this is enforced on 'public' API level, internal code can
still bypass those checks if needed. Exposing this possibility to public
API should not be needed.
2020-06-11 17:33:06 +02:00
Jacques Lucke 3d18bd5c51 BLI: define default hash function for const types 2020-06-11 16:16:44 +02:00
Jacques Lucke 49af2f85c3 BLI: fix forwarding with incorrect type 2020-06-11 16:01:25 +02:00
Jacques Lucke a364032dff Cleanup: fix terminology in comment 2020-06-11 15:39:53 +02:00
Jacques Lucke e44045745d BLI: don't pass const pointers to placement new operator
This resulted in compile errors.
2020-06-11 15:37:09 +02:00
Jacques Lucke e22098616c BLI: include <new> header
This header defines default placement versions of operator new.
2020-06-11 15:37:09 +02:00
Jeroen Bakker ed00b5def6 Fix T77657: NVIDIA Quadro FX4800 crash on startup
Limit support for `GLEW_ARB_base_instance` to OpenGL 4.0 and higher. NVIDIA Quadro FX 4800
(TeraScale) report that they support GLEW_ARB_base_instance, but the driver does not support
`GLEW_ARB_draw_indirect` as it has an OpenGL3 context what also matches the minimum needed
requirements.

We use `GLEW_ARB_draw_indirect` as a target for `glMapBuffer(Range)` what is part of the
OpenGL 4 API. So better disable it when we don't have an OpenGL4 context.

Note: fix should be ported to Blender 2.83 LTS

Reviewed By: Clément Foucault

Differential Revision: https://developer.blender.org/D7994
2020-06-11 15:34:35 +02:00
Bastien Montagne 9385d887d1 Fix bad poll function for constraints in liboverrides. 2020-06-11 12:01:20 +02:00
Jacques Lucke 95aa8ffed5 BLI: fix printing name in print_stats methods of Map, Set and VectorSet 2020-06-11 11:21:51 +02:00
Sergey Sharybin 665acd2903 Fix T69497: Color Correction node ignores mask in certain cases
Happens when some of the color correction terms are mathematically
undefined: foe example, when pow() is to be calculated and the X
argument is negative.

There is no ground-truth result in such cases, so ignore such terms
entirely.

This is a generalization of D6696 from Jacques.

Differential Revision: https://developer.blender.org/D7966
2020-06-11 11:02:33 +02:00
Jacques Lucke f028760b83 BLI: make Map::Item and Map::MutableItem more accessible
This makes it easier to write range-for loops over all items
in the map without using auto.
2020-06-11 10:48:52 +02:00
Campbell Barton 3f648f5b42 Fix T77171: File selector doesn't tag preferences to be saved 2020-06-11 17:24:00 +10:00
Campbell Barton e43a948a2c Sequencer: view toggle no longer cycles over SEQUENCER_PREVIEW state
- Remove the operator, use a generic operator instead.
- Switch between PREVIEW/SEQUENCER as the mixed state isn't as useful.
- Add menu item  to make the shortcut discoverable.
- Remove unused & broken "View Type" menu.
2020-06-11 16:36:23 +10:00
Campbell Barton e916817520 Cleanup: move sequencer view operators into sequencer_view.c 2020-06-11 16:01:47 +10:00
Campbell Barton cc064acf0f UI: exclude context menus from menu search
This causes the search result to be less predictable as well as
including menu items multiple times.
2020-06-11 15:39:03 +10:00
Campbell Barton a76fc2f7ed WM: utility function to iterate on menu types 2020-06-11 15:35:46 +10:00
Campbell Barton 2c463a8250 ImBuf: use more accurate DPI/PPM conversion
Use 0.0254 for conversion as 39.3700787 isn't exactly 1/0.0254
and can't be written as a round float/double.
2020-06-11 15:04:11 +10:00
Germano Cavalcante 0439094105 Cleanup: make the sculpt convert type follow transform convention 2020-06-10 16:36:16 -03:00
Hans Goudey bfa5eceb89 UI: Only set panel data expand flag for active panels
This solves a crash when switching from the modifiers tab to an armature
object and expanding a panel. Thanks to Alexander Gavrilov for mentioning
the problem.
2020-06-10 14:56:52 -04:00
Brecht Van Lommel faf5f7b63d Cleanup: fix compiler warning after recent changes
It would be good to use override for all member functions, but doing it for
only somes generates compiler warning.
2020-06-10 20:34:01 +02:00
Brecht Van Lommel 63930c41bc Fix Cycles viewport missing refresh when changing scene hair settings
This code was not updated for the CoW depsgraph.
2020-06-10 19:48:08 +02:00
Bastien Montagne 0621c13b3e Add proper handling of liboverrides to Scene deep copy.
Followup to rB74ec37b70cbc8dc2, also missed a case in collection
deepcopy then.
2020-06-10 19:45:52 +02:00
Bastien Montagne 14bd92b12f Installdeps: Fix broken commit rBe3396d8bfc94.
Not sure why final version of the change was lost...
2020-06-10 19:45:52 +02:00
Bastien Montagne 91462fbb31 Cleanup: Remove no more used `ED_object_single_users`.
This utils was only used for scenes' full copy, and was using old
deprecated ways to deal with ID relations and such. Good riddance!
2020-06-10 19:45:52 +02:00
Bastien Montagne 4f314ee5b9 Cleanup: rename `BKE_scene_copy` to `_update`.
Matches other similar cases for collection and object, and general
naming rule (copy is for generic ID copying, duplicate is for more
involved and poweful behaviors specific to an ID type).
2020-06-10 19:45:52 +02:00
Bastien Montagne eee35ebdfb Make `BKE_scene_copy` fully handle all duplicate modes, deep copy included.
This greatly simplifies and unifies logic.

Also addresses T77255: full scene copy will now use same preferences
parameters as object or collection duplicate to choose which data-blocks
to copy along.
2020-06-10 19:45:52 +02:00
Bastien Montagne b05fa123d7 Make `BKE_collection_duplicate able to handle master collections.
Those are then assumed already duplicated, and not touched. However, all
of ther objects and sub-collections can still be processed as with any
other regular collection...
2020-06-10 19:45:52 +02:00
Jacques Lucke 474b288933 BLI: add Map.pop_default method
There is a nice use case for this in depsgraph code.

Also I added some previously missing calls to std::move.
2020-06-10 19:02:34 +02:00
Philipp Oeser 20658e6a29 Fix T77047: Dyntopo Sample detail size on hidden mesh causes crash
The `Toolbar` and `Sidebar` hide the corresponding panel
`VIEW3D_PT_sculpt_dyntopo` by polling for context.sculpt_object and
context.tool_settings.sculpt. In the Active Tool in the Properties
Editor this poll does not return False though, thus the
sample_detail_size is possible from there.

Second security check (the operator poll `SCULPT_mode_poll`) checks the
active object -- that is still valid even if hidden, so we are allowed
to execute the operator. However the active object becomes NULL once the
area is switched in `sample_detail()` -- see `CTX_wm_area_set`), leading
to the crash.

Dont think there is a quick and easy way to do this in the poll from the
Properties Editor, so just check for a valid active abject in the
operator and return OPERATOR_CANCELLED if we dont have it.

Maniphest Tasks: T77047

Differential Revision: https://developer.blender.org/D7832
2020-06-10 18:46:41 +02:00
Julian Eisel 4b39de677d Fix T74101: File Browser in macOS fullscreen crashes or makes windows unusable
When closing the File Browser window after making it fullscreen, Blender would
either crash or all windows would disappear, with no obvious way to bring them
back.

The "fix" is to not allow fullscreen for File Browsers (or any future "dialog"
windows), but only maximizing. From what I can tell that's how secondary
windows are supposed to work on macOS. What we previously did seemed like
something macOS doesn't handle cleanly, and I didn't find a simple way to do so
on our side.
2020-06-10 18:40:05 +02:00
Jacques Lucke 84d4447bc5 BLI: fix type forwarding in Map
Without this change, the code might do an unwanted conversion.
2020-06-10 18:27:18 +02:00
Jacques Lucke 4c172f7ca6 BLI: support constructing StringRef from start and end pointer 2020-06-10 18:27:18 +02:00
Hans Goudey 2d695367a7 UI: More specific modifier move to index operator description 2020-06-10 11:23:03 -04:00
Hans Goudey a9dfad831b Fix T77694: Start panel animation when expansion data changes
During normal drawing there is a rather complicated method to check
whether the panels should be animating. It's not set up to deal with
the panel expansion changing from outside the UI, which is now possible
with the panel expansion connected to the modifier's show_expanded
property.

The solution is to activate panel animation if setting the expansion
property has changed.
2020-06-10 11:16:55 -04:00
Hans Goudey b0ac7a89b0 UI: Only set first bit of modifier expansion fag with Python
Only the flag for the top level panels is exposed with RNA, so this adds
a set method to only change that bit.
2020-06-10 11:08:58 -04:00
Bastien Montagne 9b784668ae Cleanup: use proper enum type in parameter of BKE_scene_copy. 2020-06-10 17:01:15 +02:00
Bastien Montagne 74ec37b70c Enable (deep) copy of overrides.
This commit enables basic copy of overrides on generic ID level, as well
as from (deep) copy operators for objects and collections.

So e.g. if your linked overridden caracter is in a collection, you can
now (from the outliner) Duplicate that override collection to get a new
overriding copy of the character.

We still need operators (new or modifying existing ones) to handle that
from 3DView e.g.

Note that deep copy code for objects/collections (and incidently
animdata) had to be modified to avoid duplicating/making local IDs that
remain linked ones being used by overrides ones.
2020-06-10 16:48:49 +02:00
Bastien Montagne 1d0017089c Fix (unreported) disapearance of some overrides after save & reload.
The override operations generated from 'do not follow' RNA pointer
properties (i.e. pointers to other IDs) were not properly clearing their
'no more used' flag, and hence were incorrectly deleted on second save.
2020-06-10 16:48:49 +02:00
Jacques Lucke 3ea04d3e11 Blenloader: Don't just crash when a struct name is not known
Related to T77524.

This brings back the old way of handling corrupted data.
2020-06-10 16:31:41 +02:00
Jacques Lucke 6fe32d7fd6 Fix T77524: Don't try to write storage of node with undefined node
This cannot work, because the storagename is the empty string.
2020-06-10 16:16:03 +02:00
Julian Eisel d62bbf4079 UI: Show library names grayed out and right-aligned in menus
Should separate the data-block name better from the library name and improve
readability.
2020-06-10 15:52:10 +02:00
Alexander Gavrilov 93c8955a72 Mesh Edit: preserve Custom Normal vectors in topology operators.
Custom Loop Normals are normally encoded relative to the default
normals, similar to normal maps, allowing them to naturally follow
mesh deformations. Changes to mesh topology however often result
in nonsensical effects that are not desired.

The Remove Doubles operation especially (now known as Merge By
Distance) is intended as a purely topological operation, and
definitely should not change the vector of the custom normals.

This patch implements that behavior by converting the relative
encoding into an absolute vector layer for the duration of the
operation. It also modifies other Merge types in this way for
consistency, the Rip operator as their inverse counterpart;
and also Delete, Dissolve, Connect Path and Knife operators
as other examples more related to topology than shape.

On the technical side, this ports mesh_normals_loop_custom_set
to BMesh, and then uses a temporary Custom Data layer to store
the normals as vectors for the duration of the above mentioned
operations. When the normals are converted back to custom data,
the caller can choose whether to mark edges as sharp to preserve
distinct normals, or just average them instead. All but Remove
Doubles choose to average for now.

Differential Revision: https://developer.blender.org/D4994
2020-06-10 16:51:22 +03:00
Jacques Lucke a58dc25b07 Cleanup: improve custom data type names
This is related to T76659.

This just renames data type names to `CD_PROP_STRING`, `CD_PROP_FLOAT`
and `CD_PROP_INT32`. It makes them a bit more specific and removes
unnecessary abbreviations.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D7980
2020-06-10 15:47:31 +02:00
Jacques Lucke cc26041d36 Depsgraph: use blender::Set instead of std::set
We decided that `blender::Set` should be the default choice for a set
data structure in Blender.

Reviewers: sergey

Differential Revision: https://developer.blender.org/D7982
2020-06-10 15:42:35 +02:00
Jacques Lucke a7ea07c677 Depsgraph: use blender::Vector instead of std::vector
We decided that `blender::Vector` should be the default choice for
a vector data structure in Blender.

Reviewers: sergey

Differential Revision: https://developer.blender.org/D7981
2020-06-10 15:33:50 +02:00
Jacques Lucke 0852d13bbd Depsgraph: use native Set data structure
Differential Revision: https://developer.blender.org/D7982
2020-06-10 15:24:03 +02:00
Campbell Barton 044b824c9d Cleanup: remove unused MBALL_NOSEL flag 2020-06-10 23:01:57 +10:00
Campbell Barton eda58c47b8 Cleanup: asan warning with bit-shifting flag 2020-06-10 23:01:57 +10:00