2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 3 Aug 2017 22:26:05 +0000 (08:26 +1000)]
Merge branch 'master' into blender2.8

2 years agoCMake: test build configuration support
Campbell Barton [Thu, 3 Aug 2017 22:11:42 +0000 (08:11 +1000)]
CMake: test build configuration support

D2765 by @akitula

2 years agoerror in last commit
Campbell Barton [Thu, 3 Aug 2017 10:05:43 +0000 (20:05 +1000)]
error in last commit

2 years agoManipulator: disallow negative scale when resizing
Campbell Barton [Thu, 3 Aug 2017 10:04:22 +0000 (20:04 +1000)]
Manipulator: disallow negative scale when resizing

2 years agoManipulator: use matrix to convert view coords
Campbell Barton [Thu, 3 Aug 2017 09:45:56 +0000 (19:45 +1000)]
Manipulator: use matrix to convert view coords

Was doing this with property get/set but this made view operations
require refreshing manipulator properties.
Simplify by operating on properties in their own space.

Also disable clamping for now since it assumes pixel-space.

2 years agoFix for last commit
Campbell Barton [Thu, 3 Aug 2017 08:09:11 +0000 (18:09 +1000)]
Fix for last commit

Missed check for non-camera view frame

2 years agoManipulator: render border widget
Campbell Barton [Thu, 3 Aug 2017 07:55:16 +0000 (17:55 +1000)]
Manipulator: render border widget

Note there are issues clamping & updating,
will resolve as part of changes to cage2d widget.

2 years agoDepsgraph: Fix wrong data type used for armature tag
Sergey Sharybin [Thu, 3 Aug 2017 06:19:13 +0000 (08:19 +0200)]
Depsgraph: Fix wrong data type used for armature tag

Spotted by Ray aka LazyDodo, thanks!

2 years agoCycles: Extra tweaks to performance of header expansion
Sergey Sharybin [Thu, 3 Aug 2017 05:53:18 +0000 (07:53 +0200)]
Cycles: Extra tweaks to performance of header expansion

Two main things here:

1. Replace all unsafe for #line directive characters into a single loop,
   avoiding multiple iterations and multiple temporary strings created.

2. Don't merge token char by char but calculate start and end point and
   then copy all substring at once.

This gives about 15% speedup of source processing time. At this point
(with all previous commits from today) we've shrinked down compiled
sources size from 108 MB down to ~5.5 MB and lowered processing time
from 4.5 sec down to 0.047 sec on my laptop running Linux (this was a
constant time which Blender will always spent first time loading kernel,
even if we've got compiled clbin).

2 years agoManipulator: Use 2D manipulators in the 3D view
Campbell Barton [Thu, 3 Aug 2017 05:12:47 +0000 (15:12 +1000)]
Manipulator: Use 2D manipulators in the 3D view

Also split update flag into draw-steps,
since drawing 3D manipulators was tagging 2D as being refreshed.

2 years agoManipulator: use default for cage2d dimensions
Campbell Barton [Thu, 3 Aug 2017 01:28:26 +0000 (11:28 +1000)]
Manipulator: use default for cage2d dimensions

Also minor cleanuup, assign new vars for manipulator group.

2 years agoCleanup: split 3D view manipulators by type
Campbell Barton [Wed, 2 Aug 2017 22:27:22 +0000 (08:27 +1000)]
Cleanup: split 3D view manipulators by type

2 years agoCleanup: warnings
Campbell Barton [Wed, 2 Aug 2017 22:08:47 +0000 (08:08 +1000)]
Cleanup: warnings

2 years agoCleanup: rename selectionbase -> select_id
Campbell Barton [Wed, 2 Aug 2017 22:01:09 +0000 (08:01 +1000)]
Cleanup: rename selectionbase -> select_id

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Wed, 2 Aug 2017 21:14:02 +0000 (07:14 +1000)]
Merge branch 'master' into blender2.8

2 years agoRemove volatile, causing issues w/ GCC/ubsan
Campbell Barton [Wed, 2 Aug 2017 21:10:20 +0000 (07:10 +1000)]
Remove volatile, causing issues w/ GCC/ubsan

Was Cygwin workaround, no longer needed.

