Commit Graph

24320 Commits

Author SHA1 Message Date
Pablo Vazquez
39663fd049 UI: Decrease the fade in/out time of regions with region overlap on. 2018-11-09 03:26:50 +01:00
Pablo Vazquez
e2a401f344 UI: Name added LightProbe objects after their type.
Just like Light objects do.

Thanks ThinkingPolygons from DevTalk forums for suggesting this!

See T56950
2018-11-09 02:18:05 +01:00
Brecht Van Lommel
3064da1200 Keymap: move builtin keymaps from C to Python
This should be purely an implementation change,
for end users there should be no functional difference.

The entire key configuration is in one file with ~5000 lines of code.
Mostly avoiding code duplication and preserve comments and utility
functions from the C code.
It's a bit long but for searching and editing it's also convenient to
have it all in one file.

Notes:

- Actual keymap is shared by blender / blender_legacy
  and stored in `keymap_data/blender_default.py`

  This only generates JSON-like data to be passed into
  `keyconfig_import_from_data`, allowing other presets to load and
  manipulate the default keymap.

- Each preset defines 'keyconfig_data'
  which can be shared between presets.

- Some of the utility functions for generating keymap items still
  need to be ported over to Python.

- Some keymap items can be made into loops (marked as TODO).

See: D3907
2018-11-09 11:33:06 +11:00
Brecht Van Lommel
c39f34def9 Fix Cycles viewport render info overlapping other text.
Now it shows more compact info below the view/object name. Render time and
memory usage is left out, as in most cases this is not so important. These
could be added back optionally if needed.
2018-11-08 18:31:33 +01:00
Brecht Van Lommel
11a53ec28a Fix T57689: world nodes / texture not updating for Eevee.
Only do GPU material updates through depsgraph evaluation now. This was
already happening for material, just missing for the world.
2018-11-08 16:01:02 +01:00
Campbell Barton
aba4a56703 UI: fix glitch showing the redo panel 2018-11-08 15:44:59 +11:00
Campbell Barton
c121bc6219 Cleanup: use explicit 'select_and_set_active' API name
Selection should be separated from active state and handled by higher
level code (operators/editors) instead of happening automatically.
2018-11-08 08:31:11 +11:00
Campbell Barton
0b837a4986 Cleanup: style, use const args 2018-11-08 08:02:09 +11:00
Bastien Montagne
64ec05b64d Cleanup: remove some useless BKE_library and BKE_main includes.
Makes it simpler to make some changes...

Also fix order of some includes (use alphabetical please).
2018-11-07 20:58:54 +01:00
Bastien Montagne
4b2110fc86 Cleanup: Remove 'BKE_library.h' include from 'BKE_main.h'
That kind of implicit includes should really only be done when totally,
absolutely necessary, and ideally only with rather simple 'second-level'
headers.

Otherwise not being explicit with includes always end up biting in
unexpected ways...
2018-11-07 20:58:53 +01:00
Bastien Montagne
4779165ca1 Fix dpesgraph wrongly refcounting NLA strip actions when duplicating IDs.
NLA strips are users of their action, so we need to pass along ID
management flags.

This commit also cleans up a bit things by passing along ID_CREATE/COPY
flags instead of dummy booleans...
2018-11-07 20:58:53 +01:00
Brecht Van Lommel
36b9ee1277 Fix T57390: properties editor crash creating new scene in some cases. 2018-11-07 14:54:16 +01:00
Sergey Sharybin
0c8aa85069 Physics baking: tag interface locked during backing
This is a variation of older hach which was setting is_rendering
to truth to tell window manager to not do dependency graph update.

In the nowadays reality window manager is supposed to do dependency
graph update during rendering, that was the whole purpose of CoW
project. This works fine for rendering, since render engines has
their own dependency graphs.

Physics, on the other hand, is using same dependency graph as used
for the viewport, and what's worse: it modifies objects from it.
For example, in a single threaded evaluation ASAN instantly catches
case when cached BVH constructed by smoke is referencing looptri
layer which is freed by viewport's update.

Now we are locking interface, allowing only a subset of navigation
operators to run. This seems to be safest way of dealing with the
problem. There are following variations which we can consider
doing:

- Allow viewport navigation, which will require making it so draw
  manager does not write to the objects.

  A bit dangerous, since smoke simulation might in theory modify
  data which is also used by a draw manager.

- Make physics simulation to have own dedicated dependency graph,
  solving all threading conflicts all together.

This fixes crash when baking smoke. Steps to reproduce:

- Call "Quick Smoke"
- In smoke panel, click "Bake".
2018-11-07 14:04:47 +01:00
Howard Trickey
e31625a697 Fix 'Set and Use 3D Cursor' normal editing command.
Was missing a return of OPERATOR_RUNNING_MODAL for that subcommand.
2018-11-07 07:43:19 -05:00
Bastien Montagne
f1fc5ba537 Fix installing Blender due to missing icons. 2018-11-07 11:31:07 +01:00
Campbell Barton
5dfe7858b1 CMake: missed removing from file list 2018-11-07 21:14:40 +11:00
Alexander Gavrilov
469005f1f6 Dopesheet: correctly use floating point threshold in ActKeyColumn tree.
After some thinking, since the tree itself does always use floating
point numbers, it is better to use the threshold - but correctly.
2018-11-07 10:41:38 +03:00
Campbell Barton
03e5ba3183 Fix hidden action-zone interaction 2018-11-07 18:20:15 +11:00
Campbell Barton
484faaea4f Fix for hidden regions becoming active 2018-11-07 18:20:07 +11:00
Campbell Barton
767a395727 Fix redraws from non-existing scrollbars
Cursor motion was often causing redraws.

Distance to scrollbars that don't exist in hidden regions
caused redraws (for alpha fading).

Check if scrollbars are used before calculating fade.
2018-11-07 18:19:46 +11:00
Campbell Barton
0bd61227c2 Tool System: display tooltip generation error
While this shouldn't ever happen there have been reports
of tooltip creation failure - keep this until the issue is resolved.
2018-11-07 14:40:44 +11:00
Campbell Barton
4e11b6f037 Merge branch 'master' into blender2.8 2018-11-07 13:40:39 +11:00
Campbell Barton
8a014e780e Cleanup: use STRPREFIX for mount point checks
From D3846 by @kostex
2018-11-07 13:37:42 +11:00
Habib Gahbiche
5f8d369495 Multi-Objects: MBALL_OT_select_similar
Compared to previous implementation, the following has been changed:
* Threshold: is now an absolute value. This allows a comparison with e.g. radii
  that are much larger than selected radius. This is also consistent with
  `CURVE_OT_select_similar`

* Radius in world space is the average of the radius scaled in x, y and z
  directions
* Since MetaBalls are symmetrical, rotation is only considered from 0 to π/2.
  So for example rotations of 90° and -90° are considered equal.
  This is also consistent with the way `CURVE_OT_select_similar` works.

Fix/changes from committer (Dalai Felinto):
* Drawing not updating after changes. (see original patch for details).

Reviewers: dfelinto
Differential Revision: https://developer.blender.org/D3895
2018-11-07 00:15:39 -02:00
Campbell Barton
ad3a2415fc Icons: add ops.paint.weight_sample 2018-11-07 12:57:24 +11:00
Campbell Barton
b9e919b003 Icons: remove unused vertex paint icons
Also update names to match enum.
2018-11-07 12:57:24 +11:00
Campbell Barton
188857e0f2 Cleanup: style 2018-11-07 12:57:24 +11:00
Dalai Felinto
0a893c0901 Multi-Objects: MBALL_OT_select_all
Based on D3893 by Habib Gahbiche.
2018-11-06 23:32:49 -02:00
Campbell Barton
6bda925aa1 Cleanup: remove GPENCIL_OT_sculpt_select
This can be done via WM_OT_context_set_enum
2018-11-07 12:04:03 +11:00
Campbell Barton
101fd08348 Merge branch 'master' into blender2.8 2018-11-07 11:59:41 +11:00
Habib Gahbiche
4e9911663a Multi-Objects: CURVE_OT_select_similar
Implemented the following methods:
* SIMCURHAND_TYPE
* SIMCURHAND_RADIUS
* SIMCURHAND_WEIGHT
* SIMCURHAND_DIRECTION

Limits:
* DIRECTION does not support surfaces, because `BKE_nurb_bpoint_calc_normal`
  does not work with Nurbs of type `CU_CARDINAL`. This also didn't work prior
  to this patch, so we wait until surfaces are properly supported in EditMode.

* Also DIRECTION should take scaling into consideration. We need our own
  versions of BKE_nurb_bpoint_calc_normal/bezt.

* Threshold default is too large. Not sure if it's better to change the default
  or scale the threshold in code.

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

Changes from committer (Dalai Felinto):
 * Moved nurb_bpoint_direction_worldspace_get/bezt to functions.
 * Comments hinting at the mode (direction) that require scaling to be
   taken into account - to be addressed by patch creator in a future
   patch.
