3 months agoFix T64210: crash using Live Unwrap without UVMap
Philipp Oeser [Tue, 7 May 2019 08:09:22 +0000 (10:09 +0200)]
Fix T64210: crash using Live Unwrap without UVMap

Reviewers: brecht

Maniphest Tasks: T64210

Differential Revision:

3 months agoCleanup: Make comment more readable and avoid wrapping
Sergey Sharybin [Mon, 6 May 2019 16:02:57 +0000 (18:02 +0200)]
Cleanup: Make comment more readable and avoid wrapping

3 months agoCleanup: Simplify access to read-only render settings
Sergey Sharybin [Mon, 6 May 2019 15:59:31 +0000 (17:59 +0200)]
Cleanup: Simplify access to read-only render settings

Will allow to avoid confusion about original/evaluated scene used
to access those in the nearest future.

3 months agoCleanup: Use more const pointers in render pipeline
Sergey Sharybin [Mon, 6 May 2019 15:57:23 +0000 (17:57 +0200)]
Cleanup: Use more const pointers in render pipeline

3 months agoCleanup: Make Render finalization function more generic
Sergey Sharybin [Mon, 6 May 2019 15:47:22 +0000 (17:47 +0200)]
Cleanup: Make Render finalization function more generic

Allows to extend that code more easily.

3 months agoCleanup: Remove remaining parts of frameserver
Sergey Sharybin [Mon, 6 May 2019 15:38:27 +0000 (17:38 +0200)]
Cleanup: Remove remaining parts of frameserver

3 months agoCleanup: More clear naming for rendering functions
Sergey Sharybin [Mon, 6 May 2019 15:36:34 +0000 (17:36 +0200)]
Cleanup: More clear naming for rendering functions

3 months agoFix T57767: Pivot point broken after scaling to 0 in a dimension
Philipp Oeser [Sun, 5 May 2019 14:04:10 +0000 (16:04 +0200)]
Fix T57767: Pivot point broken after scaling to 0 in a dimension

matrix inversion was changed in rB01c75c3765eb from own code to EIGEN
for performance reasons. EIGEN would return a zero matrix on failure
(resulting in the pivot always being at the object origin).
This brings back the "old" matrix inversion code (which has the benifit
of providing a partial solution which makes the local transform center
appear correct)

Reviewers: campbellbarton

Maniphest Tasks: T57767

Differential Revision:

3 months agoRNA: provide access to the vertex index array of the Hook modifier.
Alexander Gavrilov [Sat, 4 May 2019 17:10:43 +0000 (20:10 +0300)]
RNA: provide access to the vertex index array of the Hook modifier.

This allows creating hooks completely without the use of operators.
Also fix subtarget to actually recompute the inverse matrix.

In order to follow the vertex_indices_set function naming convention,
it is necessary to fix makesrna to avoid a naming conflict between
the function wrapper and the property accessor by adding a tag.

Differential Revision:

3 months agoFix T64232: crash on Weight from Bones redo
Philipp Oeser [Tue, 7 May 2019 07:29:31 +0000 (09:29 +0200)]
Fix T64232: crash on Weight from Bones redo

3 months agoFix graph editor selection tolerance ignoring DPI
Campbell Barton [Tue, 7 May 2019 07:30:56 +0000 (17:30 +1000)]
Fix graph editor selection tolerance ignoring DPI

3 months agoDrawManager: External Engines + Overlays
Jeroen Bakker [Fri, 3 May 2019 13:48:21 +0000 (15:48 +0200)]
DrawManager: External Engines + Overlays

Do not iterate over degsgraph when overlays are turned off and
rendering via an external engine. External engines sync data
from Blender differently. The external engine
draws the depth buffer, but that is only needed for overlays.

Reviewers: fclem, brecht

Differential Revision:

3 months agoTheme: set dark grey for line number background
Campbell Barton [Tue, 7 May 2019 07:18:18 +0000 (17:18 +1000)]
Theme: set dark grey for line number background

This color is also used for the right margin,
so use a color that contrasts with the background.

Also use 2x width line.

