blender.git
2 months agoMerge branch 'blender2.7'
Brecht Van Lommel [Sun, 7 Apr 2019 00:42:38 +0000 (02:42 +0200)]
Merge branch 'blender2.7'

2 months agoFix build error with Visual Studio, appears to be a compiler bug
Brecht Van Lommel [Sun, 7 Apr 2019 00:38:03 +0000 (02:38 +0200)]
Fix build error with Visual Studio, appears to be a compiler bug

It's not clear that "if (0 &&" was introduced intentionally, but this test
only seems to have been an insignificant optimization anyway.

Fixes T63329

2 months agoFix T59014: black/corrupted viewport with Intel HD on Windows 7/8.
Brecht Van Lommel [Sat, 6 Apr 2019 12:23:25 +0000 (14:23 +0200)]
Fix T59014: black/corrupted viewport with Intel HD on Windows 7/8.

Work around bug in the Intel driver:
https://software.intel.com/en-us/forums/graphics-driver-bug-reporting/topic/550740

2 months agoGHOST: tweak warning message about OpenGL 3.3.
Brecht Van Lommel [Sat, 6 Apr 2019 12:08:08 +0000 (14:08 +0200)]
GHOST: tweak warning message about OpenGL 3.3.

2 months agoDRW: Opti: Fix hotspot in DRW_mesh_batch_cache_get_surface_shaded
Clément Foucault [Fri, 5 Apr 2019 23:55:21 +0000 (01:55 +0200)]
DRW: Opti: Fix hotspot in DRW_mesh_batch_cache_get_surface_shaded

The hotspot was generated by mesh_cd_layers_type_overlap who was testing
way more data than it should have.

Here we reduce the whole CD layer mask to a 32bit bitflag that is easily
or'ed and tested.

Bonus point: We use atomic operation to merge the mask in order to allow
future multi-threading. (this was a TODO)

In the scene attached to T58188 this removes 5% of CPU time.

2 months agoGPU: Fix typo
Clément Foucault [Fri, 5 Apr 2019 18:46:13 +0000 (20:46 +0200)]
GPU: Fix typo

2 months agoDRW: Opti: Replace bound tex/ubo tracking array by bitfields
Clément Foucault [Fri, 5 Apr 2019 18:45:32 +0000 (20:45 +0200)]
DRW: Opti: Replace bound tex/ubo tracking array by bitfields

release_texture_slots() and release_ubo_slots() were one hotspot when
drawing taking ~9% of total CPU counters for no reason.

This was because of the loops using GPU_max_textures that was overkill and
slow.

Replace those by a simple 64bit bitwise OR operation.

2 months agoCleanup: Fix compiler warning
Antonioya [Fri, 5 Apr 2019 16:50:13 +0000 (18:50 +0200)]
Cleanup: Fix compiler warning

2 months agoFix T61035 Draw manager crash opening file with curves
Clément Foucault [Fri, 5 Apr 2019 15:48:14 +0000 (17:48 +0200)]
Fix T61035 Draw manager crash opening file with curves

Move free callback call to GPU_batch_discard to prevent the crash.

The issue was that clearing can happen after referencing to an instance
buffer and that's perfectly legal.

2 months agoFix T63281: Drivers inside nodegroups inside nodegroups don't show up in Driver Editor
Sebastian Parborg [Fri, 5 Apr 2019 14:28:34 +0000 (16:28 +0200)]
Fix T63281: Drivers inside nodegroups inside nodegroups don't show up in Driver Editor

Recurse into node groups when looking for drivers.

Reviewed By: Brecht

Differential Revision: http://developer.blender.org/D4653

2 months agoEEVEE: Fix compilation
Jeroen Bakker [Fri, 5 Apr 2019 13:02:55 +0000 (15:02 +0200)]
EEVEE: Fix compilation

Introduced by f0d6879f5c7998be98ac406bd6ddaa5104961206

2 months agoFix T63283: Second subdivision modifier does not ignore crease
Sergey Sharybin [Fri, 5 Apr 2019 12:13:05 +0000 (14:13 +0200)]
Fix T63283: Second subdivision modifier does not ignore crease

This is something where there is no single correct behavior,
sometimes it's needed to ignore the crease to make mesh more
smooth. But sometimes crease is to be considered after first
subdivision surface: for example, when adding extra subdivisions
for render-time displacement.

Made it an option whether modifier needs to take crease into
account or not.

