7 months agoFix T61196: Mesh select ignores clipping (part 2)
Campbell Barton [Fri, 8 Feb 2019 10:50:07 +0000 (21:50 +1100)]
Fix T61196: Mesh select ignores clipping (part 2)

Need to use local clipping planes in this case

7 months agoFix T61255: Mesh Data Transfer: Do not abort when destination has not all source...
Bastien Montagne [Fri, 8 Feb 2019 09:12:31 +0000 (10:12 +0100)]
Fix T61255: Mesh Data Transfer: Do not abort when destination has not all source data layers.

Originally, when transferring all source data layers to destination
meshes, code would abort in case destination did not have all needed
layers, and creating them was not allowed.

Now, it will instead transfer data to layers that exists, merely
skipping source ones for which it cannot find a matching destination.

7 months agoFix T58625: Knife project fails w/ curves
Campbell Barton [Fri, 8 Feb 2019 08:18:35 +0000 (19:18 +1100)]
Fix T58625: Knife project fails w/ curves

7 months agoWM: init simulated event from win->eventstate
Campbell Barton [Fri, 8 Feb 2019 08:00:51 +0000 (19:00 +1100)]
WM: init simulated event from win->eventstate

Ghost event handling code works this way.

7 months agoCleanup: rename V3D_MANIP_* -> V3D_ORIENT_*
Campbell Barton [Fri, 8 Feb 2019 04:14:54 +0000 (15:14 +1100)]
Cleanup: rename V3D_MANIP_* -> V3D_ORIENT_*

Wasn't obvious it's related to orientation,
also term manipulator is no longer in use.

7 months agoFix T61291: Transform gizmo doesn't update w/ 3D cursor
Campbell Barton [Fri, 8 Feb 2019 04:11:33 +0000 (15:11 +1100)]
Fix T61291: Transform gizmo doesn't update w/ 3D cursor

7 months agoFix missing NULL check in recent version patch
Campbell Barton [Fri, 8 Feb 2019 01:06:55 +0000 (12:06 +1100)]
Fix missing NULL check in recent version patch

7 months agoUndo System: basic support in background mode
Campbell Barton [Thu, 7 Feb 2019 23:15:11 +0000 (10:15 +1100)]
Undo System: basic support in background mode

Some developers were using undo for their scripts, this allows for undo
pushes in background mode, however - as with 2.7x, undo isn't
initialized at startup in background mode.

See replies to T60934

7 months agoCorrect error in last commit
Campbell Barton [Thu, 7 Feb 2019 22:39:54 +0000 (09:39 +1100)]
Correct error in last commit

7 months agoCleanup: clear deprecated flags
Campbell Barton [Thu, 7 Feb 2019 22:29:08 +0000 (09:29 +1100)]
Cleanup: clear deprecated flags

7 months agoRemove "Keep Session" preference
Campbell Barton [Thu, 7 Feb 2019 21:36:52 +0000 (08:36 +1100)]
Remove "Keep Session" preference

As far as we know this wasn't widely used, and relied no storing data
in the temp dir which may be cleared on reboot.

More generally, alternative behavior for a core area like file IO
is not something to keep if it has unresolved issues.

See D4310 for details.

7 months agoCleanup: sort struct blocks, description
Campbell Barton [Thu, 7 Feb 2019 20:29:21 +0000 (07:29 +1100)]
Cleanup: sort struct blocks, description

7 months agoFix crash drawing loose vertex from recent changes
Campbell Barton [Thu, 7 Feb 2019 20:25:59 +0000 (07:25 +1100)]
Fix crash drawing loose vertex from recent changes

7 months agoCleanup: Use new BKE_main_foreach_id() in a few more places...
Bastien Montagne [Thu, 7 Feb 2019 20:52:54 +0000 (21:52 +0100)]
Cleanup: Use new BKE_main_foreach_id() in a few more places...

7 months agoOutliner: modernize Purge operator.
Bastien Montagne [Thu, 7 Feb 2019 16:17:24 +0000 (17:17 +0100)]
Outliner: modernize Purge operator.

That guy was still from the era where only way to remove an ID was to
save & reload the .blend file. Use modern code instead, should also be
much, much more efficient in big production files.