3 months agoFix T64230: Crash on weight paint gradient redo
Campbell Barton [Tue, 7 May 2019 05:14:30 +0000 (15:14 +1000)]
Fix T64230: Crash on weight paint gradient redo

3 months agoCleanup: improve transform data sorting function
Campbell Barton [Tue, 7 May 2019 03:08:18 +0000 (13:08 +1000)]
Cleanup: improve transform data sorting function

Replace comments on caller with more meaningful name.

3 months agoFix T64130: Bezier curve vanishes on transform
Campbell Barton [Tue, 7 May 2019 02:59:47 +0000 (12:59 +1000)]
Fix T64130: Bezier curve vanishes on transform

3 months agoClanup: clang-format
Campbell Barton [Tue, 7 May 2019 02:34:32 +0000 (12:34 +1000)]
Clanup: clang-format

3 months agoKeymap: double click to close cut
Campbell Barton [Tue, 7 May 2019 00:16:45 +0000 (10:16 +1000)]
Keymap: double click to close cut

Restore from 2.7x (lost when migrating to migrating keymap to Python).

3 months agoCleanup: typo, tweak proportional edit check
Campbell Barton [Tue, 7 May 2019 00:01:25 +0000 (10:01 +1000)]
Cleanup: typo, tweak proportional edit check

3 months agoDRW: Remove is_negative_m4 per draw call
Clément Foucault [Mon, 6 May 2019 15:08:48 +0000 (17:08 +0200)]
DRW: Remove is_negative_m4 per draw call

This had some cost in perf and is not needed most of the time. If the
drawcall really needs it, it should use a correct ob pointer.

3 months agoCleanup: Eevee/Workbench: Remove non-needed matrix inversion
Clément Foucault [Mon, 6 May 2019 15:06:26 +0000 (17:06 +0200)]
Cleanup: Eevee/Workbench: Remove non-needed matrix inversion

Theses are garanteed by the depsgraph now.

3 months agoDRW: Attempt to fix slowdown caused by gizmo drawing
Clément Foucault [Mon, 6 May 2019 10:41:55 +0000 (12:41 +0200)]
DRW: Attempt to fix slowdown caused by gizmo drawing

3 months agoCleanup: GPUMaterial remove unused struct members
Clément Foucault [Sat, 4 May 2019 13:41:14 +0000 (15:41 +0200)]
Cleanup: GPUMaterial remove unused struct members

3 months agoCleanup: Eevee: Remove comment about vcol support in sculpt mode
Clément Foucault [Sat, 4 May 2019 13:23:53 +0000 (15:23 +0200)]
Cleanup: Eevee: Remove comment about vcol support in sculpt mode

3 months agoMaintain Volume: introduce an option switching between modes.
Alexander Gavrilov [Mon, 6 May 2019 18:47:51 +0000 (21:47 +0300)]
Maintain Volume: introduce an option switching between modes.

After a lot of thinking about this, I decided that all operation modes
that I've tried over the past couple of years, including the original
2.79 one, have their uses after all. Thus the only reasonable solution
is to add yet another option.

The modes are:

- Strict: The current 2.80 mode, which overrides the original scaling
  of the non-free axes to strictly preserve the volume. This is the most
  obvious way one would expect a 'Maintain Volume' constraint to work.

- Uniform: The original 2.79 mode, which assumes that all axes have been
  scaled the same as the free one when computing the volume. This seems
  strange, but the net effect is that when simply scaling the object
  uniformly with S, the volume is preserved; however, scaling the non-
  free axes individually allows deviating from the locked volume.
  This was obviously intended as a more or less convenient UI tool.

- Single Axis: My own variant of the intent of the Uniform scale, which
  does volume-preserving if the object is scaled just on the Free axis,
  while passing the non-free axis scaling through. I.e. instead of
  uniform S scaling, the user has to scale the object just on its
  primary axis to achieve constant volume. This can allow reducing the
  number of animation curves when only constant volume scaling is needed,
  or be an easier to control tool inside a complex rig.

3 months agoUI: Offset checkbox in the Outliner filter popover
William Reynish [Mon, 6 May 2019 18:54:35 +0000 (20:54 +0200)]
UI: Offset checkbox in the Outliner filter popover

Aligned with the other checkboxes