Existing files should be openable in the 2.7 compatible way,
to re-create an old behavior the options is to be manually
disabled in the modifier settings.

Reviewers: brecht

Reviewed By: brecht

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

2 months agoGPU not able to allocate texture
Jeroen Bakker [Fri, 5 Apr 2019 10:53:26 +0000 (12:53 +0200)]
GPU not able to allocate texture

In the case of the report a GL_PROXY_TEXTURE_2D_ARRAY of 2509x2509x1 failed to be allocated.
This is a work around as the GL_PROXY_TEXTURE_* is not reliable.

Reviewed By: brecht, fclem

Maniphest Tasks: T63223

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

2 months agoFix T62892 EEVEE HDRI lightning glitch
Clément Foucault [Fri, 5 Apr 2019 12:37:38 +0000 (14:37 +0200)]
Fix T62892 EEVEE HDRI lightning glitch

Clamp the texture at sampling time. This is not the best way to do it but
this is the fastest/simplest. The cost is rather negligeable.

2 months agoInterface: New region type 'Footer', used by text editor
George Vogiatzis [Fri, 5 Apr 2019 11:48:26 +0000 (13:48 +0200)]
Interface: New region type 'Footer', used by text editor

* It can be hidden by dragging it up/down.
* It can be at the top or bottom, independent of the header.
* It uses the color theme from the header.
* It does not change its color, when the area becomes active.

Currently, it is used in the text editor to display the file path.

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

2 months agoCleanup: Replace deprecated finite with isfinite
Simon [Fri, 5 Apr 2019 11:41:28 +0000 (13:41 +0200)]
Cleanup: Replace deprecated finite with isfinite

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

2 months agoCleanup: Spelling
Sergey Sharybin [Fri, 5 Apr 2019 10:52:57 +0000 (12:52 +0200)]
Cleanup: Spelling

2 months agoFix T60390: add Cycles texture node mapping settings to node editor sidebar
Brecht Van Lommel [Fri, 5 Apr 2019 10:47:34 +0000 (12:47 +0200)]
Fix T60390: add Cycles texture node mapping settings to node editor sidebar

These were missing from the UI previously.

2 months agoFix T63292: Crash Workbench Texture Drawing
Jeroen Bakker [Fri, 5 Apr 2019 09:26:48 +0000 (11:26 +0200)]
Fix T63292: Crash Workbench Texture Drawing

2 months agoGPencil: Improve drawing feeling in big files
Antonioya [Fri, 5 Apr 2019 09:26:04 +0000 (11:26 +0200)]
GPencil: Improve drawing feeling in big files

When drawing in big files, the first points of the stroke were not smooth because the system was doing a copy of the depsgraph datablock.

Now, the depsgraph is not updated at the beginning and the feeling is far better, especially for big files.

To avoid the copy, the original datablock is used while drawing, because it's faster the lookup of the original data, than a full datablock copy.

Also some cleanup of the code.

2 months agoFix T60379: Cycles viewport adaptive subdivision hangs after updates.
Brecht Van Lommel [Thu, 4 Apr 2019 18:06:22 +0000 (20:06 +0200)]
Fix T60379: Cycles viewport adaptive subdivision hangs after updates.

The camera world to raster computation was using wrong values. Also fixes
update when changing subdivision scene settings.

2 months agoWorkbench: Support Transparency + Textures
Jeroen Bakker [Thu, 4 Apr 2019 11:47:18 +0000 (13:47 +0200)]
Workbench: Support Transparency + Textures

When texture drawing was enabled the fallback materials were not transparent.
The reason was that the solid material was requested. This patch will requesting
in this case the material from the forward renderer.

Fix: T63077

Reviewed By: fclem

Maniphest Tasks: T63077

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

2 months agoFix T63108 Eevee: Wrong Reflection plane matrix if camera view is not centered
Clément Foucault [Thu, 4 Apr 2019 16:08:42 +0000 (18:08 +0200)]
Fix T63108 Eevee: Wrong Reflection plane matrix if camera view is not centered

Invert X axis of the Window Matrix (AKA Projection matrix) instead of the
View matrix.

2 months agoFix T63198 Eevee: Indirect lighting settings arent not updating in Lookdev
Clément Foucault [Thu, 4 Apr 2019 15:58:35 +0000 (17:58 +0200)]
Fix T63198 Eevee: Indirect lighting settings arent not updating in Lookdev