2 years agomikktspace: minor optimization
Campbell Barton [Wed, 2 Aug 2017 21:03:59 +0000 (07:03 +1000)]
mikktspace: minor optimization

Add a safe version of normalize since all uses of normalize
did zero length checks, move this into a function.

Also avoid unnecessary conversion.

Gives minor speedup here (approx 3-5%).

2 years agoCycles: Avoid some expensive operations in header expansions
Sergey Sharybin [Wed, 2 Aug 2017 18:23:14 +0000 (20:23 +0200)]
Cycles: Avoid some expensive operations in header expansions

Basically gather lines as-is during traversal, avoiding allocating
memory for all the lines in headers.

Brings additional performance improvement abut 20%.

2 years agoCycles: Support "precompiled" headers in include expansion algorithm
Sergey Sharybin [Wed, 2 Aug 2017 18:10:36 +0000 (20:10 +0200)]
Cycles: Support "precompiled" headers in include expansion algorithm

The idea here is that it is possible to mark certain include statements
as "precompiled" which means all subsequent includes of that file will
be replaced with an empty string.

This is a way to deal with tricky include pattern happening in single
program OpenCL split kernel which was including bunch of headers about
10 times.

This brings preprocessing time from ~1sec to ~0.1sec on my laptop.

2 years agoCycles: Speed up #include expansion algorithm
Sergey Sharybin [Tue, 1 Aug 2017 18:34:40 +0000 (20:34 +0200)]
Cycles: Speed up #include expansion algorithm

The idea is to re-use files which were already processed. Gives about 4x speedup
of processing time (~4.5sec vs 1.0sec) on my laptop for the whole OpenCL kernel.

For users it will mean lower delay before OpenCL rendering might start.

2 years agoFix T52250: Glitch in UI in the addon panel regression
Aleksandr Zinovev [Wed, 2 Aug 2017 14:41:26 +0000 (17:41 +0300)]
Fix T52250: Glitch in UI in the addon panel regression

2 years agoGraphEdit Handle Drawing: Fix handle-vertex size regression (2.7 -> 2.8)
Joshua Leung [Wed, 2 Aug 2017 13:52:07 +0000 (01:52 +1200)]
GraphEdit Handle Drawing: Fix handle-vertex size regression (2.7 -> 2.8)

Keyframe handle vertices (the circles on the ends of the handles)
should always be larger than the central vertex. This brings back the
"outer" radius value from the old gluDisk(), and doubles it to get the
necessary diameter, to scale it properly.

- Get rid of all fills inside these circles
- Make the central vertex square-shaped again

2 years agoKeyframe Drawing: Fix 2.7 -> 2.8 regressions
Joshua Leung [Wed, 2 Aug 2017 13:25:55 +0000 (01:25 +1200)]
Keyframe Drawing: Fix 2.7 -> 2.8 regressions

* Outlines of keyframes were too thick and ugly

* Size differences between keyframe types was being swallowed
  by the pixel-fudge factor, leaving colour as the only distinguishing
  factor (bad!)

2 years agoManipulator: add area lamp manipulator
Campbell Barton [Wed, 2 Aug 2017 09:18:44 +0000 (19:18 +1000)]
Manipulator: add area lamp manipulator

2 years agoManipulator: Make cage2d usable in the 3D view
Campbell Barton [Wed, 2 Aug 2017 09:15:15 +0000 (19:15 +1000)]
Manipulator: Make cage2d usable in the 3D view

2 years agoManipulator: correct cage-2d scale update
Campbell Barton [Tue, 1 Aug 2017 22:34:59 +0000 (08:34 +1000)]
Manipulator: correct cage-2d scale update

2 years agoCleanup: prefer tuples over lists
Campbell Barton [Tue, 1 Aug 2017 21:53:58 +0000 (07:53 +1000)]
Cleanup: prefer tuples over lists

2 years ago2.79 release: new splash, yeah!
Bastien Montagne [Tue, 1 Aug 2017 17:23:19 +0000 (19:23 +0200)]
2.79 release: new splash, yeah!

2 years ago2.79 release: update version numbers & readfile versionning code.
Bastien Montagne [Tue, 1 Aug 2017 17:22:31 +0000 (19:22 +0200)]
2.79 release: update version numbers & readfile versionning code.