3 months agoNode select: refactor, fix some inconsistent behaviors in socket selection.
Bastien Montagne [Mon, 6 May 2019 18:34:01 +0000 (20:34 +0200)]
Node select: refactor, fix some inconsistent behaviors in socket selection.

Refactor a bit node selection code, mostly in the socket selection in
one place 'extend' logic usage was inverted, deselection of other
sockets/nodes was not working properly.

Also now make node active when selecting a socket, this makes more sense
and makes the NODE_OT_link_viewer macro much more useful (this is the
only user of the 'socket select' feature currently, afaics).

3 months agoGPencil: Verify Brush has GPencil data
Antonioya [Mon, 6 May 2019 18:34:24 +0000 (20:34 +0200)]
GPencil: Verify Brush has GPencil data

This avoid errors in old files.

3 months agoTests: add Eevee reference images, and add workbench tests
Brecht Van Lommel [Mon, 6 May 2019 17:46:32 +0000 (19:46 +0200)]
Tests: add Eevee reference images, and add workbench tests

Being able to compare Eevee reference images is useful for refactoring I'm
working on so might as well add them now, even if we can still improve them.

Workbench tests are just rendering the same files as Cycles and Eevee. This
doesn't really tests many workbench settings until we add tests specifically
for them, but does cover how it it handles the different object types.

3 months agoFix: T64213 Properties Editor Icon Colors are wrong for Text and Light Probes
William Reynish [Mon, 6 May 2019 17:44:33 +0000 (19:44 +0200)]
Fix: T64213 Properties Editor Icon Colors are wrong for Text and Light Probes

3 months agoFix T64111: add a NULL check to avoid crash with bad constraint subtarget.
Alexander Gavrilov [Mon, 6 May 2019 17:30:18 +0000 (20:30 +0300)]
Fix T64111: add a NULL check to avoid crash with bad constraint subtarget.

3 months agoFix T63046, T61413: crash reading paint slots from 32 bit .blend on 64 bit
Brecht Van Lommel [Mon, 6 May 2019 16:02:22 +0000 (18:02 +0200)]
Fix T63046, T61413: crash reading paint slots from 32 bit .blend on 64 bit

Thanks to matc for helping to find this, it was writing the paint slots wrong.

3 months agoDrivers: add an Average Scale option to the Transform Channel driver vars.
Alexander Gavrilov [Sun, 5 May 2019 10:25:43 +0000 (13:25 +0300)]
Drivers: add an Average Scale option to the Transform Channel driver vars.

Unlike location and rotation, there is a meaningful definition of
overall/average scaling via the total change in the volume. This
adds an option to retrieve that via a single driver variable,
instead of having to use three and an expression.

Using the determinant to compute the volume scaling also allows
detecting flipping due to negative scale - this is impossible
to do via the three variable approach.

The volume_scale functions are added purely for code readability:
'volume scale factor' is easier to understand than determinant.

Differential Revision:

3 months agoUI: Outliner Filter popover: Remove wrong use of icons
William Reynish [Mon, 6 May 2019 15:33:04 +0000 (17:33 +0200)]
UI: Outliner Filter popover: Remove wrong use of icons

Missed this file from prior commit.

3 months agoUI: Add tooltips to the select tool modes
William Reynish [Mon, 6 May 2019 14:47:13 +0000 (16:47 +0200)]
UI: Add tooltips to the select tool modes

Especially needed now that they are just icons

3 months agoFix T64161: Crashing using undo and multiple windows
Sergey Sharybin [Mon, 6 May 2019 14:38:17 +0000 (16:38 +0200)]
Fix T64161: Crashing using undo and multiple windows

It is possible that dependency graph was not yet initialized,
so need to do NULL pointer check.

3 months agoUI: Use expanded icon row for Select tool modes
William Reynish [Mon, 6 May 2019 13:59:34 +0000 (15:59 +0200)]
UI: Use expanded icon row for Select tool modes

3 months agoIndustry Compat Keymap: Accept Knife tool with double-click
William Reynish [Mon, 6 May 2019 13:03:40 +0000 (15:03 +0200)]
Industry Compat Keymap: Accept Knife tool with double-click