This was caused by a missing check for those option.

2 months agoFix T63278 Eevee: LookDev: Volumetric on even if Scene World is off
Clément Foucault [Thu, 4 Apr 2019 15:17:40 +0000 (17:17 +0200)]
Fix T63278 Eevee: LookDev: Volumetric on even if Scene World is off

2 months agoFix segfault when audio system cannot be initialised
Sybren A. Stüvel [Thu, 4 Apr 2019 15:58:13 +0000 (17:58 +0200)]
Fix segfault when audio system cannot be initialised

`PyInit_aud()` can return `NULL` for variour reasons. When that happens,
we shouldn't continue.

2 months agoFix T61830: Remove option to add new keymap item in search mode
Jacques Lucke [Thu, 4 Apr 2019 15:37:24 +0000 (17:37 +0200)]
Fix T61830: Remove option to add new keymap item in search mode

This was not working well, because the search text was removed
after pressing this button. Finding the item that was inserted
was not easy.

Removing the option seems to be the best solution for now.

2 months agoEEVEE+Workbench: Show partsys in final rendering
Jeroen Bakker [Thu, 4 Apr 2019 13:07:30 +0000 (15:07 +0200)]
EEVEE+Workbench: Show partsys in final rendering

In final rendering mode the display type was tested for
visibility flag. This should only occus when doing viewport
rendering

Reviewed By: fclem

Maniphest Tasks: T63056

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

2 months agoFix T63256: Make Dupli Face was broken since there are collections
Jacques Lucke [Thu, 4 Apr 2019 14:37:55 +0000 (16:37 +0200)]
Fix T63256: Make Dupli Face was broken since there are collections

2 months agoFix T60891: bgl docs still include deprecated opengl functions
Jacques Lucke [Thu, 4 Apr 2019 14:11:14 +0000 (16:11 +0200)]
Fix T60891: bgl docs still include deprecated opengl functions

In a separate step, all new functions should be added.
However, the best way to do this, is not clear yet.
A list of functions, that have to be added is available
in D4280.

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

2 months agoFix T63252: Bind in Mesh Deform Modifier fails
Sergey Sharybin [Thu, 4 Apr 2019 12:42:33 +0000 (14:42 +0200)]
Fix T63252: Bind in Mesh Deform Modifier fails

A regression since 64c8d72ef1ad.

The solution is to force modifier evaluation for an evaluated
object, and let it to copy binding data back to original when
is being evaluated for binding.

Reviewers: brecht

Reviewed By: brecht

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

2 months agoFix T63276: crash deleting object with alembic constraint.
Brecht Van Lommel [Thu, 4 Apr 2019 13:07:37 +0000 (15:07 +0200)]
Fix T63276: crash deleting object with alembic constraint.

2 months agoFix ply import tests.
Howard Trickey [Thu, 4 Apr 2019 12:50:17 +0000 (08:50 -0400)]
Fix ply import tests.

The function for clearing out objects in the startup file
needed updating for 2.8 collections api.

2 months agoFix part of T62720: crash loading alembic mesh that has no vertices.
Brecht Van Lommel [Thu, 4 Apr 2019 12:26:47 +0000 (14:26 +0200)]
Fix part of T62720: crash loading alembic mesh that has no vertices.

2 months agoDRW: Fix hair count being limited by recent refactor
Clément Foucault [Thu, 4 Apr 2019 12:43:54 +0000 (14:43 +0200)]
DRW: Fix hair count being limited by recent refactor

This was making Autumn being half naked.

Issue was introduced by rBe72dc667c4d3

2 months agoEevee: Add property update for render settings
Clément Foucault [Thu, 4 Apr 2019 12:19:32 +0000 (14:19 +0200)]
Eevee: Add property update for render settings

This was preventing the viewport update when the properties were changed
via scripting.

2 months agoFix T63000: Don't use original file name for autosave
Jacques Lucke [Thu, 4 Apr 2019 12:38:18 +0000 (14:38 +0200)]
Fix T63000: Don't use original file name for autosave

Reviewers: brecht

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

2 months agoAvoid flow to avoid the collection textfield from becoming too small
Jeroen Bakker [Thu, 4 Apr 2019 12:01:29 +0000 (14:01 +0200)]
Avoid flow to avoid the collection textfield from becoming too small

The collection instance field is currently using flow.column(), which makes the name of the collection instance unreadably small. {F6898084}
I get that we want to save vertical space to avoid scrolling, but in this case it generates a new problem, so I'd rather avoid flow here.