2 years agoRender: make Cycles and Evee support each other's output material nodes.
Brecht Van Lommel [Tue, 1 Aug 2017 16:03:16 +0000 (18:03 +0200)]
Render: make Cycles and Evee support each other's output material nodes.

This changes the Cycles exporting and Cycles/Eevee UI code to support both
output material nodes, giving priority to the renderer native one. Still
missing is Eevee code to prefer the Eevee output node.

2 years agoTweak multi-units tests to match new precision handling in conversion from raw value...
Bastien Montagne [Tue, 1 Aug 2017 14:43:40 +0000 (16:43 +0200)]
Tweak multi-units tests to match new precision handling in conversion from raw value to prety-printed one.

Note that new code allows to enable again the '1 million miles' tests.

2 years agoFix multi-units drawing re precision handling.
Bastien Montagne [Tue, 1 Aug 2017 14:35:07 +0000 (16:35 +0200)]
Fix multi-units drawing re precision handling.

This is still far from prefect, but yet much better than what we had so
far (more consistent with inheritent precision available in floats).

Note that this fixes some (currently commented out) units unittests, and
requires adjusting some others, will be done in next commit.

2 years agoBLI_math: add simple helper to get amount of 'integer' digits in a float number.
Bastien Montagne [Tue, 1 Aug 2017 14:34:02 +0000 (16:34 +0200)]
BLI_math: add simple helper to get amount of 'integer' digits in a float number.

2 years agoFix typo in 2d-cage manipulator
Campbell Barton [Tue, 1 Aug 2017 11:22:17 +0000 (21:22 +1000)]
Fix typo in 2d-cage manipulator

2 years agoCleanup: warnings
Campbell Barton [Tue, 1 Aug 2017 07:24:30 +0000 (17:24 +1000)]
Cleanup: warnings

2 years agoCorrect previous commit, instance should be cleared
Campbell Barton [Tue, 1 Aug 2017 07:15:50 +0000 (17:15 +1000)]
Correct previous commit, instance should be cleared

Clear instance in case creating creating new instance fails.

In practice this shouldn't happen,
but better not cause further errors if it does.

2 years agoPyRNA: Ensure changed types creates a new instance
Campbell Barton [Tue, 1 Aug 2017 07:11:09 +0000 (17:11 +1000)]
PyRNA: Ensure changed types creates a new instance

Changing lamp type for eg needs to create a new instance.

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 1 Aug 2017 05:00:49 +0000 (15:00 +1000)]
Merge branch 'master' into blender2.8

2 years agoCleanup: double promotion
Campbell Barton [Tue, 1 Aug 2017 03:35:26 +0000 (13:35 +1000)]
Cleanup: double promotion

2 years agoCleanup: warnings from last commit
Campbell Barton [Tue, 1 Aug 2017 02:31:19 +0000 (12:31 +1000)]
Cleanup: warnings from last commit

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 1 Aug 2017 00:38:36 +0000 (10:38 +1000)]
Merge branch 'master' into blender2.8

2 years agoCleanup: use static vars where appropriate
Campbell Barton [Mon, 31 Jul 2017 23:06:34 +0000 (09:06 +1000)]
Cleanup: use static vars where appropriate

2 years agoFix fcurve color assignment
Campbell Barton [Mon, 31 Jul 2017 22:27:35 +0000 (08:27 +1000)]
Fix fcurve color assignment

2 years agoCorrect accidental variable declaration
Campbell Barton [Mon, 31 Jul 2017 21:55:01 +0000 (07:55 +1000)]
Correct accidental variable declaration

2 years agoFix T52224: auto IK not respecting length, after recent bugfix.
Brecht Van Lommel [Mon, 31 Jul 2017 17:22:03 +0000 (19:22 +0200)]
Fix T52224: auto IK not respecting length, after recent bugfix.

2 years agoCode cleanup: fix warning with clang.
Brecht Van Lommel [Mon, 31 Jul 2017 17:07:29 +0000 (19:07 +0200)]
Code cleanup: fix warning with clang.