And that’s another nice occasion to add/test new batch ID deletion code, too. ;)

Related to T61276 Make Single User unlinks original object.

7 months agoBKE_main: add utils to loop over whole IDs of a given Main database.
Bastien Montagne [Thu, 7 Feb 2019 16:16:15 +0000 (17:16 +0100)]
BKE_main: add utils to loop over whole IDs of a given Main database.

We are currently having the same boiler plate code in tens of places
accross our code, we can as well have a utils to do that.

7 months agoEdit Mode: Draw Vertices after edges
Clément Foucault [Thu, 7 Feb 2019 19:40:54 +0000 (20:40 +0100)]
Edit Mode: Draw Vertices after edges

This avoid edges covering a part of vertices.

This comes at a (very minor) perf cost as vertices can cover some edges
pixels and early discard them with the depth test. But this only happens
in artificialy dense mesh and is not a real problem for common cases.

7 months agoEdit Mesh: Only draw vertices once
Clément Foucault [Thu, 7 Feb 2019 19:36:29 +0000 (20:36 +0100)]
Edit Mesh: Only draw vertices once

Only add each vertices to point ibo once. That requires tagging each mvert
in the case of modifier preview.

7 months agoEdit Mode: Reduce number of edges drawn
Clément Foucault [Thu, 7 Feb 2019 18:11:01 +0000 (19:11 +0100)]
Edit Mode: Reduce number of edges drawn

This make sure only one line is drawn per edge.

It makes the function mesh_create_edit_loops_points_lines() non-thread safe
but this is fine as of now because nothing is multithreaded at this point.
Also this is the only function use this flag so it might be OK.

The side effect is that we don't need to use depth test in edit mode
overlay so the masking artifact will not appear.

7 months agoEdit Mode: Fix edge partially displayed as selected with modifier preview
Clément Foucault [Thu, 7 Feb 2019 18:06:34 +0000 (19:06 +0100)]
Edit Mode: Fix edge partially displayed as selected with modifier preview

Force set the flag vertice selected in this case.

7 months agoEdit Mode: Make active face hint part of the face color
Clément Foucault [Thu, 7 Feb 2019 16:47:55 +0000 (17:47 +0100)]
Edit Mode: Make active face hint part of the face color

This remove the hint on the face edges. This is because the hint was
displayed on both sides and was requiring to draw every edges twice.

7 months agoEdit Mesh: Rework new implementation and use geometry shader to draw lines
Clément Foucault [Thu, 7 Feb 2019 15:30:08 +0000 (16:30 +0100)]
Edit Mesh: Rework new implementation and use geometry shader to draw lines

This make it (theoriticaly) compatible with all supported hardware with
consistent results.

Also we now draw the lines with analytic anti-aliasing instead of relying
on MSAA (which offers less benefits in our case).

The remaining aliasing comes from edges cut in half by the mesh which is
not rendered with MSAA. Hopefully this is not too much distracting and only
happen if the face is almost parallel to the view.

7 months agoEdit Mode: Fix geometry shader workaround not respecting aspect ratio
Clément Foucault [Wed, 6 Feb 2019 14:20:27 +0000 (15:20 +0100)]
Edit Mode: Fix geometry shader workaround not respecting aspect ratio

7 months agoBevel: better attachment points for unbeveled edges, arc miter.
Howard Trickey [Thu, 7 Feb 2019 15:42:28 +0000 (10:42 -0500)]
Bevel: better attachment points for unbeveled edges, arc miter.

7 months agoGP: Reduce render noise pixel in blend borders
Antonioya [Thu, 7 Feb 2019 15:30:42 +0000 (16:30 +0100)]
GP: Reduce render noise pixel in blend borders

7 months agoGP: Cleanup blend pixel function
Antonioya [Thu, 7 Feb 2019 15:06:01 +0000 (16:06 +0100)]
GP: Cleanup blend pixel function

Clear the function that blend pixels and change parameter.

7 months agoMerge branch 'blender2.7'
Brecht Van Lommel [Thu, 7 Feb 2019 14:49:41 +0000 (15:49 +0100)]
Merge branch 'blender2.7'

7 months agoWindows: refactor GHOST wintab handling.
Brecht Van Lommel [Mon, 14 Jan 2019 18:12:02 +0000 (19:12 +0100)]
Windows: refactor GHOST wintab handling.