Patch by sebastian_k

Reviewed By: billreynish

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

2 months agoFix T62870: progress in taskbar not updated when cancelling render
Brecht Van Lommel [Thu, 4 Apr 2019 11:46:04 +0000 (13:46 +0200)]
Fix T62870: progress in taskbar not updated when cancelling render

2 months agoFix: Erratic collision response when using constraints on colliders
Benjamin Meyer [Thu, 4 Apr 2019 08:39:12 +0000 (10:39 +0200)]
Fix: Erratic collision response when using constraints on colliders

Missing dependency, which made collission to access object transform
prior it was evaluated.

Reviewers: sergey

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

2 months agoCleanup: remove B-Bone shape pointers from bPoseChanDeform.
Alexander Gavrilov [Thu, 4 Apr 2019 08:18:40 +0000 (11:18 +0300)]
Cleanup: remove B-Bone shape pointers from bPoseChanDeform.

They are pointless copies from pchan->runtime by now.

2 months agoSeparation lines for Quad View
Harley Acheson [Wed, 3 Apr 2019 23:25:43 +0000 (01:25 +0200)]
Separation lines for Quad View

Reviewers: brecht, billreynish, fclem

Reviewed By: billreynish, fclem

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

2 months agoFix T63255: Crash when circle select performs selection outside the viewport's bounds.
mano-wii [Wed, 3 Apr 2019 23:05:59 +0000 (20:05 -0300)]
Fix T63255: Crash when circle select performs selection outside the viewport's bounds.

2 months agoFix T61870 Eevee: Object's go completely black if they have a normal map
Clément Foucault [Wed, 3 Apr 2019 22:51:03 +0000 (00:51 +0200)]
Fix T61870 Eevee: Object's go completely black if they have a normal map

The problem was that tangent layers (being computed on demand in the batch
cache generation) were generated but if MR_DATATYPE_LOOPTRI was not present
(in some cases) and the looptri_len was 0, leaving the CDATA layer cleared.

2 months agoDRW: Mesh Batch Cache: Fix error in loop custom data layer checking
Clément Foucault [Wed, 3 Apr 2019 21:46:32 +0000 (23:46 +0200)]
DRW: Mesh Batch Cache: Fix error in loop custom data layer checking

2 months agoCleanup: redundant casts
Campbell Barton [Wed, 3 Apr 2019 21:15:26 +0000 (08:15 +1100)]
Cleanup: redundant casts

2 months agoCleanup: style
Campbell Barton [Wed, 3 Apr 2019 21:13:13 +0000 (08:13 +1100)]
Cleanup: style

2 months agoFix T55589, T60967: Windows pen pressure issues at start/end of the stroke.
Christopher Peerman [Wed, 3 Apr 2019 14:36:28 +0000 (16:36 +0200)]
Fix T55589, T60967: Windows pen pressure issues at start/end of the stroke.

The new implementation uses WM_POINTERDOWN, WM_POINTERUP and WM_POINTERUPDATE
and the pointer API to process stylus events. This avoids the delays that comes
with the WM_MOUSE and WM_xBUTTON events. The implementation should work on
Windows 8, and Windows 10 with both legacy and new pen interaction.

It also changes how the pressure is reset when the Windows Ink implementation
is enabled. The previous version reset the pressure to full when the pen left
the screen, however for some hardware implementations this allowed a small
window where Blender may process the final move event and read the pressure
as full leaving a dot on the last event.

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

2 months agoWindows: use Wintab by default if it's available and a device is detected.
Brecht Van Lommel [Wed, 3 Apr 2019 15:09:54 +0000 (17:09 +0200)]
Windows: use Wintab by default if it's available and a device is detected.

Previously Automatic tablet API mode would handle both Windows Ink and
Wintab events. This is unpredictable and causes problems with the fix
coming in the next commit.

Instead assume that in most cases where Windows Ink is desired there
will be no Wintab. If that's not the case, it can be adjusted under
Preferences > Input > Tablet.

2 months agoFix T63257: Grease Pencil renders incorrectly when in edit-mode
Antonioya [Wed, 3 Apr 2019 17:58:32 +0000 (19:58 +0200)]
Fix T63257: Grease Pencil renders incorrectly when in edit-mode