2 years agoFix T52232: Crash in RNA_enum_from_value while inspecting compositor image node prope...
Bastien Montagne [Mon, 31 Jul 2017 14:50:36 +0000 (16:50 +0200)]
Fix T52232: Crash in RNA_enum_from_value while inspecting compositor image node properties in outliner.

Bug was in RNA nodes code actually, itemf functions shall never, ever
return NULL!

Note that there were other itemf functions there that were potentially
buggy. Also harmonized a bit their code.

2 years agoFix two issues with recent changes to number display while editing them.
Bastien Montagne [Mon, 31 Jul 2017 13:40:26 +0000 (15:40 +0200)]
Fix two issues with recent changes to number display while editing them.

* Numbers with units (especially, angles) where not handled correctly
regarding number of significant digits (spotted by @brecht in T52222
comment, thanks).
* Zero value has no valid log, need to take that into account!

2 years agoEevee: SSR: Change clamp to a real clamp and add Max Roughness.
Clément Foucault [Mon, 31 Jul 2017 13:18:22 +0000 (15:18 +0200)]
Eevee: SSR: Change clamp to a real clamp and add Max Roughness.

Clamp will now works as in Cycles.

Max roughness limit ssr to a certain roughness level: for noise / performance tweaking.

2 years agoEevee: Draw background after depth prepass.
Clément Foucault [Mon, 31 Jul 2017 13:15:42 +0000 (15:15 +0200)]
Eevee: Draw background after depth prepass.

Reduce overdraw. 0.4ms goes to 0.01ms if background is completely occluded.

2 years agoEevee: SSR: Rewrote the raytracing algorithm.
Clément Foucault [Sun, 30 Jul 2017 15:11:05 +0000 (17:11 +0200)]
Eevee: SSR: Rewrote the raytracing algorithm.

It now uses a quality slider instead of stride.
Lower quality takes larger strides between samples and use lower mips when tracing rough rays.

Now raytracing is done entierly in homogeneous coordinate space. This run much faster.
Should be fairly optimized. We are still Bandwidth bound.

Add a line-line intersection refine.
Add a ray jitter between the multiple ray per pixel to fill some undersampling in mirror reflections.

The tracing now stops if it goes behind an object. This needs some work to allow it to continue even if behind objects.

2 years agoFix glitch updating manipulator after undo
Campbell Barton [Mon, 31 Jul 2017 04:35:10 +0000 (14:35 +1000)]
Fix glitch updating manipulator after undo

Running undo would notify manipulators to refresh,
but this still allowed for events in the queue to be handled,
where manipulators could be drawn for selection before
their refresh callback runs.

This made Python manipulators raise exceptions
about referencing invalid data (or crash).

Now tag manipulator update on file load (including undo)
and ensure the refresh callback runs
before drawing manipulator selection.

Also split manipulator map refresh flag in two since selection doesn't
perform the same operations as regular drawing.

2 years agoCleanup: use enum typedef for manipulator drawstep
Campbell Barton [Mon, 31 Jul 2017 03:14:42 +0000 (13:14 +1000)]
Cleanup: use enum typedef for manipulator drawstep

2 years agoCorrect last commit, for-loop included NULL check
Campbell Barton [Mon, 31 Jul 2017 01:39:17 +0000 (11:39 +1000)]
Correct last commit, for-loop included NULL check

2 years agoCleanup: remove next/prev from manipulator map
Campbell Barton [Mon, 31 Jul 2017 01:26:03 +0000 (11:26 +1000)]
Cleanup: remove next/prev from manipulator map

2 years agoFix manipulator Python API crash w/ undo
Campbell Barton [Sun, 30 Jul 2017 20:41:10 +0000 (06:41 +1000)]
Fix manipulator Python API crash w/ undo

Split up manipulator free & unlink, so freeing window data doesn't
run callbacks that might use freed data.

2 years agoFix manipulator keymap initialization
Campbell Barton [Sun, 30 Jul 2017 18:46:35 +0000 (04:46 +1000)]
Fix manipulator keymap initialization

Update flag was cleared before being checked
when registering after load.

2 years agoManipulator: Check we don't add multiple times
Campbell Barton [Sun, 30 Jul 2017 05:47:57 +0000 (15:47 +1000)]
Manipulator: Check we don't add multiple times