This is backporting a change from 2.8, which may help solve crashes when
activating a window. Previously bringTabletContextToFront() would call
tablet API functions with NULL tablet, which may crash on some drivers.

Ref T60811.

7 months agoFix object.users_collection not including scene collections.
Brecht Van Lommel [Thu, 7 Feb 2019 11:59:40 +0000 (12:59 +0100)]
Fix object.users_collection not including scene collections.

7 months agoShow all useful metadata fields in editors
Sergey Sharybin [Thu, 7 Feb 2019 09:08:01 +0000 (10:08 +0100)]
Show all useful metadata fields in editors

Is available when doing "View -> Show Metadata". Will draw all the
fields which are not part of the stamp at the bottom of the image.

Couple of hand-picked fields are ignored, since those are not very
useful to be seen.

Aimed to ease review of rendered shots.

Reviewers: brecht

Reviewed By: brecht

Subscribers: fsiddi

Differential Revision:

7 months agoFix T59587: Hair dynamics works different when opened in 2.8
Sergey Sharybin [Thu, 7 Feb 2019 10:46:17 +0000 (11:46 +0100)]
Fix T59587: Hair dynamics works different when opened in 2.8

Is a missing do-verisoning code in e3d31b8dfbd.

Unfortunately, at this point it is rather tricky to tell old and new
hair dynamics modifiers apart. Probably easier to accept possible
breackage of the files which were created in 2.7 and saved during
2.8 which had incomplete do-version code.

7 months agoFix T61272: Undo fails to track multi-edit mode enter/exit
Campbell Barton [Thu, 7 Feb 2019 09:27:11 +0000 (20:27 +1100)]
Fix T61272: Undo fails to track multi-edit mode enter/exit

Objects leaving edit-mode weren't restored by edit-mode undo steps.

7 months agoFix sculpt undo steps not enabling dyntopo
Campbell Barton [Thu, 7 Feb 2019 06:54:53 +0000 (17:54 +1100)]
Fix sculpt undo steps not enabling dyntopo

Logic to disable dyntopo when entering sculpt mode was applied on undo.

7 months agoClose metadata panels by default
Sergey Sharybin [Thu, 7 Feb 2019 08:38:49 +0000 (09:38 +0100)]
Close metadata panels by default

They might be rather long, and not that commonly accessed.

7 months agoFix for images without metadata crashing
Sergey Sharybin [Thu, 7 Feb 2019 08:33:43 +0000 (09:33 +0100)]
Fix for images without metadata crashing

7 months agoFix T61049: Undo dynamic topology sculpt asserts
Campbell Barton [Thu, 7 Feb 2019 02:22:31 +0000 (13:22 +1100)]
Fix T61049: Undo dynamic topology sculpt asserts

7 months agoCleanup: remove unnecessary undo function
Campbell Barton [Wed, 6 Feb 2019 23:09:56 +0000 (10:09 +1100)]
Cleanup: remove unnecessary undo function

7 months agoPyAPI: message subscribe option arg now optional
Campbell Barton [Wed, 6 Feb 2019 22:29:01 +0000 (09:29 +1100)]
PyAPI: message subscribe option arg now optional

7 months agoCleanup: doxy header
Campbell Barton [Wed, 6 Feb 2019 22:28:21 +0000 (09:28 +1100)]
Cleanup: doxy header

7 months agoFix T61246: studiolights (un)install problems
Philipp Oeser [Wed, 6 Feb 2019 21:51:29 +0000 (22:51 +0100)]
Fix T61246: studiolights (un)install problems

- studiolights were not installed to their proper subfolder (thus not
recognized on blender restart)
- they were actually loaded with a wrong path which could lead to
deletion of the original source file when uninstalled again

7 months agoDRW: support clipping for octahedral & box bones
Campbell Barton [Wed, 6 Feb 2019 20:44:12 +0000 (07:44 +1100)]
DRW: support clipping for octahedral & box bones

7 months agoFix refresh on resetting header alignment
Campbell Barton [Wed, 6 Feb 2019 20:42:07 +0000 (07:42 +1100)]
Fix refresh on resetting header alignment