2 months agoAudaspace: merging modulator effect from upstream.
Jörg Müller [Wed, 3 Apr 2019 17:56:25 +0000 (19:56 +0200)]
Audaspace: merging modulator effect from upstream.

2 months agofix for freetype download link and llvm/clang header harvesting
Martin Felke [Wed, 3 Apr 2019 16:51:42 +0000 (18:51 +0200)]
fix for freetype download link and llvm/clang header harvesting

2 months agoFix T62780 , T59802, T57648: fullscreen window issues on Windows.
Brecht Van Lommel [Wed, 3 Apr 2019 14:01:20 +0000 (16:01 +0200)]
Fix T62780 , T59802, T57648: fullscreen window issues on Windows.

This fixes popups and preferences appearing behind the main window, as
well as flickering artifacts when Blender is in fullscreen.

Patch contributed by phocomelus.

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

2 months agoUI: remove close button from Windows console window.
Harley Acheson [Wed, 3 Apr 2019 13:51:48 +0000 (15:51 +0200)]
UI: remove close button from Windows console window.

This way you can't accidentally close Blender when toggling the console
window to be visible. When Blender is started from the command promt the
close button remains.

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

2 months agoMultires: Make topology cache to work with copy-on-write
Sergey Sharybin [Wed, 3 Apr 2019 14:11:57 +0000 (16:11 +0200)]
Multires: Make topology cache to work with copy-on-write

Allows to preserve topology cache even when copy-on-write is
fully re-copying the object. For example, toggling edit mode
in and out does no longer causes full topology to be re-created.

2 months agoFix export_obj_cube test.
Howard Trickey [Wed, 3 Apr 2019 14:05:47 +0000 (10:05 -0400)]
Fix export_obj_cube test.

Verified that current export files for all_quads.blend are good,
then updated expected MD5 hash to match current files.

2 months agoReset background alpha for probe rendering.
Alexander Court [Wed, 3 Apr 2019 13:56:19 +0000 (15:56 +0200)]
Reset background alpha for probe rendering.
Possibly fixes T63005.

Reviewers: fclem

Reviewed By: fclem

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

2 months agoFix T63217: Curve Modifier skipped in Cycles
Sergey Sharybin [Wed, 3 Apr 2019 13:37:30 +0000 (15:37 +0200)]
Fix T63217: Curve Modifier skipped in Cycles

Only mesh objects have all modifiers applied on the evaluated
object's data, other object types are to apply modifiers during
the conversion process.

2 months agoFix T62939: Incorrect cursor position when exiting UI slider
Victor Seiji Hariki [Wed, 3 Apr 2019 13:14:57 +0000 (15:14 +0200)]
Fix T62939: Incorrect cursor position when exiting UI slider

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

2 months agoUI: Fix odd behavior in region sizing, simplify code
George Vogiatzis [Wed, 3 Apr 2019 12:53:57 +0000 (14:53 +0200)]
UI: Fix odd behavior in region sizing, simplify code

* When resizing sidebars, don't collapse when the region becomes too big but
  instead clamp the region size to the available space.
* Fix clicking the tab to expand sidebars no working if the sidebar is too
  wide to fit. Instead make it less wide so it does fit.
* Fix incorrect limit on tool properties region height, for example in the
  file browser.

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

2 months agodeps_builder : copy llvm headers to lib folder.
Ray Molenkamp [Wed, 3 Apr 2019 12:57:16 +0000 (06:57 -0600)]
deps_builder : copy llvm headers to lib folder.

Were not needed previously, but the functions branch needs them.

2 months agoFix T62817: Can't drive modifier property with another one
Sergey Sharybin [Wed, 3 Apr 2019 12:50:21 +0000 (14:50 +0200)]
Fix T62817: Can't drive modifier property with another one

Random place in the modifier stack can not be referenced,
so it doesn't make sense to sue GEOMETRY component as a
FROM operation.

So now drivers on modifiers are driving GEOMETRY component,
but are using PARAMETERS as a source for variables.

2 months agoGPencil: Implement custom channel color in Dopesheet
Antonioya [Wed, 3 Apr 2019 08:25:49 +0000 (10:25 +0200)]
GPencil: Implement custom channel color in Dopesheet

A new parameter in the layer adjustment panel allows to define the color of the channel in Dopesheet.

This is needed when there are a lot of layers.

See D4623 for more details.