2 years agoRevert "Fix manipulator handles getting added each refresh"
Campbell Barton [Sun, 30 Jul 2017 05:38:32 +0000 (15:38 +1000)]
Revert "Fix manipulator handles getting added each refresh"

This reverts commit 122706db9cd23c88775474750e99b57e74a3b9e5.

Would loose manipulators, will check for duplicates instead.

2 years agoBLI_memiter: minor cleanup
Campbell Barton [Sun, 30 Jul 2017 03:55:41 +0000 (13:55 +1000)]
BLI_memiter: minor cleanup

2 years agoDwM: use BLI_memiter for draw storage & iteration
Campbell Barton [Sat, 29 Jul 2017 16:17:11 +0000 (02:17 +1000)]
DwM: use BLI_memiter for draw storage & iteration

This will only be noticeable for drawing many instances.

In contrived use-case with many instances, and `USE_PROFILE` disabled
this can close to double playback FPS.

The option to disable this is left in the code in case we want to
debug memory use.

See D2756 for details.

2 years agoDwM: add ability to disable the timer
Campbell Barton [Sat, 29 Jul 2017 15:31:36 +0000 (01:31 +1000)]
DwM: add ability to disable the timer

This interferes with benchmarking draw times,
so this makes it easy to turn off.

2 years agoBLI_memiter: Small API for many small allocations
Campbell Barton [Sat, 29 Jul 2017 13:38:20 +0000 (23:38 +1000)]
BLI_memiter: Small API for many small allocations

- Each allocation can be a different size
  (but should be smaller than the chunk size).
- Result can be looped over in order of allocation.
- Allocations are aligned to pointer size to avoid unaligned reads.

2 years agoProperty path generation fixes
Aleksandr Zinovev [Sat, 29 Jul 2017 12:23:01 +0000 (15:23 +0300)]
Property path generation fixes

2 years agoRemove volatile, causing issues w/ GCC/ubsan
Campbell Barton [Fri, 28 Jul 2017 22:58:11 +0000 (08:58 +1000)]
Remove volatile, causing issues w/ GCC/ubsan

Should remove from master since its workaround for Cygwin
but too close to release.

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Fri, 28 Jul 2017 22:43:58 +0000 (08:43 +1000)]
Merge branch 'master' into blender2.8

2 years agoCleanup: quiet picky ubsan warnings
Campbell Barton [Fri, 28 Jul 2017 22:42:32 +0000 (08:42 +1000)]
Cleanup: quiet picky ubsan warnings

2 years agoCleanup: multistatement-macros warning
Campbell Barton [Fri, 28 Jul 2017 22:18:20 +0000 (08:18 +1000)]
Cleanup: multistatement-macros warning

2 years agoCleanup: multistatement-macros warning
Campbell Barton [Fri, 28 Jul 2017 22:18:20 +0000 (08:18 +1000)]
Cleanup: multistatement-macros warning

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Fri, 28 Jul 2017 20:44:04 +0000 (06:44 +1000)]
Merge branch 'master' into blender2.8

2 years agoReplace magic numbers with deprecated names
Campbell Barton [Fri, 28 Jul 2017 20:25:54 +0000 (06:25 +1000)]
Replace magic numbers with deprecated names

The names aren't meaningful but means it wont
accidentally use valid names.

Also remove textured-font setting

2 years agoFix T52195: Sculpt from Python fails
Campbell Barton [Fri, 28 Jul 2017 19:59:17 +0000 (05:59 +1000)]
Fix T52195: Sculpt from Python fails

When calling sculpt from Python,
setting 3D 'location' but not 2D 'mouse' stopped working in 2.78.

Now check if the operator is running non-interactively and
skip the mouse-over check.

2 years agoWM: OP_IS_INVOKE was being incorrectly set
Campbell Barton [Fri, 28 Jul 2017 19:40:33 +0000 (05:40 +1000)]
WM: OP_IS_INVOKE was being incorrectly set

Calling an operator with EXEC_* context would still set the invoke flag.

2 years agoFix T52213: Enum drivers no longer work
Campbell Barton [Fri, 28 Jul 2017 16:39:16 +0000 (02:39 +1000)]
Fix T52213: Enum drivers no longer work

