4 years agoMerge branch 'master' into blender2.8
Brecht Van Lommel [Mon, 7 Aug 2017 15:48:14 +0000 (17:48 +0200)]
Merge branch 'master' into blender2.8

4 years agoBuild: add scripts to build dependencies for Windows and macOS.
Brecht Van Lommel [Tue, 25 Jul 2017 14:37:55 +0000 (16:37 +0200)]
Build: add scripts to build dependencies for Windows and macOS.

Note these are intended for platform maintainers, we do not intend to
support users making their own builds with these. For that precompiled
libraries from lib/ should be used.

Implemented by Martijn Berger, Ray Molenkamp and Brecht Van Lommel.

Differential Revision:

4 years agoFix Cycles shadow catcher objects influencing each other.
Brecht Van Lommel [Tue, 1 Aug 2017 21:40:38 +0000 (23:40 +0200)]
Fix Cycles shadow catcher objects influencing each other.

Since all the shadow catchers are already assumed to be in the footage,
the shadows they cast on each other are already in the footage too. So
don't just let shadow catchers skip self, but all shadow catchers.

Another justification is that it should not matter if the shadow catcher
is modeled as one object or multiple separate objects, the resulting
render should be the same.

Differential Revision:

4 years agoFix Windows build errors with recent Cycles SIMD refactoring.
Brecht Van Lommel [Mon, 7 Aug 2017 13:30:01 +0000 (15:30 +0200)]
Fix Windows build errors with recent Cycles SIMD refactoring.

4 years agoMerge branch 'master' into blender2.8
Bastien Montagne [Mon, 7 Aug 2017 14:16:43 +0000 (16:16 +0200)]
Merge branch 'master' into blender2.8

4 years agoCycles: Cleanup, space after keyword
Sergey Sharybin [Mon, 7 Aug 2017 12:47:51 +0000 (14:47 +0200)]
Cycles: Cleanup, space after keyword

4 years agoCycles tests: CMake side changes to support recent files split in the SVN repo
Sergey Sharybin [Mon, 7 Aug 2017 12:31:40 +0000 (14:31 +0200)]
Cycles tests: CMake side changes to support recent files split in the SVN repo

4 years agoCycles: add HTML report to inspect failed test images.
Brecht Van Lommel [Thu, 3 Aug 2017 14:41:50 +0000 (16:41 +0200)]
Cycles: add HTML report to inspect failed test images.

Shows new, reference and diff renders, with mouse hover to flip between
new and ref for easy comparison. This generates a report.html in
build_dir/tests/cycles, stored along with the new and diff images.

Differential Revision:

4 years agoCode refactor: use float4 instead of intrinsics for CPU denoise filtering.
Brecht Van Lommel [Tue, 18 Jul 2017 23:54:56 +0000 (01:54 +0200)]
Code refactor: use float4 instead of intrinsics for CPU denoise filtering.

Differential Revision:

4 years agoCode refactor: add, remove, optimize various SSE functions.
Brecht Van Lommel [Wed, 2 Aug 2017 00:23:03 +0000 (02:23 +0200)]
Code refactor: add, remove, optimize various SSE functions.

* Remove some unnecessary SSE emulation defines.
* Use full precision float division so we can enable it.
* Add sqrt(), sqr(), fabs(), shuffle variations, mask().
* Optimize reduce_add(), select().

Differential Revision:

4 years agoCode refactor: split defines into separate header, changes to SSE type headers.
Brecht Van Lommel [Wed, 2 Aug 2017 00:09:08 +0000 (02:09 +0200)]
Code refactor: split defines into separate header, changes to SSE type headers.

I need to use some macros defined in util_simd.h for float3/float4, to emulate
SSE4 instructions on SSE2. But due to issues with order of header includes this
was not possible, this does some refactoring to make it work.

Differential Revision:

4 years agoCycles: remove option to disable transparent shadows globally.
Brecht Van Lommel [Wed, 2 Aug 2017 13:23:50 +0000 (15:23 +0200)]
Cycles: remove option to disable transparent shadows globally.

We already detect this automatically based on shading nodes and per shader
settings, and performance of this option is ok now all devices.

Differential Revision:

4 years agoFix T52278: 'Default' application template fails
Campbell Barton [Mon, 7 Aug 2017 11:17:14 +0000 (21:17 +1000)]
Fix T52278: 'Default' application template fails

Own error in 7398b3b7

4 years agoFix Cycles CUDA adaptive megakernel build error.
Brecht Van Lommel [Sat, 5 Aug 2017 13:46:40 +0000 (15:46 +0200)]
Fix Cycles CUDA adaptive megakernel build error.

4 years agoFix broken API doc generation: Partially revert rBa372638a76e0
Bastien Montagne [Sun, 6 Aug 2017 15:35:41 +0000 (17:35 +0200)]
Fix broken API doc generation: Partially revert rBa372638a76e0

Making those arrays static remove them from exported symbols, which
breaks API doc generation script.

To be backported to 2.79 branch.

