2 months agoUI: Changes to Graph Editor selection and transform
Julian Eisel [Fri, 22 Nov 2019 15:46:15 +0000 (16:46 +0100)]
UI: Changes to Graph Editor selection and transform

When introducing "drag-all-selected" support all over Blender, we
figured this wouldn't work well with the Graph Editor
selection/transform behavior.
Hence, William and I worked on the following changes, although we used
this chance to improve the behavior in general too.
For more info see T70634.

* Handles now always move with the key, regardless if they are selected
  or not.
* Selecting the key doesn't select the handles anymore, their selection
  is separate.
* Multiple keys and handles can now be dragged.
* Dragging a handle moves all selected handles **on the same side**.
* Tweak-dragging any handle can never affect any keyframe location,
  only handles.
* G/R/S should behave as before.
* Changing the handle type with a key selected always applies the change
  to both handles.
* Box selection with Ctrl+Drag now allows deselecting handles (used to
  act on entire triple only).
* Box selection //Include Handles// option now only acts on visible
  handles, wasn't the case with Only Selected Keyframes Handles enabled.
* Box selection //Include Handles// is now enabled by default in all
  bundled keymaps.

The changes have been tested for some days by the animators here in the
Blender Animation Studio. Some changes are based on their feedback.

Also, this improves/adds comments for related code.

Differential Revision:

Reviewed by: Sybren Stüvel, William Reynish

2 months agoFix T71273: Bad encoding of utf-8 for Text objects
mano-wii [Fri, 22 Nov 2019 15:26:54 +0000 (12:26 -0300)]
Fix T71273: Bad encoding of utf-8 for Text objects

`BLI_strncpy_wchar_from_utf8` internally assumes `wchar_t` is 32 bits
which is not the case on windows.

The solution is to replace `wchar_t` with `char32_t`.

Thanks to @robbott for compatibility on macOS.

Differential Revision:

2 months agoFix some of the bevel regression tests.
Howard Trickey [Fri, 22 Nov 2019 14:30:10 +0000 (09:30 -0500)]
Fix some of the bevel regression tests.

The code changes for custom bevels did not recalculated profiles
in certain non-custom-profile cases after projection plane moves.

2 months agoDepsgraph: Ignore action time dependency if it's not needed
Sergey Sharybin [Fri, 22 Nov 2019 08:38:59 +0000 (09:38 +0100)]
Depsgraph: Ignore action time dependency if it's not needed