Suggested by users on Devtalk

3 months agoimprove tooltip of ViewLayer.use
Philipp Oeser [Mon, 6 May 2019 12:24:33 +0000 (14:24 +0200)]
improve tooltip of ViewLayer.use

thx @Zoot (Gavin Scott) for spotting and providing better wording

Fixes T64157

3 months agoremove unused T_LOCAL_MATRIX
Philipp Oeser [Mon, 6 May 2019 09:15:30 +0000 (11:15 +0200)]
remove unused T_LOCAL_MATRIX

- was introduced in rB844a17a3d9d2 but apparently never used
- spotted while looking into T57767

Reviewers: brecht

Differential Revision:

3 months agoFix T64164: Resetting a curvemap could result in a mirrored curve
Philipp Oeser [Mon, 6 May 2019 11:03:23 +0000 (13:03 +0200)]
Fix T64164: Resetting a curvemap could result in a mirrored curve

A template_curve_mapping with brush=True was always resetting the curve
to a positive slope (descending from left to right).
Behaviour is now changed so that specifying "use_negative_slope" is
taken into account as well.

Also use this for:
- paint "cavity_curve"
- gpencil "curve_sensitivity" / "curve_strength" / "curve_jitter" /

Reviewers: brecht

Maniphest Tasks: T64164

Differential Revision:

3 months agoUI: Remove wrong use of icon for Rename Active Item
William Reynish [Mon, 6 May 2019 11:42:06 +0000 (13:42 +0200)]
UI: Remove wrong use of icon for Rename Active Item

3 months agoUI: Outliner Filter popover layout
William Reynish [Mon, 6 May 2019 11:40:51 +0000 (13:40 +0200)]
UI: Outliner Filter popover layout

  - Use checkboxes with aligned text
  - Use icons next to the checkboxes
  - Remove wrong use of icons
  - Better grouping

3 months agoSound: Port more cases to be a part of dependency graph
Sergey Sharybin [Mon, 6 May 2019 10:46:14 +0000 (12:46 +0200)]
Sound: Port more cases to be a part of dependency graph

Mainly covers RNA callbacks which were still doing direct scene update,
which was causing crashes. Now corresponding ID_RECALC flags are used,
so all scenes can update accordingly.

Also tested animated volume/pitch on strips, which now works as well.

Fixes T64133: Assert after changing FPS
Fixes T64154: Immediate crash when changing the current frame on the timeline
Fixes T64185: Client Crashes when the frame position value is changed
Fixes T64190: Blender Crash using Timeline Editor
Fixes T64128: Click to close bug type on timeline
Fixes T64147: Crash when setting current frame from Python
Fixes T64152: Blender Auto-Close on timeline change

3 months agoColor management: add functions to detect scene linear and sRGB color spaces
Brecht Van Lommel [Sun, 5 May 2019 11:14:37 +0000 (13:14 +0200)]
Color management: add functions to detect scene linear and sRGB color spaces

Same as the ones in Cycles, but intended for GPU textures.

3 months agoFix error running Eevee render tests
Brecht Van Lommel [Sun, 5 May 2019 16:31:49 +0000 (18:31 +0200)]
Fix error running Eevee render tests

3 months agoUI: disable colored icons in menus for now
Brecht Van Lommel [Mon, 6 May 2019 09:50:50 +0000 (11:50 +0200)]
UI: disable colored icons in menus for now