2 months agoFix T63220: Cannot make object single user after Duplicate Scene with Link Object...
Bastien Montagne [Tue, 2 Apr 2019 19:50:17 +0000 (21:50 +0200)]
Fix T63220: Cannot make object single user after Duplicate Scene with Link Object Data.

Caused by own recent rB17c15798c35f33e (already a fix in that code).

We cannot erase immediately master_collection's childrn list, as it is
used in sub-code to check in how many scenes an object is instanciated.
Further more, we only want to do the remove old/add new children
collections in case we are actually duplicating them.

Makes me even more eager to nuke that whole piece of code and rethink
from scratch that kind of ID handling. Some day...

2 months agoPython API: expose text object kerning.
Damien Picard [Tue, 2 Apr 2019 17:11:03 +0000 (19:11 +0200)]
Python API: expose text object kerning.

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

2 months agoMerge branch 'blender2.7'
Sergey Sharybin [Tue, 2 Apr 2019 15:51:44 +0000 (17:51 +0200)]
Merge branch 'blender2.7'

2 months agoConstraints: Use RNA update instead of block update
Sergey Sharybin [Tue, 2 Apr 2019 15:44:18 +0000 (17:44 +0200)]
Constraints: Use RNA update instead of block update

Allows to have more control over which tags are done for which
properties.

This is a part of T62960 which fixes the issue in the 2.7 series.

2 months agoConstraints: Mark proxy lcoal as not editable
Sergey Sharybin [Tue, 2 Apr 2019 15:43:33 +0000 (17:43 +0200)]
Constraints: Mark proxy lcoal as not editable

This can not work reliably anyway.

2 months agoCleanup: Remove space at the end of description
Sergey Sharybin [Tue, 2 Apr 2019 15:42:30 +0000 (17:42 +0200)]
Cleanup: Remove space at the end of description

2 months agoFix T62434: EEVEE not using correct World Output node
Philipp Oeser [Tue, 2 Apr 2019 14:37:54 +0000 (16:37 +0200)]
Fix T62434: EEVEE not using correct World Output node

We were already getting the designated output node in
'ntreeGPUMaterialNodes()' but this wasnt used in 'ntreeExecGPUNodes()',
instead whatever node was tagged NODE_DO_OUTPUT was executed.

note: this is just the bare minimum to fix the bug, other improvements
previously done in D4482 might follow as a separate commit.

Reviewers: brecht, fclem

Maniphest Tasks: T62434

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

2 months agoCleanup: Fix compiler warning
Antonioya [Tue, 2 Apr 2019 15:02:10 +0000 (17:02 +0200)]
Cleanup: Fix compiler warning

2 months agoUI: Collapsed nodes have the same width as uncollapsed nodes
Robert Guetzkow [Tue, 2 Apr 2019 14:39:48 +0000 (16:39 +0200)]
UI: Collapsed nodes have the same width as uncollapsed nodes

Fixes T63079.

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

2 months agoFix Linux build error after recent changes.
Brecht Van Lommel [Tue, 2 Apr 2019 14:30:39 +0000 (16:30 +0200)]
Fix Linux build error after recent changes.

2 months agoCleanup: Scene Copy: remove scene's camera remapping in core func.
Bastien Montagne [Tue, 2 Apr 2019 14:20:56 +0000 (16:20 +0200)]
Cleanup: Scene Copy: remove scene's camera remapping in core func.

This is useless at that point, since no object has been duplicated yet...

2 months agoFix T62970: Scene Copy: remove 'linked objects/obdata', add 'linked collections'.
Bastien Montagne [Tue, 2 Apr 2019 14:15:17 +0000 (16:15 +0200)]
Fix T62970: Scene Copy: remove 'linked objects/obdata', add 'linked collections'.

'Linked objects' option was not behaving correctly before, effectively
linking in collections, so this one has been renamed to just 'Linked Copy',
and gives a fully shallow copy of current scene.

'Linked Obdata' was not really useful, kind of confusing, and was
painful to maintain, so dropping it now.

2 months agoFix broken BLI_STATIC_ASSERT on Visual Studio.
Brecht Van Lommel [Tue, 2 Apr 2019 13:49:07 +0000 (15:49 +0200)]
Fix broken BLI_STATIC_ASSERT on Visual Studio.

The old trick seems to no longer work in newer VS version.

2 months agoFix T63164: DNA size mismatches on 32bit, causing memory corruption and crashes.
Brecht Van Lommel [Tue, 2 Apr 2019 13:56:16 +0000 (15:56 +0200)]
Fix T63164: DNA size mismatches on 32bit, causing memory corruption and crashes.