Regression in D1812: PyDriver variables as Objects

Taking the Python representation is nice in general
but for enums it would convert them into strings,
breaking some existing drivers.

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Fri, 28 Jul 2017 15:46:27 +0000 (01:46 +1000)]
Merge branch 'master' into blender2.8

2 years agoResolve T45301 by adding option for old behavior
Campbell Barton [Fri, 28 Jul 2017 15:35:07 +0000 (01:35 +1000)]
Resolve T45301 by adding option for old behavior

Some users really liked previous behavior,
so making it an option.

Cursor Lock Adjustment can be disabled to give something close to
2.4x behavior of cursor locking.

When lock-adjustment is disabled placing the cursor the view.
This avoids the issue reported in T40353
where the cursor could get *lost*.

2 years agoCleanup: clear deprecated UI flags
Campbell Barton [Fri, 28 Jul 2017 15:28:58 +0000 (01:28 +1000)]
Cleanup: clear deprecated UI flags

Also adds cursor-lock flag, to be used in next commit.

2 years agoFix T52156: Hair dynamics broken with density texture
Luca Rood [Fri, 28 Jul 2017 13:24:48 +0000 (15:24 +0200)]
Fix T52156: Hair dynamics broken with density texture

Even strands that were excluded by the density texture were being added
to the DM passed to cloth, but these ended up having some invalid data,
because they were not fully constructed.

This simply excludes `UNEXISTED` particles from the DM generation, as
would be expected.

2 years agoFix crash when duplicating object
Sergey Sharybin [Fri, 28 Jul 2017 11:02:20 +0000 (13:02 +0200)]
Fix crash when duplicating object

This fixes null pointer check fiasco.

2 years agoFix T52148: Point Density Texture ID User decrement error related to the Object field.
Bastien Montagne [Fri, 28 Jul 2017 10:43:06 +0000 (12:43 +0200)]
Fix T52148: Point Density Texture ID User decrement error related to the Object field.

Note that fix is not perfect, systematically make refcounting of all IDs
assigned to node's id pointer, which breaks the 'do not refcount
scene/object/text datablocks' principle...

But besides that principle being far from ideal in general, it becomes
pretty much impossible to apply when using //generic// ID pointer,
unless we add some kind of type data to that pointer somehow.

So for now, better to live with that, than having broken usercount.

2 years agoDepsgraph: Re-use evaluated mesh across frames and remove time dependency from all...
Sergey Sharybin [Fri, 28 Jul 2017 10:27:34 +0000 (12:27 +0200)]
Depsgraph: Re-use evaluated mesh across frames and remove time dependency from all CoW components

This commit is a work forward having less updates during playback, which speeds
things up a lot here. The idea is simple: stop update all copy-on-write
datablocks (which implies full re-evaluation actually) on frame change and
re-use existing evaluated meshes as much as possible.

This brings playback speed to 24 fps on the dino test scene here. Performance
drops down a lot when armature is animated tho, but that's because of need of
tangent space calculation which we can't do much about from just a dependency

Hopefully this doesn't make copy-on-write too unstable, quick tests here are
surviving fine.

2 years agoFix T52212: Vgroups doesn't work after Carve Boolean
Sergey Sharybin [Fri, 28 Jul 2017 09:55:24 +0000 (11:55 +0200)]
Fix T52212: Vgroups doesn't work after Carve Boolean

2 years agoFix potential 'divide-by-zero' in our UI fitting code.
Bastien Montagne [Fri, 28 Jul 2017 08:56:41 +0000 (10:56 +0200)]
Fix potential 'divide-by-zero' in our UI fitting code.

Reported by coverity, better fix even if highly unlikely to happen...

2 years agoFix T52208: Using UI_BUT_REDALERT flag for UI_BTYPE_KEY_EVENT buttons crashes Blender.
Bastien Montagne [Fri, 28 Jul 2017 08:38:47 +0000 (10:38 +0200)]
Fix T52208: Using UI_BUT_REDALERT flag for UI_BTYPE_KEY_EVENT buttons crashes Blender.

but pointer was not assigned in that case...