4 years agoManipulator: experimental lamp positioning tool
Campbell Barton [Sun, 6 Aug 2017 09:47:25 +0000 (19:47 +1000)]
Manipulator: experimental lamp positioning tool

- New manipulator tracks lamps to position under cursor.
- Works with multiple lamps, keeping relative offsets.
- Holding Ctrl moves the lamp.
- Access via manipulator or Shift-T.

Code could be improved, but like to get feedback from users.

4 years agoCycles: CUDA split performance tweaks, still far from megakernel.
Brecht Van Lommel [Sat, 5 Aug 2017 02:06:39 +0000 (04:06 +0200)]
Cycles: CUDA split performance tweaks, still far from megakernel.

On Pabellon, 25.8s mega, 35.4s split before, 32.7s split after.

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Fri, 4 Aug 2017 21:53:07 +0000 (07:53 +1000)]
Merge branch 'master' into blender2.8

4 years agoView3D: expose normal from depth publicly
Campbell Barton [Fri, 4 Aug 2017 21:28:15 +0000 (07:28 +1000)]
View3D: expose normal from depth publicly

4 years agoCycles: remove min bounces, modify RR to terminate less.
Brecht Van Lommel [Wed, 2 Aug 2017 20:53:55 +0000 (22:53 +0200)]
Cycles: remove min bounces, modify RR to terminate less.

Differential Revision:

4 years agoTracking: Undefine temporary define
Sergey Sharybin [Fri, 4 Aug 2017 19:12:11 +0000 (21:12 +0200)]
Tracking: Undefine temporary define

Missed this in previous commit.

4 years agoManipulator: fix cage2d cancel not resetting
Campbell Barton [Fri, 4 Aug 2017 10:33:26 +0000 (20:33 +1000)]
Manipulator: fix cage2d cancel not resetting

4 years agoManipulator: fix 2d overlay w/ Blender Render
Campbell Barton [Fri, 4 Aug 2017 09:16:58 +0000 (19:16 +1000)]
Manipulator: fix 2d overlay w/ Blender Render

4 years agoTracking: Remove limit of 50 points of the track history
Sergey Sharybin [Fri, 4 Aug 2017 07:11:26 +0000 (09:11 +0200)]
Tracking: Remove limit of 50 points of the track history

Was quite stupid reason for this: static size of array.

Now we allocate needed amount of points in heap if requested path length is
getting too big.

4 years agoManipulator: add compositor crop manipulator
Campbell Barton [Fri, 4 Aug 2017 06:45:33 +0000 (16:45 +1000)]
Manipulator: add compositor crop manipulator

4 years agoTracking: Cleanup of transform code
Sergey Sharybin [Fri, 4 Aug 2017 06:13:38 +0000 (08:13 +0200)]
Tracking: Cleanup of transform code

4 years agoManipulator: add manipulator space matrix
Campbell Barton [Fri, 4 Aug 2017 05:34:01 +0000 (15:34 +1000)]
Manipulator: add manipulator space matrix

Render-border & crop-node 2d-cage manipulators where unreasonably
complicated to implement because there was no good way to define
the sub-region the manipulator was transforming in
(render border within the camera's frame for example).

Add matrix-space variable,
remove scale property from cage2d manipulator, use matrix instead.

4 years agoTracking: Cleanup, use boolean instead of integer
Sergey Sharybin [Fri, 4 Aug 2017 05:21:01 +0000 (07:21 +0200)]
Tracking: Cleanup, use boolean instead of integer

4 years agoManipulator: fix check for custom function
Campbell Barton [Fri, 4 Aug 2017 05:17:21 +0000 (15:17 +1000)]
Manipulator: fix check for custom function

4 years agoBLI_math: use const args for mul_m#_series
Campbell Barton [Fri, 4 Aug 2017 05:05:02 +0000 (15:05 +1000)]
BLI_math: use const args for mul_m#_series

4 years agoManipulator: modal was drawing in wrong draw-step
Campbell Barton [Thu, 3 Aug 2017 23:41:45 +0000 (09:41 +1000)]
Manipulator: modal was drawing in wrong draw-step

4 years agoManipulator: remove unused draw step
Campbell Barton [Thu, 3 Aug 2017 23:35:07 +0000 (09:35 +1000)]
Manipulator: remove unused draw step

4 years agoManipulator: correct center-pivot clamping
Campbell Barton [Thu, 3 Aug 2017 23:23:50 +0000 (09:23 +1000)]
Manipulator: correct center-pivot clamping

4 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

4 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

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

4 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

4 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.

4 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

4 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.

4 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!

4 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).

4 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.

4 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.

4 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

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

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

4 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

4 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.

4 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%).

4 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%.

4 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.

4 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.

4 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

4 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

4 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!)

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

4 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

4 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

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

4 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!

4 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.

4 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.

4 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.

4 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.

4 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.

4 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

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

4 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.

4 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.

4 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

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

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

4 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

4 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

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

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

4 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.

4 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.

4 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.

4 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!

4 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.

4 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.

4 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.

4 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.

4 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

4 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

4 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

4 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.

4 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.

4 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

4 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.

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

4 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.

4 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.

4 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.

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

4 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.

4 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

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