Only a few icons are colored, which caused some random icons to be colored and
others not. We can add it back for specific menus later (like add object or

3 months agoUI: File Browser bookmarks panels
William Reynish [Mon, 6 May 2019 09:56:55 +0000 (11:56 +0200)]
UI: File Browser bookmarks panels

  - Group these together in sub-panels
  - Use much clearer naming
  - Close Volumes and Recents by default

3 months agoUI: Icons update
William Reynish [Mon, 6 May 2019 09:54:46 +0000 (11:54 +0200)]
UI: Icons update

New icons from Andrzej Ambroż / jendrzych:

  - New icons for select tool modes
  - Brought back screen icon for viewport visibility toggles
  - Added new Instanced visibility toggle (unused currently - meant for forthcoming updates to the Outliner)
  - New Gizmo icon for the header
  - Many tweaks and alterations to existing icons. Full list on Devtalk
  - Use correct icon when Proportional Editing is disabled

3 months agoSound: Fix access wrong dependency graph
Sergey Sharybin [Mon, 6 May 2019 09:29:25 +0000 (11:29 +0200)]
Sound: Fix access wrong dependency graph

Due to some fields in the context being NULL access was happening
to the default view layer, not the active one.

Simply re-arranged context initialization, so it happens before
accessing dependnecy graph.

Fixes T64183: Crash in BKE_sound_scene_playing due to Scene NULL
Fixes T64192: Crash opening a file with a non-default View Layer active

3 months agoDepsgraph: Fix wrong comment
Sergey Sharybin [Mon, 6 May 2019 08:03:22 +0000 (10:03 +0200)]
Depsgraph: Fix wrong comment

3 months agoImplement mirroring in pose mode (absolute and relative)
Sebastian Parborg [Mon, 6 May 2019 07:47:45 +0000 (09:47 +0200)]
Implement mirroring in pose mode (absolute and relative)

Added working X-mirroring in pose mode with an optional relative mirror

Reviewed By: Campbell Barton

Differential Revision:

3 months agoFix T64178: Invisible image 2D cursor
Campbell Barton [Mon, 6 May 2019 02:55:54 +0000 (12:55 +1000)]
Fix T64178: Invisible image 2D cursor

Own error in 928becec60d16, move cursor drawing to single location.

3 months agoCleanup: clang-format
Campbell Barton [Mon, 6 May 2019 01:59:03 +0000 (11:59 +1000)]
Cleanup: clang-format

3 months agoUI: Tooltips
William Reynish [Sun, 5 May 2019 19:36:12 +0000 (21:36 +0200)]
UI: Tooltips

  - Add missing tooltips to Quick Effects and Subdivide Edge Ring
  - Add proper tooltip to the Bevel operator
  - Clearer tooltips for the extrude operators

Plus a few other tweaks

Suggested by users on Devtalk.

3 months agoIndustry Compat keymap: Remove ability to cancel knife with right click.
William Reynish [Sun, 5 May 2019 18:49:25 +0000 (20:49 +0200)]
Industry Compat keymap: Remove ability to cancel knife with right click.

Was too easy to do by mistake while attempting to zoom.

Unfortunately it seems like it's not currently possible to add zooming to the Knife modal keymap, so this is still missing here.

3 months agoRNA: add an Object method to clear all shape keys for completeness.
Alexander Gavrilov [Sun, 5 May 2019 15:58:25 +0000 (18:58 +0300)]
RNA: add an Object method to clear all shape keys for completeness.

This matches bpy.ops.object.shape_key_remove(all=True) in behavior.

3 months agoIndustry Compat Keymap: Fix Select All operators in the Info Editor
William Reynish [Sun, 5 May 2019 15:42:18 +0000 (17:42 +0200)]
Industry Compat Keymap: Fix Select All operators in the Info Editor

Patch by Valentin (Poulpator)

Differential Revision:

3 months agoDepsgraph: fix Bone property drivers stored in Object animdata.
Alexander Gavrilov [Sat, 4 May 2019 17:12:19 +0000 (20:12 +0300)]
Depsgraph: fix Bone property drivers stored in Object animdata.

This can easily happen if adding drivers through Python via
pose.bones[...].bone.driver_add(), e.g. in Rigify code: the
bone field doesn't change id_data, so the driver is associated
with the object ID.

To handle this it's necessary to skip from Object to data in
RNA_Bone-specific code both for generic RNA and in the custom
code for drivers. The latter also had to be changed to use the
proper parsed RNA pointer instead of string matching on paths.

3 months agoGPencil: Verify brush is valid for grease pencil
Antonioya [Sun, 5 May 2019 07:10:44 +0000 (09:10 +0200)]
GPencil: Verify brush is valid for grease pencil

Usually the brush type is correct, but for some old files the brush could be a not valid type. In this case, returns the object active material.

This is related to T61413

3 months agoCleanup: fallthrough attribute warning
Campbell Barton [Sun, 5 May 2019 02:13:10 +0000 (12:13 +1000)]
Cleanup: fallthrough attribute warning

Fall-through without label or default after it.

3 months agoSound: add stubs to build without audaspace
Campbell Barton [Sun, 5 May 2019 02:28:16 +0000 (12:28 +1000)]
Sound: add stubs to build without audaspace

3 months agoFix T63789: Precision issues in glsl noise texture
mano-wii [Sat, 4 May 2019 19:44:44 +0000 (16:44 -0300)]
Fix T63789: Precision issues in glsl noise texture

There is a significant precision loss when converting large float values to int.

3 months agoSound: Make sure spin lock is initialized for new sound datablocks
Sergey Sharybin [Sat, 4 May 2019 18:34:56 +0000 (20:34 +0200)]
Sound: Make sure spin lock is initialized for new sound datablocks

Should have been done as a part of 9f681bea68f.

3 months agoSound: Delay creating sound scene handle for until is needed
Sergey Sharybin [Sat, 4 May 2019 17:20:41 +0000 (19:20 +0200)]
Sound: Delay creating sound scene handle for until is needed

Solves crash loading volume Cycles regression files.

3 months agoFix T64144: Crash when displaying audio waveforms in VSE
Sergey Sharybin [Sat, 4 May 2019 17:15:15 +0000 (19:15 +0200)]
Fix T64144: Crash when displaying audio waveforms in VSE

3 months agoFix T64143: Crash when scrubbing in the graph editor
Sergey Sharybin [Sat, 4 May 2019 16:53:59 +0000 (18:53 +0200)]
Fix T64143: Crash when scrubbing in the graph editor

3 months agoCycles: Fix NULL instead of false
Sergey Sharybin [Sat, 4 May 2019 16:49:37 +0000 (18:49 +0200)]
Cycles: Fix NULL instead of false

Not really noticeable for users, since the compiled code is the same,
but semantically this is incorrect.

3 months agoFix T64045: Crash activating fullscreen workspace
Julian Eisel [Sat, 4 May 2019 13:27:31 +0000 (15:27 +0200)]
Fix T64045: Crash activating fullscreen workspace

See d83a72ec104ce9.

3 months agoUI: Add Split and Separate to the mesh editing context menus
William Reynish [Sat, 4 May 2019 13:12:20 +0000 (15:12 +0200)]
UI: Add Split and Separate to the mesh editing context menus

3 months agoUI: Add color and blending to paint mode context menus
William Reynish [Sat, 4 May 2019 13:03:42 +0000 (15:03 +0200)]
UI: Add color and blending to paint mode context menus

3 months agoIndustry Compat Keymap: Set Proportional Editing to B key
William Reynish [Sat, 4 May 2019 12:35:40 +0000 (14:35 +0200)]
Industry Compat Keymap: Set Proportional Editing to B key

Same as popular DCC app.

This means having to change Bevel to Ctrl/Cmd-B

Also fix missing shortcut for Extrude in Curve Edit mode.

3 months agoUI: Add Look Developer Balls Size option
George Vogiatzis [Sat, 4 May 2019 12:03:51 +0000 (14:03 +0200)]
UI: Add Look Developer Balls Size option

Note: Some adjustments were made compared to the diff mainly for code
readability and made the default ball size 150px.

Reviewed By: fclem

Differential Revision:

3 months agoCleanup: GPU_buffers: Remove obsolete debug drawing
Clément Foucault [Fri, 3 May 2019 23:44:55 +0000 (01:44 +0200)]
Cleanup: GPU_buffers: Remove obsolete debug drawing

3 months agoCleanup: Eevee: Remove Flat normal shader variation
Clément Foucault [Fri, 3 May 2019 23:42:50 +0000 (01:42 +0200)]
Cleanup: Eevee: Remove Flat normal shader variation

Was use by sculpt mode but that's not used anymore.

3 months agoCleanup: Remove unused code in sculpt_mode, workbench and draw manager
Clément Foucault [Fri, 3 May 2019 23:41:39 +0000 (01:41 +0200)]
Cleanup: Remove unused code in sculpt_mode, workbench and draw manager

3 months agoSculpt: Refactor draw manager sculpt drawing mechanism
Clément Foucault [Fri, 3 May 2019 23:39:35 +0000 (01:39 +0200)]
Sculpt: Refactor draw manager sculpt drawing mechanism

Workbench/Eevee now displays multiple multi-materials correctly.

Iterate over pbvh nodes when doing object iteration. This makes the
rendering process more streamlined and allow for using different materials.

This change will make possible to:
- Add culling pass of each pbvh leaf node. (speedup if zoomed on a small
- Reduce number of lead node iteration.
- Reduce code complexity

3 months agoGPUBuffers: Save / expose material index per buffers
Clément Foucault [Fri, 3 May 2019 22:46:26 +0000 (00:46 +0200)]
GPUBuffers: Save / expose material index per buffers

3 months agoFix T64102: Can't add X-Mirror to quick favorites
Campbell Barton [Fri, 3 May 2019 10:58:49 +0000 (20:58 +1000)]
Fix T64102: Can't add X-Mirror to quick favorites

3 months agoCleanup: unused vars
Campbell Barton [Sat, 4 May 2019 00:56:33 +0000 (10:56 +1000)]
Cleanup: unused vars

3 months agoUI: Dynamic region size for file browser options
Julian Eisel [Fri, 3 May 2019 21:09:47 +0000 (23:09 +0200)]
UI: Dynamic region size for file browser options

Makes the file browser operator property region (lower left) dynamically
sized to content. Previously, the default size would work really badly
for file browsers opened in small windows, e.g. to install Add-ons from
the preferences window. It would be mostly empty but use lots of space

3 months agoFix crash in background rendering after recent sound changes
Brecht Van Lommel [Fri, 3 May 2019 17:44:49 +0000 (19:44 +0200)]
Fix crash in background rendering after recent sound changes

3 months agoFix Cycles crash when trying to load image that does not exist
Brecht Van Lommel [Fri, 3 May 2019 17:07:22 +0000 (19:07 +0200)]
Fix Cycles crash when trying to load image that does not exist

It was crashing due to array out of bounds access. This is not a great fix,
but brings back behavior the same as before now. Perhaps images that failed
to load should be stored separately somewhere.

3 months agoGPencil: Add stroke color to Materials Popover
Antonioya [Fri, 3 May 2019 16:43:11 +0000 (18:43 +0200)]
GPencil: Add stroke color to Materials Popover

This makes more easy to manage the color, specially for advanced brushes with pinned materials.

Reviewers: @pepeland, @mendio

3 months agoUI: color icons in the properties editor tabs
Brecht Van Lommel [Fri, 3 May 2019 16:20:35 +0000 (18:20 +0200)]
UI: color icons in the properties editor tabs

Still can use more tweaks and icon reorganization, but this gets us closer
to the intended design so we can evaluate it. Ref T61561, T63521.

3 months agoFix Cycles assert on exit after recent changes
Brecht Van Lommel [Fri, 3 May 2019 15:42:08 +0000 (17:42 +0200)]
Fix Cycles assert on exit after recent changes

3 months agoSound: Fix for being unable to jump to a frame during playback with A/V sync
Sergey Sharybin [Fri, 3 May 2019 15:47:44 +0000 (17:47 +0200)]
Sound: Fix for being unable to jump to a frame during playback with A/V sync

3 months agoUI: Fix crash when region becomes too thin
Jacques Lucke [Fri, 3 May 2019 15:42:45 +0000 (17:42 +0200)]
UI: Fix crash when region becomes too thin

3 months agoSound: More fixes for access of original scene
Sergey Sharybin [Fri, 3 May 2019 15:27:13 +0000 (17:27 +0200)]
Sound: More fixes for access of original scene

Same as previous commit, just few lines to the bottom.

3 months agoSound: Fix access original scene during playback
Sergey Sharybin [Fri, 3 May 2019 15:19:24 +0000 (17:19 +0200)]
Sound: Fix access original scene during playback

Was required to have AV-sync enabled. and then simply play playback
would have triggered an assert.

In release builds the sync would have happened to a wrong frame.

3 months agofix image_changed() doing unneccessary texture updates when texture wasnt
Philipp Oeser [Fri, 3 May 2019 09:18:32 +0000 (11:18 +0200)]
fix image_changed() doing unneccessary texture updates when texture wasnt
using an image

Reviewers: brecht

Differential Revision:

3 months agoCleanup: Selling in comment
Sergey Sharybin [Fri, 3 May 2019 08:19:08 +0000 (10:19 +0200)]
Cleanup: Selling in comment

3 months agoDepsgraph: Make comment about evaluation more obvious
Sergey Sharybin [Fri, 3 May 2019 07:49:15 +0000 (09:49 +0200)]
Depsgraph: Make comment about evaluation more obvious

3 months agoSound: Make sound handles only be in evaluated datablocks
Sergey Sharybin [Thu, 2 May 2019 12:31:33 +0000 (14:31 +0200)]
Sound: Make sound handles only be in evaluated datablocks

Quite straightforward change, which makes it so audio handles are
only created inside of evaluated datablocks.

Exception is adding sound strip to the sequencer, which needs an
audio handle to query length and number of channels. This is done
by temporarily loading sound file into an original datablock, and
then tossing it away.

There is an assert in sound.c which verifies that audio system is
used from an evaluated domain, which should help porting all the
cases which are likely missed by this commit.

Some annoying parts:

- `BKE_sound_update_scene()` is iterating over all bases, and does
  special ID tags to see whether sound has been handled or not
  already. This can not be done the old fashion now.

  Ideally, this will be done as a speaker datablock evaluation,
  but seems that would require a lock since audio API is not safe
  for threading. So this is not a desired way i'd say.

  Possible solution here would be to iterate over ID datablocks
  using dependency graph query API.

- Frame jump needs to call `BKE_sound_seek_scene()` directly
  because there might be some flags assigned to the scene which
  could be clear after operator execution is over.

  Need to verify if that's the case though. This is a bit hairy
  code, so sticking to a safest and known to work approach for

- Removed check for format when opening new sound file.
  Maybe we can have some utility function which queries channel
  and duration information, leaving the caller's code clean and

Tested following cases:
- Adding/removing/moving sequencer's sound strips.
- Adding/moving speakers in viewport.
- Rendering audio.

Reviewers: brecht

Differential Revision:

3 months agoDepsgraph: Preserve sound and audio pointers through copy-on-write
Sergey Sharybin [Thu, 2 May 2019 09:14:10 +0000 (11:14 +0200)]
Depsgraph: Preserve sound and audio pointers through copy-on-write

This allows to have scene and speaker copy-on-write executed without
interrupting the playing sound.

3 months agoDepsgraph: Store original sequencer strip pointer
Sergey Sharybin [Thu, 2 May 2019 08:17:25 +0000 (10:17 +0200)]
Depsgraph: Store original sequencer strip pointer

Allows to identify where the strip came from.

3 months agoSound: Move evaluation to dependency graph
Sergey Sharybin [Wed, 1 May 2019 13:57:16 +0000 (15:57 +0200)]
Sound: Move evaluation to dependency graph

The sound handles are still in the original datablocks, so it's easier
to test since there should be no functional changes.

3 months agoSound: Delay opening handlers for until really needed
Sergey Sharybin [Wed, 1 May 2019 13:12:38 +0000 (15:12 +0200)]
Sound: Delay opening handlers for until really needed

Needs to be done in order to localize sound handlers to the evaluated
IDs only. This commit might not be fully optimal, since it does more
things on every scene update request, but that will be solved by the
upcoming change which will put those updates to a dependency graph.

3 months agoDepsgraph: Add scene audio component
Sergey Sharybin [Wed, 1 May 2019 10:46:47 +0000 (12:46 +0200)]
Depsgraph: Add scene audio component

The idea is to make that responsible for dealing with
things like audio update on frame jump and such.

3 months agoDepsgraph: Tag sequencer for update on changes
Sergey Sharybin [Wed, 1 May 2019 10:10:32 +0000 (12:10 +0200)]
Depsgraph: Tag sequencer for update on changes

Currently only adding, removing and transforming strips. Most likely more
tags is needed.