7 months agoRemove no-longer needed function
Dalai Felinto [Wed, 6 Feb 2019 20:47:47 +0000 (18:47 -0200)]
Remove no-longer needed function

7 months agoFixup for outliner visibility not changing disable state
Dalai Felinto [Wed, 6 Feb 2019 20:46:48 +0000 (18:46 -0200)]
Fixup for outliner visibility not changing disable state

Show Inside (shift + click) was still forcing objects to be visible.

7 months agoFix (unreported) crash when iterating on depsgraph instances from RNA.
Bastien Montagne [Wed, 6 Feb 2019 19:59:29 +0000 (20:59 +0100)]
Fix (unreported) crash when iterating on depsgraph instances from RNA.

This is a follow-up to rBb44e6f2b3d32, for some reason that issue was
not detected back then: in some cases, DEG_iterator_objects_next() will
free the temp list of dupli objects once it does not need it anymore,
henceforth freeing the dupli_object_current memory of the DEGObjectIterData
that we are storing in the RNA_Depsgraph_Instances_Iterator struct.

And yes, the uglyness of that hack is getting even better now...

Found while trying to export dupliobjects with FBX...

7 months agoOutliner visibility: Respect original viewport enable/disable state
Dalai Felinto [Wed, 6 Feb 2019 16:52:40 +0000 (16:52 +0000)]
Outliner visibility: Respect original viewport enable/disable state

Note: We still change it to the collection we are directly isolating/making
visible and its parents (in the case of isolating). But no longer its children.

Feedback and discussion on D4011. The motivation is that if we don't keep those
locked the disable state becomes useless.

7 months agoOutliner visibility unification: Prevent master collection visibility to change
Dalai Felinto [Wed, 6 Feb 2019 16:12:25 +0000 (16:12 +0000)]
Outliner visibility unification: Prevent master collection visibility to change

Also satinizing the checks for master collection. The outliner tree
iterators already take care of not including the master collection

7 months agoDepsgraph: Fix dependency cycle when rigid body is involved
Sergey Sharybin [Wed, 6 Feb 2019 16:04:29 +0000 (17:04 +0100)]
Depsgraph: Fix dependency cycle when rigid body is involved

Was introduced by point cache reset on manual edits. Needed to
split evaluation and introduce an explicit init key, which allows
to hook up relations which are "monitoring" manual edits to the

Noticed while looking into T61190.

7 months agoFix T61190: Crash in particles distribution
Sergey Sharybin [Wed, 6 Feb 2019 15:38:03 +0000 (16:38 +0100)]
Fix T61190: Crash in particles distribution

Was visible with certain configuration only, is a numeric
instability caused by degenerate ray direction.

Not sure the distribution is correct, just fixing crash
which was caused by usage of watertight intersection.

7 months agoImprovements and fixes to Cycles metadata
Sergey Sharybin [Wed, 6 Feb 2019 10:49:41 +0000 (11:49 +0100)]
Improvements and fixes to Cycles metadata

This is a request by the studio here to make it possible to see how
many samples were used to render a specific shot or a frame. It is a
bit more tricky than simply stamping number of samples from a scene
since rendering is happening in multiple ranges of samples.

This change makes it so Cycles saves configured number of samples for
the specific view layer, and also stores start sample and number of
samples when rendering only a subrange of all samples.

The format used is "cycles.<view_layer_name>.><field>", which allows
to have information about all layers in a multi-layer EXR file.

Ideally we can store simplified "cycles.<field>" if we know that there
is only one render layer in the file, but detecting this is somewhat
tricky since Cycles operates on an evaluated scene which always have
single view layer.

The metadata is shown in the Metadata panels for clip, image and
sequencer spaces.

Example screenshot which shows the metadata:


Reviewers: brecht

Reviewed By: brecht

Subscribers: fsiddi

Differential Revision:

7 months agoMerge branch 'blender2.7'
Brecht Van Lommel [Wed, 6 Feb 2019 14:22:53 +0000 (15:22 +0100)]
Merge branch 'blender2.7'

7 months agoCycles: animation denoising support in the kernel.
Lukas Stockner [Wed, 6 Feb 2019 13:19:20 +0000 (14:19 +0100)]
Cycles: animation denoising support in the kernel.