2 years agoCleanup: Remove gitignore for api images
Aaron Carlisle [Thu, 27 Jul 2017 20:04:42 +0000 (16:04 -0400)]
Cleanup: Remove gitignore for api images

2 years agoPrevent crash when duplicating object which doesn't have evaluated base properties yet
Sergey Sharybin [Thu, 27 Jul 2017 14:29:45 +0000 (16:29 +0200)]
Prevent crash when duplicating object which doesn't have evaluated base properties yet

This mainly happens when copy on write is enabled.

2 years agoCopy on write: Prevent crash when duplicating object with particle system
Sergey Sharybin [Thu, 27 Jul 2017 14:28:16 +0000 (16:28 +0200)]
Copy on write: Prevent crash when duplicating object with particle system

Transform system was using global main, which might have been pointing to a
freed scene layer.

2 years agoFix UI messages...
Bastien Montagne [Thu, 27 Jul 2017 13:20:44 +0000 (15:20 +0200)]
Fix UI messages...

2 years agoDepsgraph: Attempt to keep evaluated mesh when possible
Sergey Sharybin [Thu, 27 Jul 2017 13:12:08 +0000 (15:12 +0200)]
Depsgraph: Attempt to keep evaluated mesh when possible

Currently wouldn't make any difference, but required for upcoming work of
getting rid of time dependency for copy-on-write component.

2 years agoDepsgraph: Cleanup, variable name
Sergey Sharybin [Thu, 27 Jul 2017 13:10:22 +0000 (15:10 +0200)]
Depsgraph: Cleanup, variable name

2 years agoDepsgraph: Cleanup, use some utility functions to shorten construction code
Sergey Sharybin [Thu, 27 Jul 2017 13:08:29 +0000 (15:08 +0200)]
Depsgraph: Cleanup, use some utility functions to shorten construction code

Still some cleanup is possible.

2 years agoDepsgraph: Create ID nodes on build-time expansion using node builder
Sergey Sharybin [Thu, 27 Jul 2017 12:57:47 +0000 (14:57 +0200)]
Depsgraph: Create ID nodes on build-time expansion using node builder

This will allow us to do some builder-specific trickery when ID nodes are
requested to be created from build-time expansion.

2 years agoDepsgraph: Allow stealing copy-on-written pointer
Sergey Sharybin [Thu, 27 Jul 2017 12:42:06 +0000 (14:42 +0200)]
Depsgraph: Allow stealing copy-on-written pointer

This will become handy when we'll be re-using evaluated meshes for
objects after relations are updated.

2 years agoDepsgraph: Fix possibly missing lamp update when lamp data changes
Sergey Sharybin [Thu, 27 Jul 2017 12:40:49 +0000 (14:40 +0200)]
Depsgraph: Fix possibly missing lamp update when lamp data changes

2 years agoDepsgraph: Make it possible to use given pre-allocated ID as a copy
Sergey Sharybin [Thu, 27 Jul 2017 12:38:26 +0000 (14:38 +0200)]
Depsgraph: Make it possible to use given pre-allocated ID as a copy

2 years agoCopy on write: Make sure freeing evaluated mesh does not cause crash when re-evaluati...
Sergey Sharybin [Thu, 27 Jul 2017 12:18:45 +0000 (14:18 +0200)]
Copy on write: Make sure freeing evaluated mesh does not cause crash when re-evaluating the object

2 years agoDRW: Fix vertex buffer too large.
Clément Foucault [Thu, 27 Jul 2017 09:23:16 +0000 (11:23 +0200)]
DRW: Fix vertex buffer too large.

2 years agoEevee: Fix probes interfeering with SSR.
Clément Foucault [Thu, 27 Jul 2017 09:22:47 +0000 (11:22 +0200)]
Eevee: Fix probes interfeering with SSR.

2 years agoEevee: Planar Reflection: only support mirror reflection if not using SSR.
Clément Foucault [Thu, 27 Jul 2017 09:21:11 +0000 (11:21 +0200)]
Eevee: Planar Reflection: only support mirror reflection if not using SSR.

2 years agoEevee: Fix bloom once and for all.
Clément Foucault [Wed, 26 Jul 2017 18:00:07 +0000 (20:00 +0200)]
Eevee: Fix bloom once and for all.

... Hopefully ...