2018-11-06 22:56:33 -02:00
Campbell Barton
59e70d5f8d Cleanup: renmae ePaintTexture(Projective) -> 3D
Matches ePaintTexture2D, less verbose.
2018-11-07 11:52:14 +11:00
Campbell Barton
c19dafd2a6 Paint: paint.brush_select now supports gpencil
Replace grease pencil specific brush select operator.
2018-11-07 11:42:30 +11:00
Campbell Barton
895295a9f0 Paint: update shortcut detection for new logic 2018-11-07 10:54:56 +11:00
Campbell Barton
bc1c263a8a Cleanup: naming (inconsistent paint_mode term) 2018-11-07 09:43:07 +11:00
Campbell Barton
150864dfb9 Paint: bring back brush switching
Was temporarily replace with code that used the tool-system,
bring back logic which cycles and toggles brushes.

Tool slots are used for the initial brush,
after that toggle or cycle is used.
2018-11-07 08:43:56 +11:00
Campbell Barton
87c1893f8d Cleanup: style 2018-11-07 08:43:56 +11:00
Pablo Vazquez
fbce8f27c8 UI: Move pin icon to the right in the context breadcrumbs.
Leaves more room for the actual breadcrumbs path, and it's less intrusive.

Thanks Luciano for the suggestion!
2018-11-06 22:43:12 +01:00
Pablo Vazquez
a55ef18309 UI: Use icons for some operators.
* Area and Workspace duplicate.
* Toggle Area Fullscreen
* Operator Search
* Workspace reorder to front/back (arrows help to know which direction means front/back)
2018-11-06 22:05:05 +01:00
Bastien Montagne
2b1843c491 Fix broken shortcuts in F3 'operator search' menu.
From own changes in that area... Now we also enforce handling shortcuts
in case relevant drawflag of searchbutton is set. Should allow to cover
all cases, hopefully.
2018-11-06 20:56:38 +01:00
Alexander Gavrilov
5c18393c8e Fix T57656: Keyframes cannot be selected in Grease Pencil Dopesheet.
Partial revert of rBf250f9256e065: GP and masks use integer
frames, so float code isn't working or even needed.
2018-11-06 22:36:10 +03:00
Alexander Gavrilov
798cdaeeb6 Implement an Armature constraint that mimics the modifier.
The main use one can imagine for this is adding tweak controls to
parts of a model that are already deformed by multiple other major
bones. It is natural to expect such locations to deform as if the
tweaks aren't there by default; however currently there is no easy
way to make a bone follow multiple other bones.

This adds a new constraint that implements the math behind the Armature
modifier, with support for explicit weights, bone envelopes, and dual
quaternion blending. It can also access bones from multiple armatures
at the same time (mainly because it's easier to code it that way.)

This also fixes dquat_to_mat4, which wasn't used anywhere before.

Differential Revision: https://developer.blender.org/D3664
2018-11-06 10:56:08 +03:00
Campbell Barton
a817613be5 Cleanup: remove unused brushes 2018-11-06 18:21:52 +11:00
Campbell Barton
80109c976c Brush: split out vertex paint tool & blend mode
- Vertex & weight paint now use the 'blend' setting.
- Weight paint now has it's own tool setting,
  since weight paint doesn't deal with color - we'll likely
  support different tools eventually.
2018-11-06 18:06:33 +11:00
Campbell Barton
900c562b71 Cleanup: rename fast-heap -> heap-simple
In general prefer API names don't start with adjectives
since it causes grouping of unrelated API's for completion.
2018-11-06 13:06:49 +11:00
Campbell Barton
d805a4a5ef Cleanup: move fast heap into own source & header 2018-11-06 12:52:34 +11:00
Alexander Gavrilov
fee6ab18e7 BLI_heap: implement a limited but faster version of heap.
If the user only needs insertion and removal from top, there is
no need to allocate and manage separate HeapNode objects: the
data can be stored directly in the main tree array.

This measured a 24% FPS increase on a ~50% heap-heavy workload.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3898
2018-11-05 20:49:17 +03:00
Campbell Barton
1b928c2d9a Paint: add tool offset & mode to runtime data
It was getting too impractical to call BKE_paint_brush_tool_info
which needed to lookup the scene pointers.

Now each store tool offset and brush mode in 'Paint.runtime'
2018-11-05 16:18:43 +11:00
Campbell Barton
56917bcf73 Missing from last commit 2018-11-05 15:47:22 +11:00
Campbell Barton
8b31f6fb21 Paint: add BKE_paint_ensure to initialize toolsettings
Each mode had its own logic for initializing paint structs,
move to a single function.

Also remove "BKE_brush_get_gpencil_paint", entering grease pencil
mode is responsible for ensuring the data is created.
2018-11-05 15:31:25 +11:00