It is possible to have action which is not nullptr but which have no
f-curves in it (for example, animate cube's location, then delete all

Such situation should not add time dependency as it could slow down
scene evaluation on frame change.

2 months agoLibOverride: Make diffing several times faster.
Bastien Montagne [Fri, 22 Nov 2019 11:26:36 +0000 (12:26 +0100)]
LibOverride: Make diffing several times faster.

Diffing on undo steps is a critical performance point of override
system, although not required for override itself, it gives user
immediate feedback ove what is overridden.

Profiling showed that rna path text search over overrides operations was
by far the most costly thing here, so now using a runtime temp ghash
mapping for this search instead.

Seems to give at least 5 times speedup on big production rig.

2 months agoFix T69332: 'Reset to Default Value' on a custom string property crashes
Philipp Oeser [Thu, 21 Nov 2019 12:58:56 +0000 (13:58 +0100)]
Fix T69332: 'Reset to Default Value' on a custom string property crashes

Thx @campbellbarton for the heads up!

Maniphest Tasks: T69332

Differential Revision:

2 months agoKeymap: use tab key for indent or auto-complete
Campbell Barton [Fri, 22 Nov 2019 09:50:17 +0000 (20:50 +1100)]
Keymap: use tab key for indent or auto-complete

Only indent when there aren't characters before the cursor.

This resolves the conflict with Ctrl-Space for view maximize.

D6239 by @wbrbr for text editor, based console support on this.

2 months agoFix T71621: VSE crashes when playing last frame of audio
Joerg Mueller [Fri, 22 Nov 2019 09:34:01 +0000 (10:34 +0100)]
Fix T71621: VSE crashes when playing last frame of audio

Porting bug fix from audaspace upstream.

2 months agoGizmo: show extrude gizmos with dark '+' instead of negative space
Campbell Barton [Fri, 22 Nov 2019 06:23:24 +0000 (17:23 +1100)]
Gizmo: show extrude gizmos with dark '+' instead of negative space

2 months agoGizmo: support drawing contrasting shapes a generic backdrop
Campbell Barton [Fri, 22 Nov 2019 06:18:52 +0000 (17:18 +1100)]
Gizmo: support drawing contrasting shapes a generic backdrop

Previously the only way to draw polygon shapes from buttons
was to use a polygon that included the circular outline
with negative space for the un-filled areas.

This didn't always have visibility, especially when the gizmo was
overlaying colors that didn't contrast much.

Support drawing a generic backdrop with a polygon shape over it.

2 months agoCleanup: BKE_suggestions -> BKE_text_suggestions
Campbell Barton [Fri, 22 Nov 2019 02:29:25 +0000 (13:29 +1100)]
Cleanup: BKE_suggestions -> BKE_text_suggestions

The term suggestions on it's own is too ambiguous, use BKE_text prefix.

2 months agoMissed header guard update last commit
Campbell Barton [Fri, 22 Nov 2019 02:32:31 +0000 (13:32 +1100)]
Missed header guard update last commit

2 months agoCleanup: rename mirror -> mesh_mirror
Campbell Barton [Fri, 22 Nov 2019 02:03:56 +0000 (13:03 +1100)]
Cleanup: rename mirror -> mesh_mirror

The term mirror on it's own is too ambiguous, use BKE_mesh prefix.

2 months agoCleanup: warnings, set but unused vars
Campbell Barton [Fri, 22 Nov 2019 02:10:01 +0000 (13:10 +1100)]
Cleanup: warnings, set but unused vars

2 months agoFix Windows Build
Pablo Dobarro [Thu, 21 Nov 2019 19:18:04 +0000 (20:18 +0100)]
Fix Windows Build

I forgot to change the old BLI_task functions for the new BKE_pbvh
functions in Topology Slide/Relax.

2 months agoSculpt: Invert Scrape to Fill
Pablo Dobarro [Tue, 8 Oct 2019 16:10:02 +0000 (18:10 +0200)]
Sculpt: Invert Scrape to Fill

After adding normal radius, the main use of the Scrape brush is to create flat surfaces with sharp edges. In that case, it does not make sense to have our current "Peaks" version of the brush as its inverted version.
The correct inverted version of Scrape for this use case is the Fill brush. This way you can use this tool to crease both concave and convex sharp edges and to fix the artifacts one version produces with its inverted version.
I think we should merge these two tools into one, but for now, this solution keeps compatibility with the old behavior.

Reviewed By: jbakker

Differential Revision:

2 months agoSculpt: Topology Slide/Relax
Pablo Dobarro [Thu, 21 Nov 2019 17:57:26 +0000 (18:57 +0100)]
Sculpt: Topology Slide/Relax

This commit implements the Topology Slide/Relax brush and the Relax mesh filter.
These tools are designed to move the topology on top of the mesh without affecting the volume.
The Topology Slide/Relax brush slides the topology of the mesh in the direction of the stroke. When pressing shift, it has an alternative smooth mode similar to the Relax Brush in the sculpt branch. It should be way more stable and produce fewer artifacts.

Reviewed By: jbakker

Differential Revision:

2 months agoPose brush: Smooth Iterations Brush Property
Pablo Dobarro [Sun, 17 Nov 2019 00:09:08 +0000 (01:09 +0100)]
Pose brush: Smooth Iterations Brush Property

The smooth iterations of the pose factor were hardcoded to 4. This works fine in most situations when you are posing a low poly mesh, which is the main use case of this tool. I added the smooth iterations as a brush property in case you need to pose a high poly mesh directly without producing artifacts.

Reviewed By: jbakker

Differential Revision:

2 months agoSculpt: Mask Slice
Pablo Dobarro [Thu, 21 Nov 2019 17:26:16 +0000 (18:26 +0100)]
Sculpt: Mask Slice

This operator is similar to Mask Extract, but it deletes the masked points on the original mesh and fills the holes. This can be useful for quickly trimming or splitting an object.
This is not meant to be the main trimming tool of sculpt mode. I plan to have a set of trimming tools based on geometry booleans (trim box, lasso, line, bisect...) but in some cases doing a mask selection is more convenient.

Reviewed By: jbakker

Differential Revision:

2 months agoSculpt: Multiplane Scrape Brush
Pablo Dobarro [Wed, 6 Nov 2019 18:39:34 +0000 (19:39 +0100)]
Sculpt: Multiplane Scrape Brush

The Multiplane Scrape brush creates sharp edges with a given fixed angle by trimming the mesh with two planes in local space at the same time.  When working with stylized or hard surface models, this brush produces way better results and is more predictable than any other crease/flatten brush based on curves and alphas.
It is also the first brush we have than can produce hard surface concave creases.
The Multiplane Scrape Brush also has a dynamic mode where it samples the surface to fit the angle and scrape planes during a stroke. With this mode enabled you can sculpt multiple times over the same edge without creating artifacts.
It can also create creases that change between concave and convex during the same stroke.

The behavior of this brush will improve after merging patches like D5993 and its behavior in concave creases can still be improved, so I will keep tweaking its parameters and default values once we have all brush properties available.

Reviewed By: jbakker

Differential Revision:

2 months agoBones: implement a new Aligned Inherit Scale mode.
Alexander Gavrilov [Sat, 19 Oct 2019 08:37:57 +0000 (11:37 +0300)]
Bones: implement a new Aligned Inherit Scale mode.

Implement one more way of inheriting scale from the parent
bone, as an addition to the choices introduced in D5588.

This new mode inherits parent scale as if the parent and child
were not rotated relative to each other, always applying parent
X scale to child X scale and so forth. It is quite natural for
connected bone chains with coherent roll, like limbs or tentacles,
falling roughly between Average and Fix Shear in how closely
the parent scaling is followed.

Currently this can be achieved by using Inherit Scale: None plus
a Copy Scale with Offset from parent on the child; however, this
is cumbersome, and loses the distinction between true local and
inherited scale in the child's Local space.

This new mode also matches how the Before/After Original mix
modes work in the Copy Transforms constraint.

On the technical side this mode requires adding a right side
scale matrix multiplication into the Local<->Pose conversion,
in addition to the existing two left side matrices used for
location and orientation.

Differential Revision:

2 months agoSculpt: Enable symmetrize operator with Dyntopo disabled
Pablo Dobarro [Tue, 5 Nov 2019 14:39:51 +0000 (15:39 +0100)]
Sculpt: Enable symmetrize operator with Dyntopo disabled

After refactoring the mirror modifier and supporting geometry modifications with PBVH_FACES this operator can be easily implemented without Dyntopo.
The symmetrize button and options are still in the Dyntopo pannel. There are patches like doing multiple modifications in the Sculpt mode UI, so we need to find a way to organize this better.

Reviewed By: jbakker

Differential Revision:

2 months agoSculpt: New Clay Brush
Pablo Dobarro [Mon, 18 Nov 2019 21:40:46 +0000 (22:40 +0100)]
Sculpt: New Clay Brush

The previous Clay brush was similar to flatten. Now it has a different plane calculation and falloff, based on the position of the vertices before deforming them, so it feels more like adding clay to the model.

Reviewed By: jbakker

Differential Revision:

2 months agoClay Strips: Input pressure curve and new defaults
Pablo Dobarro [Thu, 14 Nov 2019 18:12:11 +0000 (19:12 +0100)]
Clay Strips: Input pressure curve and new defaults

By squaring the pen pressure and disabling BRUSH_SPACE_ATTEN the brush
feels like it has a bigger strength range, wich makes it easier to
control when applying less pressure in order to smooth sculpted

Each brush should have a custom input pressure curve by default to get
an optimal behaviour and make all brushes consistent, but that is going
to take some time to get it right.

Reviewed By: jbakker

Differential Revision:

2 months agoSculpt/Paint: Dash Ratio and Dash Samples
Pablo Dobarro [Mon, 18 Nov 2019 21:47:23 +0000 (22:47 +0100)]
Sculpt/Paint: Dash Ratio and Dash Samples

Dash Ratio and Dash Samples are brush properties to modify the strength of the brush during a stroke. This is useful to create dashed lines in texture paint or stitches in sculpt mode.

Reviewed By: jbakker

Differential Revision:

2 months agoCleanup: spelling
Campbell Barton [Thu, 21 Nov 2019 12:25:59 +0000 (23:25 +1100)]
Cleanup: spelling

One of the corrections from last cleanup was wrong.

2 months agoFix T68499: weight paint gradient is broken with generative modifiers
Philipp Oeser [Wed, 20 Nov 2019 20:08:42 +0000 (21:08 +0100)]
Fix T68499: weight paint gradient is broken with generative modifiers

Caused by rBac442da4a14d.

Above commit tweaked the logic to not only early out, but also set the
WPGradient_vertStore screen coord to FLT_MAX in case this original index
was visited before [gradientVertInit__mapFunc].
For generative modifiers though, we might get here multiple times for the
same orig index, resulting in a valid orig index being made invalid for
gradientVertUpdate__mapFunc [which would early out in case of FLT_MAX].

Restored original logic, so that setting FLT_MAX only really happens
when it should: when ED_view3d_project_float_object fails...

Maniphest Tasks: T68499

Differential Revision:

2 months agoCleanup: spelling
Campbell Barton [Thu, 21 Nov 2019 12:11:48 +0000 (23:11 +1100)]
Cleanup: spelling

2 months agoCleanup: clang-format
Campbell Barton [Thu, 21 Nov 2019 12:06:06 +0000 (23:06 +1100)]
Cleanup: clang-format

Also remove unused vars.

2 months agoFix T67873: View Selected in Graph Editor (Only Selected Curve
Philipp Oeser [Tue, 12 Nov 2019 18:36:36 +0000 (19:36 +0100)]
Fix T67873: View Selected in Graph Editor (Only Selected Curve
Keyframes) takes hidden keys into account when calculating zoom

Note that with the 'View Only Selected Curve Keyframes' option enabled,
it is also possible to select [box/circle/lasso] hidden/non-visible
keyframes. Think this should never happen, but that is for a later
commit (along some deduplication of animdata filtering code)

Reviewed By: Severin, Sybren

Maniphest Tasks: T67873

Differential Revision:

2 months agoCleanup: remove unused value2d gizmo
Campbell Barton [Thu, 21 Nov 2019 11:57:01 +0000 (22:57 +1100)]
Cleanup: remove unused value2d gizmo

2 months agoMissed last commit
Campbell Barton [Thu, 21 Nov 2019 11:59:39 +0000 (22:59 +1100)]
Missed last commit

2 months agoTool System: make smooth & randomize modal operators
Campbell Barton [Thu, 21 Nov 2019 10:06:24 +0000 (21:06 +1100)]
Tool System: make smooth & randomize modal operators

Previously these used a gizmo to redo the operator however this
complicated having on-screen gizmos to access tools (see T66304).

Replace this with a generic way to make an operator that only has an
execute function into a modal operator.

This is used for smooth and randomize tools.

Unlike operator gestures, this handles storing and resetting the data.

Currently this only handles edit-mode data, however it's can be
extended to other kinds of data.

2 months agoObject: edit-mode data support for object vertex coordinate access
Campbell Barton [Thu, 21 Nov 2019 10:03:03 +0000 (21:03 +1100)]
Object: edit-mode data support for object vertex coordinate access

Allows to access/transform/restore edit-mode
coordinates in a generic way.

2 months agoFix T62631: Cloth vertex mass capped to a very low number on scaled scenes.
Sebastian Parborg [Thu, 21 Nov 2019 11:28:39 +0000 (12:28 +0100)]
Fix T62631: Cloth vertex mass capped to a very low number on scaled scenes.

Removed the weight limit and made the setting more clear in what it actually does.
IE, it controlls the weight of the vertices of the cloth mesh

Reviewed By: Brecht

Differential Revision:

2 months agoFix T71412: Add transform component to deforming modifier
Philipp Oeser [Thu, 21 Nov 2019 11:20:49 +0000 (12:20 +0100)]
Fix T71412: Add transform component to deforming modifier

Dynamically bound mesh deform modifiers failed to update the viewport on
object transformation of deformer. The TODO by Sergey, which suggested
adding the transform component to the depsgraph, was already there, and
worked to fix T71412.

2 months agoAdd curve decimate in the graph editor
Sebastian Parborg [Thu, 21 Nov 2019 10:58:35 +0000 (11:58 +0100)]
Add curve decimate in the graph editor

Added a animation curve decimate operator in the graph editor

Reviewed By: Sybren

Differential Revision:

2 months agoFix T71621: VSE crashes when playing last frame of audio
Sybren A. Stüvel [Thu, 21 Nov 2019 09:01:01 +0000 (10:01 +0100)]
Fix T71621: VSE crashes when playing last frame of audio

Due to some floating point errors the last frame of a VSE audio strip can
cause integer overflow and crash Blender. This overflow was caused by a
cast from `int64_t` to `int` without prior check. The crash is fixed by
keeping the variable as `int64_t` for as long as possible.

2 months agoBevel: Custom Profile and CurveProfile Widget
Hans Goudey [Wed, 20 Nov 2019 21:12:32 +0000 (16:12 -0500)]
Bevel: Custom Profile and CurveProfile Widget

Custom profiles in bevel allows the profile curve to be controlled by
manually placed control points. Orientation is regularized along
groups of edges, and the 'pipe case' is updated. This commit includes
many updates to comments and changed variable names as well.

A 'cutoff' vertex mesh method is added to bevel in addition to the
existing grid fill option for replacing vertices.

The UI of the bevel modifier and tool are updated and unified.

Also, a 'CurveProfile' widget is added to BKE for defining the profile
in the interface, which may be useful in other situations.

Many thanks to Howard, my mentor for this GSoC project.

Reviewers: howardt, campbellbarton

Differential Revision:

2 months agoUI: Text Editor Visual Changes
Harley Acheson [Wed, 20 Nov 2019 20:59:19 +0000 (12:59 -0800)]
UI: Text Editor Visual Changes

Various small changes to Text Editor, mostly to do with scaling, alignment, and theme support.

Differential Revision:

Reviewed by Campbell Barton

2 months agoNew splash screen for master branch!
Sergey Sharybin [Wed, 20 Nov 2019 13:55:44 +0000 (14:55 +0100)]
New splash screen for master branch!

This way we can tell master from previous releases apart.

Splash by Gleb Alexandrov, Aidy Burrows and the Blender community

2 months agoAlembic: clean up exporter metadata code
Sybren A. Stüvel [Tue, 19 Nov 2019 11:45:43 +0000 (12:45 +0100)]
Alembic: clean up exporter metadata code

The Alembic file metadata object was created in one place, a bit of
metadata was added, then it was passed along with other properties which
were then injected as metadata in another function. This is now cleaned up.

No functional changes.

2 months agoAlembic: Upgrade from 1.7.8 to 1.7.12
Sybren A. Stüvel [Tue, 19 Nov 2019 11:21:52 +0000 (12:21 +0100)]
Alembic: Upgrade from 1.7.8 to 1.7.12

Alembic 1.7.12 introduces a 'DCC FPS' hint, allowing Blender to write
the scene frame rate to the Alembic file. This will make it possible for
importers and converters to properly deal with situations where 'frame
number' is the only reference to time.

Writing this new DCC FPS hint will be done in a separate commit. Here
only the Alembic library is upgraded from 1.7.8 to 1.7.12.

2 months agoCleanup: comments
Campbell Barton [Wed, 20 Nov 2019 07:10:33 +0000 (18:10 +1100)]
Cleanup: comments

2 months agoFix T71680: _PyObject_LookupAttr memory leak
Campbell Barton [Wed, 20 Nov 2019 06:53:22 +0000 (17:53 +1100)]
Fix T71680: _PyObject_LookupAttr memory leak

2 months agoCleanup: remove WITH_RAYOPTIMIZATION
Campbell Barton [Wed, 20 Nov 2019 03:52:24 +0000 (14:52 +1100)]

This is redundant as WITH_CPU_SSE adds these flags
when they're supported.

2 months agoFix assert running remesh with OpenVDB disabled
Campbell Barton [Wed, 20 Nov 2019 03:50:15 +0000 (14:50 +1100)]
Fix assert running remesh with OpenVDB disabled

2 months agoOutliner: Fixup for previous commit on tooltip/crash fix
Dalai Felinto [Wed, 20 Nov 2019 03:42:28 +0000 (00:42 -0300)]
Outliner: Fixup for previous commit on tooltip/crash fix

The issue was actually in Python extras (where it shows the ENUM option).

I got a bit distracted by the "(undocumented operator)" message.
It made me miss the missing ENUM once the crash was gone.

2 months agoOutliner: Fix crash for tooltips on ID operations
Dalai Felinto [Wed, 20 Nov 2019 03:29:28 +0000 (00:29 -0300)]
Outliner: Fix crash for tooltips on ID operations

This was introduced on 9ca2cbdcea6a.

2 months agoOutliner: Don't show id operations (make single user) when not supported
Dalai Felinto [Tue, 19 Nov 2019 17:15:41 +0000 (14:15 -0300)]
Outliner: Don't show id operations (make single user) when not supported

For the make single user operation to work we expect a parent of the
datablock to be around. However this is often not the case when not
accessing the data from Scenes or Viewlayer display modes.

For now we simply not show them in the other cases. They can be added
later though, by testing the outliner tree parent compatibility with the
expected parent id.

Fix T71673
Differential Revision:

2 months agoSubdiv: Tweak threading settings
Sergey Sharybin [Tue, 19 Nov 2019 15:47:41 +0000 (16:47 +0100)]
Subdiv: Tweak threading settings

Ensure that all threads on a multi-core system are used.

The issue was that BLI_task module was trying to be smart and
used heuristic to find optimal number of iterations per thread.
This heuristic assumes that tasks are light-weight, which is
not a case for subdivision surface.

On a higher subdivision level with a file from T70826 the
evaluation time goes down from 0.25 to 0.17 seconds per modifier

When D6189 is finalized we can being some extra performance

2 months agoUse mutex for lock in image.c
Ray Molenkamp [Tue, 19 Nov 2019 14:37:16 +0000 (07:37 -0700)]
Use mutex for lock in image.c

Usage of spinlock during heavy IO gave reduced performance
see D6267 for details.

Reviewed By: sergey

Differential Revision:

2 months agoFix T69798: Pinning empty image objects
Dalai Felinto [Mon, 18 Nov 2019 21:01:54 +0000 (18:01 -0300)]
Fix T69798: Pinning empty image objects

We have no dedicated image context tab, so for now making sure we don't
end up passing its ID as the pinned one.

If we ever get one, we then will need a different solution here, like
changing the ID that owns the data to be the object, instead of the
empty image datablock.

Differential Revision:

2 months agoFix T71554: 'Hide Unselected' not working for certain selections
Philipp Oeser [Thu, 14 Nov 2019 11:31:36 +0000 (12:31 +0100)]
Fix T71554: 'Hide Unselected' not working for certain selections

rBc6cbcf83d015 caused to early out e.g when not all faces were selected
(but surrounding faces were, so implicitly all vertices were selected).
Now take (mixed also) selection mode into account.

Maniphest Tasks: T71554

Differential Revision:

3 months agoPython API: assume that a crashed Python operator returned FINISHED.
Alexander Gavrilov [Wed, 13 Nov 2019 10:42:01 +0000 (13:42 +0300)]
Python API: assume that a crashed Python operator returned FINISHED.

The CANCELLED return value from an operator is intended for
signaling that the operator aborted execution without changing
anything, and an Undo stack entry should not be created.

When a Python operator crashes, it is not safe to assume that
it did nothing, so it should interpret it as FINISHED instead.
Otherwise, the undo system behavior after an operator failure
feels broken.

Differential Revision:

3 months agoWM: remove view operators from the undo stack
Alessio Monti di Sopra [Mon, 18 Nov 2019 13:55:15 +0000 (00:55 +1100)]
WM: remove view operators from the undo stack

3 months agoGPencil: Layers and Materials Specials menu updates
Matias Mendiola [Mon, 18 Nov 2019 13:33:14 +0000 (14:33 +0100)]
GPencil: Layers and Materials Specials menu updates

Rename and separate Layers and Materials Specials menu from other buttons for better consistency

Reviewed By: antoniov

Differential Revision:

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Mon, 18 Nov 2019 12:58:02 +0000 (23:58 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoBuild deps: Actually tweak EOL style
Sergey Sharybin [Mon, 18 Nov 2019 12:55:55 +0000 (13:55 +0100)]
Build deps: Actually tweak EOL style

Seems that `git am` will force native EOL.

3 months agoCorrect error in last commit
Campbell Barton [Mon, 18 Nov 2019 12:53:34 +0000 (23:53 +1100)]
Correct error in last commit

3 months agoBuild deps: Fix compilaiton of OpenCollada
blender [Mon, 18 Nov 2019 12:50:31 +0000 (13:50 +0100)]
Build deps: Fix compilaiton of OpenCollada

Was caused by "wrong" EOL characters used in the patch: the file is
actuallyu saved using CRLF EOL style.

The patch was using CRLF as well for until recent change in the C

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Mon, 18 Nov 2019 12:36:16 +0000 (23:36 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoFix T71564: Undo stroke lags after entering sculpt mode
Campbell Barton [Mon, 18 Nov 2019 12:30:33 +0000 (23:30 +1100)]
Fix T71564: Undo stroke lags after entering sculpt mode

Regression since 2.80, see: T71434

3 months agoFix wrong name for QuadriFlow undo step
Campbell Barton [Mon, 18 Nov 2019 11:42:10 +0000 (22:42 +1100)]
Fix wrong name for QuadriFlow undo step

3 months agoGHOST: Only spam about X11 errors when using --debug-ghost
Sergey Sharybin [Mon, 14 Oct 2019 10:44:41 +0000 (12:44 +0200)]
GHOST: Only spam about X11 errors when using --debug-ghost

This commit adds a new command line argument --debug-ghost and
makes it so X11 errors happening during context initialization
are only printed when this new flag is sued.

There is no need to flood users with errors when their GPU is
not supporting latest OpenGL version. Or, at a very minimum,
the error must be more meaning full.

Differential Revision:

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Mon, 18 Nov 2019 05:39:16 +0000 (16:39 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Mon, 18 Nov 2019 05:39:10 +0000 (16:39 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Mon, 18 Nov 2019 05:39:01 +0000 (16:39 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoFix building on NetBSD
Campbell Barton [Mon, 18 Nov 2019 05:27:06 +0000 (16:27 +1100)]
Fix building on NetBSD

3 months agoCMake: GLEW_INCLUDE_PATH wasn't set for system glew
Campbell Barton [Mon, 18 Nov 2019 05:26:32 +0000 (16:26 +1100)]
CMake: GLEW_INCLUDE_PATH wasn't set for system glew

3 months agoFix building on 32bit systems
Campbell Barton [Mon, 18 Nov 2019 05:25:59 +0000 (16:25 +1100)]
Fix building on 32bit systems

3 months agomsvc: Use debug versions of tbb malloc for debug builds
Ray Molenkamp [Sun, 17 Nov 2019 21:26:29 +0000 (14:26 -0700)]
msvc: Use debug versions of tbb malloc for debug builds

Using the release versions gave unpredictable results when
the msvc debugger was attached for some developers.

3 months agoFix: Build error with msvc
Ray Molenkamp [Sun, 17 Nov 2019 16:09:58 +0000 (09:09 -0700)]
Fix: Build error with msvc

std::min requires the algorithm header

3 months agoFix T71322: Crash in Audaspace with some video file
Jörg Müller [Sun, 17 Nov 2019 08:02:18 +0000 (09:02 +0100)]
Fix T71322: Crash in Audaspace with some video file

Getting upstream audaspace fixes for audio files with more than 8

3 months agoFix a bug in the T34039 hack in case when a modifier key is not mapped.
Alexander Gavrilov [Sat, 16 Nov 2019 08:56:38 +0000 (11:56 +0300)]
Fix a bug in the T34039 hack in case when a modifier key is not mapped.

In order to recover from a transient Focus Out - Focus In disruption
in the middle of a shortcut, which can be caused by certain window
managers, Blender has code that checks which modifier keys are pressed
after Focus In and restores the modifier state based on that.

If one of the Ctrl, Shift, Alt, Super keys is not mapped anywhere
in the active keyboard layout, XKeysymToKeycode returns the invalid
zero keycode, and reading the key state produces garbage, which can
cause an invalid modifier state. Check the return value to avoid this.

3 months agoFix T68191: Make-instances-real doesn't select the new instances
Philipp Oeser [Tue, 12 Nov 2019 14:25:32 +0000 (15:25 +0100)]
Fix T68191: Make-instances-real doesn't select the new instances

2.79 also did this [select the new instances] which was useful.
2.79 also kept the instancer selected [this patch deselects]

Reviewed By: mont29

Maniphest Tasks: T68191

Differential Revision:

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Fri, 15 Nov 2019 16:34:19 +0000 (03:34 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoFix active bone flip not activating the wpaint vertex group
Campbell Barton [Fri, 15 Nov 2019 16:32:23 +0000 (03:32 +1100)]
Fix active bone flip not activating the wpaint vertex group

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Fri, 15 Nov 2019 15:49:45 +0000 (02:49 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoCleanup: quiet warnings
Campbell Barton [Fri, 15 Nov 2019 15:49:15 +0000 (02:49 +1100)]
Cleanup: quiet warnings

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Fri, 15 Nov 2019 15:42:33 +0000 (02:42 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Fri, 15 Nov 2019 15:42:27 +0000 (02:42 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Fri, 15 Nov 2019 15:42:19 +0000 (02:42 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Fri, 15 Nov 2019 15:42:07 +0000 (02:42 +1100)]
Merge branch 'blender-v2.81-release'

3 months agoAPI Docs: don't show functions in ''
Campbell Barton [Fri, 15 Nov 2019 15:37:40 +0000 (02:37 +1100)]
API Docs: don't show functions in ''

This shows the function and it's memory location,
it's not useful for docs so remove it.

3 months agoAPI Docs: only document built-in types
Campbell Barton [Fri, 15 Nov 2019 15:12:20 +0000 (02:12 +1100)]
API Docs: only document built-in types

Some types were documented in bpy.types aren't accessible there.

For now, disable documenting types from add-ons and some types from
bl_operators, bl_ui... since these are mostly for internal use.

3 months agoPyAPI: add class and module attributes to rna_info.InfoStructRNA
Campbell Barton [Fri, 15 Nov 2019 15:06:20 +0000 (02:06 +1100)]
PyAPI: add class and module attributes to rna_info.InfoStructRNA

Module access is needed for documentation generation to exclude
non built-in modules.

This also fixes a bug creating references to non built-in types.

3 months agoDocs: correct indent for to_swing_twist docstring
Campbell Barton [Fri, 15 Nov 2019 14:30:07 +0000 (01:30 +1100)]
Docs: correct indent for to_swing_twist docstring

3 months agoMerge remote-tracking branch 'origin/blender-v2.81-release'
Dalai Felinto [Fri, 15 Nov 2019 15:10:55 +0000 (12:10 -0300)]
Merge remote-tracking branch 'origin/blender-v2.81-release'

3 months agoMerge branch 'blender-v2.81-release'
Julian Eisel [Fri, 15 Nov 2019 15:34:46 +0000 (16:34 +0100)]
Merge branch 'blender-v2.81-release'

3 months agoFix T70991: Maximized file browser hides file name bar on Windows
Julian Eisel [Fri, 15 Nov 2019 15:05:38 +0000 (16:05 +0100)]
Fix T70991: Maximized file browser hides file name bar on Windows

`WS_CHILD` is a different kind of child window that what we define as
child window. See

Setting this style flag seems to mess things up a bit in our
configuration. The name bar is actually being overlapped by the Windows
task bar then. Not totally sure why this happens, but I think it's
because windows with the `WS_CHILD` style are positioned relative to the
parent, not the desktop (screen without taskbar). So it uses the full
space available when maximized, which isn't clipped by the taskbar

3 months agoFix: Filebrowser saving dialog size when maximized
Dalai Felinto [Fri, 15 Nov 2019 13:05:02 +0000 (10:05 -0300)]
Fix: Filebrowser saving dialog size when maximized

Reviewed By: Severin

Differential Revision:

3 months agoFix crash when freeing Blender after GTests
Sybren A. Stüvel [Fri, 15 Nov 2019 14:13:06 +0000 (15:13 +0100)]
Fix crash when freeing Blender after GTests

This only frees brush_rng and random_tex_array when they were actually
previously allocated.

In a unit test (see D6246) I want to be able to partially start Blender
so that I can load a blend file. To prevent memory leaks, I also want to
be able to release memory, which currently requires calling
`BKE_blender_free()`. This unconditionally calls `RE_texture_rng_exit()`
and `BKE_brush_system_exit()`, which now crash on freeing `NULL`. This
patch fixes that.

Allocation (`BKE_brush_system_init()`) and freeing
(`BKE_brush_system_exit()`) are done asymmetrically. The allocation
functions are called from `main()` in the creator module, but the
freeing is done by `BKE_blender_free()` the Window Manager. Ideally we
symmetrise this and initialise Blender from outside the window manager
(so that the initialisation can be done without WM and Python too), but
for now I'm happy when things don't crash.

Reviewed by: sergey via pair programming

3 months agoKeymap: pressing leader key (Alt) again closes tool prompt
Campbell Barton [Fri, 15 Nov 2019 02:52:16 +0000 (13:52 +1100)]
Keymap: pressing leader key (Alt) again closes tool prompt

Provides a convenient way to close
if the tool prompt is opened by accident.

3 months agoCleanup: unused argument, variable warnings
Campbell Barton [Fri, 15 Nov 2019 03:35:46 +0000 (14:35 +1100)]
Cleanup: unused argument, variable warnings

3 months agoFix T71590: Closing file browser reopens previously closed render view
Julian Eisel [Thu, 14 Nov 2019 23:23:52 +0000 (00:23 +0100)]
Fix T71590: Closing file browser reopens previously closed render view

The render view window was never closed actually, just moved behind the
main window. It's properly closed now.

It should also behave more like expected when there already is a
temporary window open (e.g. Preferences).

3 months agoGPencil MultiStroke modifier
YimingWu [Thu, 14 Nov 2019 18:18:23 +0000 (19:18 +0100)]
GPencil MultiStroke modifier

This patch includes a modifiers that developed for NPR rendering.

- MultiStroke modifier that generates multiple strokes around the original ones.

Differential Revision:

3 months agoMerge branch 'blender-v2.81-release'
Sergey Sharybin [Thu, 14 Nov 2019 09:44:27 +0000 (10:44 +0100)]
Merge branch 'blender-v2.81-release'

3 months agoBuildbot: Explicitly disable code signer on Linux and macOS
Sergey Sharybin [Thu, 14 Nov 2019 09:37:16 +0000 (10:37 +0100)]
Buildbot: Explicitly disable code signer on Linux and macOS

The script requires Python 3.7 as a very minimum, and CentOS is
only 3.6.

On macOC there was an access to a None object, due to missing
implementation of code signer on this platform.

3 months agoMerge branch 'blender-v2.81-release'
Campbell Barton [Thu, 14 Nov 2019 08:53:26 +0000 (19:53 +1100)]
Merge branch 'blender-v2.81-release'