This is the internal implementation, not available from the API or
interface yet. The algorithm takes into account past and future frames,
both to get more coherent animation and reduce noise.

Ref D3889.

7 months agoCycles: tweak outlier detection, preparing for animation denoising.
Lukas Stockner [Wed, 6 Feb 2019 13:42:32 +0000 (14:42 +0100)]
Cycles: tweak outlier detection, preparing for animation denoising.

Ref D3889.

7 months agoCycles: prefilter feature passes separate from denoising.
Lukas Stockner [Wed, 6 Feb 2019 11:42:10 +0000 (12:42 +0100)]
Cycles: prefilter feature passes separate from denoising.

Prefiltering of feature passes will happen during rendering, which can
then be used for denoising immediately or written as a render pass for
later (animation) denoising.

The number of denoising data passes written is reduced because of this,
leaving out the feature variance passes. The passes are now Normal,
Albedo, Depth, Shadowing, Variance and Intensity.

Ref D3889.

7 months agoDRW: Support edit-metaball clipping
Campbell Barton [Wed, 6 Feb 2019 13:07:30 +0000 (00:07 +1100)]
DRW: Support edit-metaball clipping

7 months agoDRW: Support edit-curve clipping
Campbell Barton [Wed, 6 Feb 2019 12:19:39 +0000 (23:19 +1100)]
DRW: Support edit-curve clipping

7 months agoFix T57342: Crash on render with workbench render engine via command line
Clément Foucault [Wed, 6 Feb 2019 11:10:11 +0000 (12:10 +0100)]
Fix T57342: Crash on render with workbench render engine via command line

7 months agoCleanup: Remove deprecated ghosting code
Jacques Lucke [Wed, 6 Feb 2019 11:05:34 +0000 (12:05 +0100)]
Cleanup: Remove deprecated ghosting code

Most of this code is deprecated for many years already and does not
work at all in Blender 2.8.

Reviewers: brecht, aligorith

Differential Revision:

7 months agoFix T60935: More numerically stable distance to ray computation
Jacques Lucke [Wed, 6 Feb 2019 10:47:46 +0000 (11:47 +0100)]
Fix T60935: More numerically stable distance to ray computation

The old function was numerically very unstable for 2 reasons:
computing the square and then subtracting the results.

In the example in T60935 all precision was lost and it returned the distance 0
for all points.

I also removed the `depth` parameter since it wasn't used and computing
it would have made the code more complicated.

Reviewers: brecht, campbellbarton

Differential Revision:

7 months agoUI: tweak header position button
Campbell Barton [Wed, 6 Feb 2019 10:39:06 +0000 (21:39 +1100)]
UI: tweak header position button

Be less prominent.

7 months agoFix T61136: Header alignment preference has no effect
Campbell Barton [Wed, 6 Feb 2019 10:15:39 +0000 (21:15 +1100)]
Fix T61136: Header alignment preference has no effect

Users expect this to apply to existing files,
adjust this to apply on load, defaults to off.

7 months agoClip editor: Fix drawing metadata for RGBA images
Sergey Sharybin [Wed, 6 Feb 2019 09:48:09 +0000 (10:48 +0100)]
Clip editor: Fix drawing metadata for RGBA images

Need to disable blending prior to drawing metadata. Otherwise
text will be drawn on a transparent background.

7 months agoCleanup: Spelling in comment
Sergey Sharybin [Wed, 6 Feb 2019 09:10:59 +0000 (10:10 +0100)]
Cleanup: Spelling in comment

7 months agoFix T61124: Lag on physics simulation
Sergey Sharybin [Wed, 6 Feb 2019 09:09:00 +0000 (10:09 +0100)]
Fix T61124: Lag on physics simulation

Need to synchronize simulated frame back to original object.

Solves the lag during transformation, but amount of floppyness is
lower for some reason. Final animated object behaves the same as
in older Blender though.

7 months agoFix T61051: crash with multi-object mixed mode snapping
Philipp Oeser [Thu, 31 Jan 2019 12:01:52 +0000 (13:01 +0100)]
Fix T61051: crash with multi-object mixed mode snapping

rBec3357e03ab1 introduced multi-object snapping.
Seems like this was done without mixed-mode selections in mind.