Some alignment rules from Visual Studion on 32 bit are not taken into
account, this fixes the structs to confirm. We now have static asserts
to catch when such breakage happens in the future.

2 months agoFix T63219: error in previous commit for makesdna mismatch detection
Brecht Van Lommel [Tue, 2 Apr 2019 11:34:53 +0000 (13:34 +0200)]
Fix T63219: error in previous commit for makesdna mismatch detection

2 months agoDNA: add error for DNA computed struct sizes and member offsets mismatch.
Brecht Van Lommel [Tue, 2 Apr 2019 10:32:21 +0000 (12:32 +0200)]
DNA: add error for DNA computed struct sizes and member offsets mismatch.

Ref T63164, there was a hidden bug like this on Windows 32 bit.

2 months agoCleanup: remove DNA_PRIVATE_WORKSPACE hacks.
Brecht Van Lommel [Tue, 2 Apr 2019 11:21:21 +0000 (13:21 +0200)]
Cleanup: remove DNA_PRIVATE_WORKSPACE hacks.

This is just not practical to do for the code as a whole, and having it as an
exception for one specific data structure is not that helpful. This has only
been in the way for me when refactoring code.

2 months agoCleanup: Fix compiler warning
Antonioya [Tue, 2 Apr 2019 11:13:23 +0000 (13:13 +0200)]
Cleanup: Fix compiler warning

2 months agoFix T63120 Select random in particle edit mode is broken
Sebastian Parborg [Tue, 2 Apr 2019 10:35:16 +0000 (12:35 +0200)]
Fix T63120 Select random in particle edit mode is broken

Fix coding snafu where the variable keeping track of changes only took
the state of the last element into account.

2 months agoFix T63211: Can't move camera in viewport while realtime render mode on
Sergey Sharybin [Tue, 2 Apr 2019 09:38:55 +0000 (11:38 +0200)]
Fix T63211: Can't move camera in viewport while realtime render mode on

The issue is that Eevee directly evaluates animation on a datablock which
is a part of active dependency graph.

This is a broken logic by design and requires a complete revamp to support
more real life cases when camera is parented to a camera rig, but it is
beyond of what i can do with a simple bugfix.

2 months agoFix T61598: Python error from connect rigid body feature
Philipp Oeser [Tue, 2 Apr 2019 08:15:04 +0000 (10:15 +0200)]
Fix T61598: Python error from connect rigid body feature

needed update to 2.8

2 months agoFix T60199: Icon Viewer addon causes internal errors and slows text editor
Philipp Oeser [Fri, 29 Mar 2019 15:10:36 +0000 (16:10 +0100)]
Fix T60199: Icon Viewer addon causes internal errors and slows text editor

this just removes unused icon definitions [for which no icons exist
anymore]

Reviewers: billreynish, brecht

Maniphest Tasks: T60199

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

2 months agoCleanup: empty expression statement warning
Campbell Barton [Tue, 2 Apr 2019 06:54:04 +0000 (17:54 +1100)]
Cleanup: empty expression statement warning

2 months agoFix T63101: Blender crashes on adding any object to collection duplicated with added...
Bastien Montagne [Mon, 1 Apr 2019 19:10:25 +0000 (21:10 +0200)]
Fix T63101: Blender crashes on adding any object to collection duplicated with added scene.

Issue was that (deep) duplication code of scene ended up leaving
children collections of new master one without any parent.

Note that even though I think that fix is OK for now, we should really
make 'deep' duplication of IDs part of the generic ID management code.
Am less and less happy with current handling of this, done half from
/editors code, half from some semi-specialized helpers from /blenkernel,
with sometimes nearly the same logic replicated several times for
slightly different needs, etc. Unfortunately this would not be a small
refactor, so it will have to wait...

2 months agoEdit Mesh Selection: Clear out buffer that indicates out of bounds pixels.
mano-wii [Sun, 31 Mar 2019 18:58:29 +0000 (15:58 -0300)]
Edit Mesh Selection: Clear out buffer that indicates out of bounds pixels.

This prevents the use of uninitialized buffer.
In addition, use `memset` instead of assigning in a loop.

2 months agoGPencil: Handle vertex groups weights correctly
Antonioya [Mon, 1 Apr 2019 14:47:01 +0000 (16:47 +0200)]
GPencil: Handle vertex groups weights correctly