So code assumed that all selected objects are actually armatures [which
can fail].
In 2.7 this was not a problem, because code only took active object into
account, 2.8 was iterating over all selected_editable_objects.

Now just iterate over objects in posemode instead

Reviewers: brecht, dfelinto

Maniphest Tasks: T61051

Differential Revision:

7 months agoCleanup: remove unused toolbox delay preferences
Campbell Barton [Wed, 6 Feb 2019 07:18:54 +0000 (18:18 +1100)]
Cleanup: remove unused toolbox delay preferences

7 months agoCleanup: use '_pad' prefix for padding vars
Campbell Barton [Wed, 6 Feb 2019 07:15:58 +0000 (18:15 +1100)]
Cleanup: use '_pad' prefix for padding vars

7 months agoCleanup: manually apply changes missed last commit
Campbell Barton [Wed, 6 Feb 2019 04:52:04 +0000 (15:52 +1100)]
Cleanup: manually apply changes missed last commit

Automatic edits failed for indented comment blocks,
removed indentation & adjusted.

7 months agoCleanup: remove redundant doxygen \file argument
Campbell Barton [Wed, 6 Feb 2019 04:42:22 +0000 (15:42 +1100)]
Cleanup: remove redundant doxygen \file argument

Move \ingroup onto same line to be more compact and
make it clear the file is in the group.

7 months agoDoxygen: don't warn on undocumented params
Campbell Barton [Wed, 6 Feb 2019 04:02:07 +0000 (15:02 +1100)]
Doxygen: don't warn on undocumented params

We don't attempt to have docs for all args, so don't warn about this.

7 months agoDoxygen: update doxyfile
Campbell Barton [Wed, 6 Feb 2019 04:01:04 +0000 (15:01 +1100)]
Doxygen: update doxyfile

7 months agoCleanup: remove deprecated/unused preferences DNA
Campbell Barton [Wed, 6 Feb 2019 03:34:00 +0000 (14:34 +1100)]
Cleanup: remove deprecated/unused preferences DNA

7 months agoCleanup: use doxy headers for preference comments
Campbell Barton [Wed, 6 Feb 2019 03:23:08 +0000 (14:23 +1100)]
Cleanup: use doxy headers for preference comments

7 months agoFix T61191: First undo step missing in text editor
Campbell Barton [Wed, 6 Feb 2019 01:55:26 +0000 (12:55 +1100)]
Fix T61191: First undo step missing in text editor

7 months agoUndo System: remove accumulate/store modes
Campbell Barton [Tue, 5 Feb 2019 03:24:11 +0000 (14:24 +1100)]
Undo System: remove accumulate/store modes

This complicated handling of undo steps in a generic way
especially switching between undo systems that stored data to ones
that accumulated changes.

Now each undo system must treat it's steps as check-point,
internally it can apply/rewind changes.

This commit also fixes projection paint where the object mode wasn't
following the undo steps.

7 months agoFix T61196: Mesh select ignores clipping
Campbell Barton [Tue, 5 Feb 2019 23:33:14 +0000 (10:33 +1100)]
Fix T61196: Mesh select ignores clipping

Select clipping now works when x-ray is disabled.

7 months agoGPU: refactor clipped drawing from DRW into GPU
Campbell Barton [Tue, 5 Feb 2019 22:15:16 +0000 (09:15 +1100)]
GPU: refactor clipped drawing from DRW into GPU

Needed to fix T61196, supporting clipped back-buffer in the 3D view
which is done outside the draw module.

It was also inconvenient having DRW_shader_* versions of GPU_shader_*
API calls.

- Clipping distances are now supported as a shader configuration
  for builtin shaders.
- Add shader config argument when accessing builtin shaders.
- Move GPU_shader_create_from_arrays() from DRW to GPU.

7 months agoCleanup: style
Campbell Barton [Tue, 5 Feb 2019 22:14:11 +0000 (09:14 +1100)]
Cleanup: style

7 months agoOutliner visibility unification: Implement 3 levels of viewport visibility
Dalai Felinto [Fri, 30 Nov 2018 04:24:06 +0000 (02:24 -0200)]
Outliner visibility unification: Implement 3 levels of viewport visibility

Now collection and objects can be either:
* Disabled for all the view layers.
* Hidden for a view layer but not necessarily for all others.
* Visible for a view layer but not necessarily for all others.