In extrude operator when the point was added, the weight data pointer was wrongly connected to old pointer.

Now, when move the data, the pointer is moved, but when a new point is added, the memory is duplicated to keep separated copies of the pointer.

This is related T62872

Thanks to @sergey for his help fixing this bug.

2 months agoCleanup: Indentation
Sergey Sharybin [Mon, 1 Apr 2019 14:33:28 +0000 (16:33 +0200)]
Cleanup: Indentation

Got broken in the previous commit somehow.

2 months agoFix memory leak in armatures with no bones
Sergey Sharybin [Mon, 1 Apr 2019 14:09:26 +0000 (16:09 +0200)]
Fix memory leak in armatures with no bones

The cleanup operation was never run for such armatures.

2 months agoCleanup: Spelling
Sergey Sharybin [Mon, 1 Apr 2019 13:33:09 +0000 (15:33 +0200)]
Cleanup: Spelling

2 months agoTweak behavior of object.to_mesh()
Sergey Sharybin [Wed, 27 Mar 2019 21:28:44 +0000 (22:28 +0100)]
Tweak behavior of object.to_mesh()

- Passing original object with apply_modifiers=false will give a
  non-modified non-deformed mesh.
  The result mesh will point to datablocks from the original "domain". For
  example, materials will be original.

- Passing original object with apply_modifiers=true will give a mesh which
  has all modifiers applied.
  The result mesh will point to datablocks from the original "domain". For
  example, materials will be original.

- Passing evaluated object will ignore apply_modifiers argument, and the
  result always contains all modifiers applied.
  The result mesh will point to an evaluated datablocks. For example,
  materials will be an evaluated IDs from the dependency graph.

Fixes T62916: Applying boolean modifier does not set material properly

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

2 months agoModifiers: Proper fix for the Apply Modifier
Sergey Sharybin [Tue, 26 Mar 2019 10:39:11 +0000 (11:39 +0100)]
Modifiers: Proper fix for the Apply Modifier

It is up to the operator to pass valid object to the modifiers
evaluation.

Fixes T62916: Applying boolean modifier does not set materials properly

2 months agoModifiers: Use object passed to evaluation
Sergey Sharybin [Tue, 26 Mar 2019 10:25:07 +0000 (11:25 +0100)]
Modifiers: Use object passed to evaluation

This was wrong and violating design to force modifiers to query
evaluated objects and IDs. It is up to the caller to make sure
the object is properly evaluatable.

Effectively, reverting changes from de491abf9962 (and possibly
other related changes).

2 months agoFix T62960: Expanding/Closing Constraints/Modifiers causes re-render
Sergey Sharybin [Mon, 1 Apr 2019 08:22:06 +0000 (10:22 +0200)]
Fix T62960: Expanding/Closing Constraints/Modifiers causes re-render

Mark specific properties as no-dependency-graph tag.

This is needed to avoid a centralized Copy-on-Write tag from RNA
pointer update.

2 months agoRemove evaluated RNA pointer lookup in interface
Sergey Sharybin [Mon, 1 Apr 2019 08:18:07 +0000 (10:18 +0200)]
Remove evaluated RNA pointer lookup in interface

Since there is a flush of evaluated values back to the original
for an active dependency graph we don't need this lookup anymore.

Not only it slows interface drawing down, but also is becoming
in a way of the upcoming fix.

2 months agoFix T63071: Bevel inconsistent results toggling harden_normals.
Howard Trickey [Mon, 1 Apr 2019 11:58:34 +0000 (07:58 -0400)]
Fix T63071: Bevel inconsistent results toggling harden_normals.

Some iterations in bevel were over a hash table, which leads
to possibly different results run-to-run, especially when
loop_slide is enabled. Changed those iters to go over all verts
of BMesh, which leads to consistent order run-to-run.

2 months agoFix T63169: 'Duplicate Current' entry in new workspace menu is not translated.
Bastien Montagne [Mon, 1 Apr 2019 09:30:44 +0000 (11:30 +0200)]
Fix T63169: 'Duplicate Current' entry in new workspace menu is not translated.

2 months agoGPencil: Redesign soft eraser logic
Antonioya [Mon, 1 Apr 2019 09:24:03 +0000 (11:24 +0200)]
GPencil: Redesign soft eraser logic

The old logic was working if the eraser was moved towards the end of the stroke, but got ugly results when the eraser was done towards the start of the stroke.