Regarding icons: Whatever we decide to use for the "Hidden for all view
layers" needs to be a toggle-like icon. Because when viewing "Scenes"
instead of "View Layer" in the outliner we should be able to edit the
collection "Hidden for all the view layers" as an on/off option.

The operators are accessible via a Visibility context menu or shortcuts:
* Ctrl + Click: Isolate collection (use shift to extend).
* Alt + Click: Disable collection.
* Shift + Click: Hide/Show collection and its children (objects and collections)

Things yet to be tackled:
* Object outliner context menu can also get a Visibility sub-menu.
* Get better icons for viewport enable/disable.

* When using emulate 3 button mouse alt+click is used for 2d panning.
  In this case users have to use the operator from the menu.

See T57857 for discussion.

Reviewers: brecht and sergey

Thanks to the reviewers and William Reynish and Julien Kasper in
particular for the feedback.

7 months agoOutliner: eyes for collection affect collection visibility
Dalai Felinto [Thu, 29 Nov 2018 21:43:52 +0000 (19:43 -0200)]
Outliner: eyes for collection affect collection visibility

As oppose to affect the collection objects' visibility.

7 months agoOutliner: Gray out collections only when they are invisible
Dalai Felinto [Thu, 29 Nov 2018 20:56:10 +0000 (18:56 -0200)]
Outliner: Gray out collections only when they are invisible

Re-factor of 4521d3e7074d.

7 months agoFix/workaround issues in pose and edit mode
Sergey Sharybin [Wed, 28 Nov 2018 09:36:07 +0000 (10:36 +0100)]
Fix/workaround issues in pose and edit mode


Edit mode was unable to select, pose mode was unable to move bones.

7 months agoPer view-layer collection visibility
Dalai Felinto [Wed, 28 Nov 2018 02:49:36 +0000 (00:49 -0200)]
Per view-layer collection visibility


We still control this in the viewport collections visibility menu. But
now we are actually changing the visibility of the collections, not of
the objects.

If a collection is indirectly invisible (because one of its parents are
invisible) we gray it out.

Also if you click directly in the collection names, it "isolates" the
collection by hiding all collections, and showing the direct parents and
all the children of the selected collection.

Development Note:

Right now I'm excluding the hidden collections from the depsgraph.
Thus the need for tagging relations to update.

If this proves to be too slow, we can change.

7 months agoFix T61204: Can't select Camera in stereoscopy mode
Dalai Felinto [Tue, 5 Feb 2019 20:37:42 +0000 (18:37 -0200)]
Fix T61204: Can't select Camera in stereoscopy mode

This was deliberately disabled since I didn't get the drawing working
originally. It is fully working now.

Note: camera lens widget still needs to be fixed since it still draws it

7 months agoUI: make drag lock work also when buttons have > 2 states or use callbacks.
Brecht Van Lommel [Tue, 5 Feb 2019 19:03:55 +0000 (20:03 +0100)]
UI: make drag lock work also when buttons have > 2 states or use callbacks.

This will help with upcoming outliner visibility icons with 3 states.

It is done by using the icon to identify the state. If that is not unique
there is no visible difference to users anyway.

7 months agoFix new EEVEE bloom / motion blur defaults not being applied to startup.blend.
Brecht Van Lommel [Tue, 5 Feb 2019 13:01:45 +0000 (14:01 +0100)]
Fix new EEVEE bloom / motion blur defaults not being applied to startup.blend.

7 months agoFix strict compiler warning, breaking MSVC
Sergey Sharybin [Tue, 5 Feb 2019 16:02:01 +0000 (17:02 +0100)]
Fix strict compiler warning, breaking MSVC

7 months agoClip editor: Fixes for prefetch
Sergey Sharybin [Tue, 5 Feb 2019 15:50:57 +0000 (16:50 +0100)]
Clip editor: Fixes for prefetch

Seems metadata was never read while prefetching, at least was
never requested to be read.

Also fixed prefetch for multilayer EXR.

7 months agoBKE_mesh_new_from_object(): do not generate temp obj/cu in Main.
Bastien Montagne [Tue, 5 Feb 2019 15:36:14 +0000 (16:36 +0100)]
BKE_mesh_new_from_object(): do not generate temp obj/cu in Main.

When generating a mesh from a curve object, do not generate temp objects
and curves in main, but rather as 'localized' copies.

This is cleaner, and might add a marginal speed-up in some cases (like
rendering thousands of curve objects), since we save some processing.
Note that this is the function behind py API's `Object.to_mesh()` too.

7 months agoMovieclip: Improve support of multilayer EXR files
Sergey Sharybin [Tue, 5 Feb 2019 15:23:53 +0000 (16:23 +0100)]
Movieclip: Improve support of multilayer EXR files

Use first combined pass if possible. Is not ideal but better than
showing completely empty image.

Also, covers quite a lot of usecases when movie clip editor is
used to review animation render of single-layer renders but with
multiple passes.

7 months agoEdit Mode: Increase depth Bias for vertices
Clément Foucault [Tue, 5 Feb 2019 15:12:50 +0000 (16:12 +0100)]
Edit Mode: Increase depth Bias for vertices

7 months agoEdit Mode: Fix loose edges edit mode normal display broken
Clément Foucault [Tue, 5 Feb 2019 13:58:47 +0000 (14:58 +0100)]
Edit Mode: Fix loose edges edit mode normal display broken

7 months agoEdit Mode: Fix Xray edit mode broken due to recent refactor
Clément Foucault [Tue, 5 Feb 2019 13:47:05 +0000 (14:47 +0100)]
Edit Mode: Fix Xray edit mode broken due to recent refactor

7 months agoEdit Mesh: Add workaround for system that does not support wide lines
Clément Foucault [Mon, 4 Feb 2019 21:28:39 +0000 (22:28 +0100)]
Edit Mesh: Add workaround for system that does not support wide lines

This adds a new geometry shader (specific to edit mesh for now) that
reproduces the effect of glLineWidth > 1.0, since this is not supported on
all platform.

This fix could be generalized to other shaders later.

7 months agoEdit Mesh: Fix some problem with new implementation
Clément Foucault [Mon, 4 Feb 2019 19:06:30 +0000 (20:06 +0100)]
Edit Mesh: Fix some problem with new implementation

- Add manual depth offset to vertices and edges.
- Revert to plain edge decoration.
- Fix active edge coloring.
- Remove active face display if not in face selection mode.
- Add wide line support.

7 months agoEdit Mesh: Remove old unused code and files
Clément Foucault [Mon, 4 Feb 2019 00:35:21 +0000 (01:35 +0100)]
Edit Mesh: Remove old unused code and files

Cleanup after recent refactor.

7 months agoEdit Mesh: Refactor Edit cage drawing to use old style drawing
Clément Foucault [Mon, 4 Feb 2019 00:13:51 +0000 (01:13 +0100)]
Edit Mesh: Refactor Edit cage drawing to use old style drawing

This is work in progress. Look is not final.

This align data VBO data structure used for edti cage drawing to the one
use for normal drawing.

We no longer use barycentric coords to draw the lines an just rasterize
line primitives for edge drawing. This is a bit slower than using the
previous fast method but faster than the "correct" (edge artifact free)
method. This also make the code way simpler.

This also makes it possible to reuse possible and normal vbos used for
shading if the edit cage matches the

This also touches the UV batch code to share as much render data as
possible. The code also prepare for edit cage "modified" drawing cage (with
modifier applied) but is not enabled since selection and operators does not
work with modified cage yet.

7 months agoUVEdit: Add function variants based on ToolSettings
Clément Foucault [Mon, 4 Feb 2019 00:12:05 +0000 (01:12 +0100)]
UVEdit: Add function variants based on ToolSettings

This is better than passing a scene pointer when we don't have one.

7 months agoSupport showing metadata for multilayer EXR files
Sergey Sharybin [Tue, 5 Feb 2019 13:23:50 +0000 (14:23 +0100)]
Support showing metadata for multilayer EXR files

Quite straightforward: first, convert metadata from file to
stamp data which is stored in the render result, and then
for every requested layer/pass use that as a metadata.

7 months agoUI: Add collection move & link to menu
William Reynish [Tue, 5 Feb 2019 11:36:09 +0000 (22:36 +1100)]
UI: Add collection move & link to menu