4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 7 Sep 2017 04:33:59 +0000 (14:33 +1000)]
Merge branch 'master' into blender2.8

4 years agoFix T52660: CUDA volume texture rendering not working on Fermi GPUs.
Brecht Van Lommel [Wed, 6 Sep 2017 16:12:45 +0000 (18:12 +0200)]
Fix T52660: CUDA volume texture rendering not working on Fermi GPUs.

4 years agoFix crash using arrow manipulator
Campbell Barton [Wed, 6 Sep 2017 15:55:32 +0000 (01:55 +1000)]
Fix crash using arrow manipulator

4 years agoMerge branch 'master' into blender2.8
Brecht Van Lommel [Wed, 6 Sep 2017 15:23:47 +0000 (17:23 +0200)]
Merge branch 'master' into blender2.8

4 years agoFix mistake in previous fix for T52640.
Brecht Van Lommel [Wed, 6 Sep 2017 15:21:58 +0000 (17:21 +0200)]
Fix mistake in previous fix for T52640.

4 years agoUse normalized project functions
Campbell Barton [Wed, 6 Sep 2017 15:19:37 +0000 (01:19 +1000)]
Use normalized project functions

4 years agoFix T52640: crash when opening image file browser in some cases.
Brecht Van Lommel [Wed, 6 Sep 2017 13:56:01 +0000 (15:56 +0200)]
Fix T52640: crash when opening image file browser in some cases.

There was some invalid state in the screen here, some areas had
sa->full set even though no screen was maximized, which then caused
a restore from the wrong (empty) area, which then led to spacedata
being empty and a crash.

This fix properly clears the sa->full after restore, and also fixes
existing .blend files in such an invalid state.

4 years agoScrew Modifier: remove doubles option
Campbell Barton [Wed, 6 Sep 2017 14:10:13 +0000 (00:10 +1000)]
Screw Modifier: remove doubles option

Vertices on the axis can be optionally merged,
nice for creating objects which close at the end-points.

4 years agoMath Lib: normalized vector project functions
Campbell Barton [Wed, 6 Sep 2017 14:09:56 +0000 (00:09 +1000)]
Math Lib: normalized vector project functions

4 years agoFix T52661: mesh light shader using backfacing not working, after new sampling.
Brecht Van Lommel [Wed, 6 Sep 2017 11:46:27 +0000 (13:46 +0200)]
Fix T52661: mesh light shader using backfacing not working, after new sampling.

4 years agoFix T52652: Cycles image box mapping has flipped textures.
Brecht Van Lommel [Tue, 5 Sep 2017 16:11:13 +0000 (18:11 +0200)]
Fix T52652: Cycles image box mapping has flipped textures.

This breaks backwards compatibility some in that 3 sides will be mapped
differently now, but difficult to avoid and can be considered a bugfix.

4 years agoView3D Remap: skip defmaterial
Campbell Barton [Wed, 6 Sep 2017 10:57:25 +0000 (20:57 +1000)]
View3D Remap: skip defmaterial

This isn't library data.

4 years agoFix T52663: Remap used invalid local-view data
Campbell Barton [Wed, 6 Sep 2017 10:52:49 +0000 (20:52 +1000)]
Fix T52663: Remap used invalid local-view data

Only the camera from View3D.localvd is used,
other pointers may be invalid.

Longer term we should probably clear these to ensure no accidents.
For now just follow the rest of Blender's code and don't access.

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Wed, 6 Sep 2017 06:50:59 +0000 (16:50 +1000)]
Merge branch 'master' into blender2.8

4 years agoFix error in high bit-depth image tile drawing
Campbell Barton [Wed, 6 Sep 2017 06:08:01 +0000 (16:08 +1000)]
Fix error in high bit-depth image tile drawing

From @1xundoredo in D2824

4 years agoRigidbody: Fix regression introduced in ee3fadd
Sergej Reich [Tue, 5 Sep 2017 17:53:32 +0000 (19:53 +0200)]
Rigidbody: Fix regression introduced in ee3fadd

Baking rigid body cache was broken if some cached frames already

This is just a band aid for release, the logic need to be looked into

4 years agoFix T52374: Changes of rigid body related settings during simulation will break the...
Sergej Reich [Tue, 5 Sep 2017 05:12:30 +0000 (07:12 +0200)]
Fix T52374: Changes of rigid body related settings during simulation will break the simulation

Revert 9cd6b033edc8c1b87d10d and do a better fix for T50230.

4 years agoFix T52251: Knife cur displaces surface
Campbell Barton [Tue, 5 Sep 2017 15:50:36 +0000 (01:50 +1000)]
Fix T52251: Knife cur displaces surface

4 years agoCycles: Fix compilation error with CUDA after recent changes
Sergey Sharybin [Tue, 5 Sep 2017 14:52:45 +0000 (16:52 +0200)]
Cycles: Fix compilation error with CUDA after recent changes

4 years agoFix T52441: Principle BSDF clearcoat
Dalai Felinto [Tue, 5 Sep 2017 14:33:08 +0000 (16:33 +0200)]
Fix T52441: Principle BSDF clearcoat

Since the change to prevent shader recompilation at every update, we got
a regression when clearcoat was used.

Basically at the shader build time we would determine if the shader
needed clear coat, and if it didin't, it would build a different GLSL

However if later the user updated the clearcoat value so that it would
then require the full clearcoat shader, the user wouldn't get it until
manually forcing the shader to recompile, or reopening the file.

We now handle the optimization in the GLSL code. That adds a minimum
overhead due to branching. But the overall performance seems unchanged
(tested on linux in AMD and NVidia).

Reviewers: pascal, brecht, fclem

Differential Revision:

4 years agoManipulator: Fix arrow2d drawing outside hotspot
Campbell Barton [Tue, 5 Sep 2017 14:40:20 +0000 (00:40 +1000)]
Manipulator: Fix arrow2d drawing outside hotspot

4 years agoBuildbot: Fix paths to sndfile and flac
Sergey Sharybin [Tue, 5 Sep 2017 14:17:48 +0000 (16:17 +0200)]
Buildbot: Fix paths to sndfile and flac

Need this in 2.79 branch as well, since build rules are based on this files.

4 years agoManipulator: cage2d initial rotation support
Campbell Barton [Tue, 5 Sep 2017 13:45:35 +0000 (23:45 +1000)]
Manipulator: cage2d initial rotation support

4 years agoManipulator: missing exit() call
Campbell Barton [Tue, 5 Sep 2017 14:00:46 +0000 (00:00 +1000)]
Manipulator: missing exit() call

4 years agoFix T52433: Volume Absorption color tint
Sergey Sharybin [Tue, 5 Sep 2017 13:38:11 +0000 (15:38 +0200)]
Fix T52433: Volume Absorption color tint

Need to exit the volume stack when shadow ray laves the medium.

Thanks Brecht for review and help in troubleshooting!

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 5 Sep 2017 12:56:03 +0000 (22:56 +1000)]
Merge branch 'master' into blender2.8

4 years agoCleanup: use const
Campbell Barton [Tue, 5 Sep 2017 12:39:00 +0000 (22:39 +1000)]
Cleanup: use const

Also use assert w/ rotate_m4.

4 years agoCycles: Cleanup, style
Sergey Sharybin [Tue, 5 Sep 2017 10:42:45 +0000 (12:42 +0200)]
Cycles: Cleanup, style

4 years agoFix T52649: missing custom (split) normals from FBX exporter.
Bastien Montagne [Mon, 4 Sep 2017 19:02:46 +0000 (21:02 +0200)]
Fix T52649: missing custom (split) normals from FBX exporter.

Own mistake in recent rB25c5928b2b6 (this DOES NOT affect 2.79 release).

4 years agoFix T52531: Blender 2D stabilisation node issue when autoscale is selected
Sergey Sharybin [Mon, 4 Sep 2017 14:40:55 +0000 (16:40 +0200)]
Fix T52531: Blender 2D stabilisation node issue when autoscale is selected

Threading conflict, should be safe for 2.79.

4 years agoPyAPI: Add bpy.utils.register_classes_factory
Campbell Barton [Mon, 4 Sep 2017 14:22:31 +0000 (00:22 +1000)]
PyAPI: Add bpy.utils.register_classes_factory

Avoids having boiler plate register/unregister functions.

4 years agoFix T52522: VSE renders with alpha transparent PNG image incorrectly
Sergey Sharybin [Mon, 4 Sep 2017 12:46:17 +0000 (14:46 +0200)]
Fix T52522: VSE renders with alpha transparent PNG image incorrectly

Need some extra checks and should be probably end up in 2.79 since that's a regression.

4 years agoCycles: Fix compilation warning
Sergey Sharybin [Mon, 4 Sep 2017 11:28:15 +0000 (13:28 +0200)]
Cycles: Fix compilation warning

4 years agoFix T52533: Blender shuts down when rendering duplicated smoke domain
Sergey Sharybin [Mon, 4 Sep 2017 11:14:54 +0000 (13:14 +0200)]
Fix T52533: Blender shuts down when rendering duplicated smoke domain

4 years agoPyAPI: fix rna_info for changes in type access
Campbell Barton [Mon, 4 Sep 2017 06:39:13 +0000 (16:39 +1000)]
PyAPI: fix rna_info for changes in type access

4 years agoPyDoc: update context_type_map
Campbell Barton [Mon, 4 Sep 2017 06:19:27 +0000 (16:19 +1000)]
PyDoc: update context_type_map

4 years agoRNA/PyAPI: Expose Py classes in bpy.types
Campbell Barton [Mon, 4 Sep 2017 04:49:27 +0000 (14:49 +1000)]
RNA/PyAPI: Expose Py classes in bpy.types

Operators and their properties are two different types

Previously both operators and their properties are added
causing C operators to access the properties, Python the classes.

Favor consistency in this case so only Python classes are added.

4 years agoCleanup: avoid confusing assignment
Campbell Barton [Mon, 4 Sep 2017 04:23:39 +0000 (14:23 +1000)]
Cleanup: avoid confusing assignment

4 years agoT52534: Compositor artifacts when scaling
Jeroen Bakker [Sun, 3 Sep 2017 14:47:39 +0000 (16:47 +0200)]
T52534: Compositor artifacts when scaling

Increased the maxx and maxy area of interest when scaling in this case.

4 years agoFix T52634: EditMesh Remove doubles could hang
Campbell Barton [Sun, 3 Sep 2017 13:13:20 +0000 (23:13 +1000)]
Fix T52634: EditMesh Remove doubles could hang

A single diagonal axis was used for sorting coordinates,
the algorithm relied on users not having vertices axis aligned.

Use BLI_kdtree to remove doubles instead.

Overall speed varies, it's more predictable than the previous method.
Some typical tests gave speedup of ~1.4x - 1.7x.

4 years agoBLI_kdtree: utility function to remove doubles
Campbell Barton [Sun, 3 Sep 2017 12:34:49 +0000 (22:34 +1000)]
BLI_kdtree: utility function to remove doubles

4 years agoCMake: use Blender's glew by default
Campbell Barton [Sun, 3 Sep 2017 06:34:10 +0000 (16:34 +1000)]
CMake: use Blender's glew by default

Use since it's always bundled to avoid any issues caused
by version mis-match.

4 years agoFix: Deleting GPencil keyframes in DopeSheet didn't redraw the view
Joshua Leung [Sun, 3 Sep 2017 00:46:01 +0000 (12:46 +1200)]
Fix: Deleting GPencil keyframes in DopeSheet didn't redraw the view

4 years agoFix: Border select for GPencil keyframes was including those in the "datablock" chann...
Joshua Leung [Sun, 3 Sep 2017 00:40:49 +0000 (12:40 +1200)]
Fix: Border select for GPencil keyframes was including those in the "datablock" channels even though those weren't visible

This meant that it was easy to accidentally select too many keyframes

4 years agoFix: GPencil Sequence Interpolation for thickness/strength was inverted
Joshua Leung [Sat, 2 Sep 2017 15:38:44 +0000 (03:38 +1200)]
Fix: GPencil Sequence Interpolation for thickness/strength was inverted

For example, if you have two keyframes:
  k1 = 1px, k2 = 10px

it was doing:
  1px, 9px, 8px, ..., 3px, 2px, 10px
instead of:
  1px, 2px, 3px, ..., 8px, 9px, 10px

4 years agoFix T52227: Time Slide tool doesn't take NLA mapping into account
Joshua Leung [Sat, 2 Sep 2017 15:35:27 +0000 (03:35 +1200)]
Fix T52227: Time Slide tool doesn't take NLA mapping into account

To be backported to 2.79

4 years ago[deps/msvc] Debug flags for optimized debug libs were inverted for cxx.
Ray Molenkamp [Sat, 2 Sep 2017 23:14:42 +0000 (17:14 -0600)]
[deps/msvc] Debug flags for optimized debug libs were inverted for cxx.

4 years agoCorrect own error simplifying matrix checks
Campbell Barton [Sat, 2 Sep 2017 14:05:11 +0000 (00:05 +1000)]
Correct own error simplifying matrix checks

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Sat, 2 Sep 2017 10:08:02 +0000 (20:08 +1000)]
Merge branch 'master' into blender2.8

4 years agoCleanup: use title caps for labels
Campbell Barton [Sat, 2 Sep 2017 05:42:29 +0000 (15:42 +1000)]
Cleanup: use title caps for labels

Also consistent quoting (single quotes for enums, text uses double).

4 years agoFixes to cage2d scaling in the node editor
Campbell Barton [Fri, 1 Sep 2017 16:00:57 +0000 (02:00 +1000)]
Fixes to cage2d scaling in the node editor

4 years agoBMesh: use predictable order for remove-doubles
Campbell Barton [Fri, 1 Sep 2017 17:27:55 +0000 (03:27 +1000)]
BMesh: use predictable order for remove-doubles

Each qsort implementation may give different results when values match.

Now fallback to sorting by index.

4 years agoRevert "Manipulator: remove unused event hack"
Campbell Barton [Fri, 1 Sep 2017 14:15:35 +0000 (00:15 +1000)]
Revert "Manipulator: remove unused event hack"

This reverts commit 134e927965c9871df8a9e13806f1cd48f4d43f16.

Writing into const event is very bad,
but this change broke compositor manipulators.

Will look into better solution eventually.

4 years agoFix T52472: VSE Audio Volume not set immediately
Joerg Mueller [Fri, 1 Sep 2017 10:27:21 +0000 (12:27 +0200)]
Fix T52472: VSE Audio Volume not set immediately

Audio mixing is done with volume interpolation. A new handle started at
volume 1, now starting at volume 0 for a smooth fade in.

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Fri, 1 Sep 2017 09:17:14 +0000 (19:17 +1000)]
Merge branch 'master' into blender2.8

4 years agoRNA: demote non-strict class naming to warning
Campbell Barton [Fri, 1 Sep 2017 07:06:14 +0000 (17:06 +1000)]
RNA: demote non-strict class naming to warning

This stops a lot of add-ons from registering,
while this must be resolved but there no need to force error just now.

4 years agoCycles: follow strict class naming convention
Campbell Barton [Fri, 1 Sep 2017 06:08:25 +0000 (16:08 +1000)]
Cycles: follow strict class naming convention

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 31 Aug 2017 16:30:48 +0000 (02:30 +1000)]
Merge branch 'master' into blender2.8

4 years agoRNA: strict naming for types in bpy.types
Campbell Barton [Thu, 31 Aug 2017 14:58:18 +0000 (00:58 +1000)]
RNA: strict naming for types in bpy.types

Blender scripts already do this, some addons will need updating.

4 years agoCleanup: strict naming conventions
Campbell Barton [Thu, 31 Aug 2017 14:57:36 +0000 (00:57 +1000)]
Cleanup: strict naming conventions

4 years agoIncrease max/min frame range to over a million
Dalai Felinto [Thu, 31 Aug 2017 14:06:08 +0000 (16:06 +0200)]
Increase max/min frame range to over a million

For some specific pipelines (e.g., holographic rendering) you can easily
need over a million frames (1k * 1k view angles).

It seems a corner case, but there is no real reason not to allow users
doing that.

That said we do loose subframe precision in the highest frame range. Which can
affect motionblur. The current maximum sub-frame precision we have is 16.
While the previous limit of 500k frames has a precision of 32.

Thanks to Campbell Barton for the help here.

To be backported to 2.79

4 years agoRNA: Limit which classes struct-map contains
Campbell Barton [Thu, 31 Aug 2017 13:32:21 +0000 (23:32 +1000)]
RNA: Limit which classes struct-map contains

Only add subclasses of: Menu, Panel, Header, UIList, Operator

This helps avoid unnecessary naming collisions,

See T52599 for details

4 years agoCycles: Cleanup, indentation and trailing whitespace
Sergey Sharybin [Thu, 31 Aug 2017 12:47:49 +0000 (14:47 +0200)]
Cycles: Cleanup, indentation and trailing whitespace

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 31 Aug 2017 11:57:14 +0000 (21:57 +1000)]
Merge branch 'master' into blender2.8

4 years agoCycles: Fix typo in comment
Sergey Sharybin [Thu, 31 Aug 2017 11:24:32 +0000 (13:24 +0200)]
Cycles: Fix typo in comment

4 years agoCorrect last commit
Campbell Barton [Thu, 31 Aug 2017 09:12:45 +0000 (19:12 +1000)]
Correct last commit

4 years agoRNA: existing type check used wrong identifier
Campbell Barton [Thu, 31 Aug 2017 08:42:48 +0000 (18:42 +1000)]
RNA: existing type check used wrong identifier

Own error in recent type checks, in many cases the 'idname'
is used for the struct identifier, not the 'identifier'
which is the Python class name in this context.

4 years agoFix T52591: OpenColorIO not working correct with OpenGL core profile on macOS.
Brecht Van Lommel [Wed, 30 Aug 2017 16:28:33 +0000 (18:28 +0200)]
Fix T52591: OpenColorIO not working correct with OpenGL core profile on macOS.

Also remove textureSize() replacement code, is always supported now.

4 years agoOCIO: use modern GLSL texture functions
Mike Erwin [Wed, 30 Aug 2017 17:19:59 +0000 (13:19 -0400)]
OCIO: use modern GLSL texture functions

small part of ongoing OpenGL upgrade

4 years agoManipulator: correct pivot w/ non 1:1 aspect
Campbell Barton [Wed, 30 Aug 2017 17:07:05 +0000 (03:07 +1000)]
Manipulator: correct pivot w/ non 1:1 aspect

4 years agoManipulator: empty image manipulator, use aspect
Campbell Barton [Wed, 30 Aug 2017 16:36:47 +0000 (02:36 +1000)]
Manipulator: empty image manipulator, use aspect

4 years agoManipulator: replace old cage2d manipulator
Campbell Barton [Wed, 30 Aug 2017 15:38:51 +0000 (01:38 +1000)]
Manipulator: replace old cage2d manipulator

Mostly internal changes, keeping both manipulators
could have worked but there was no point long term.

There are still some glitches to resolve, will work on those next.

4 years agoManipulator: rename callback type
Campbell Barton [Wed, 30 Aug 2017 08:39:07 +0000 (18:39 +1000)]
Manipulator: rename callback type

4 years agoCycles: Add tangent attribute tests
Sergey Sharybin [Wed, 30 Aug 2017 15:42:00 +0000 (17:42 +0200)]
Cycles: Add tangent attribute tests

4 years agoFix T52588: Shape key value driver variables of duplicated object sets refer to old...
Bastien Montagne [Wed, 30 Aug 2017 15:24:06 +0000 (17:24 +0200)]
Fix T52588: Shape key value driver variables of duplicated object sets refer to old objects.

Regression since 2.78, to be backported to 2.79.

4 years agoEevee: Fix conditional statement depending on unitialized value
Dalai Felinto [Wed, 30 Aug 2017 09:09:07 +0000 (11:09 +0200)]
Eevee: Fix conditional statement depending on unitialized value

Basically since g_data was malloc'ed (instead of calloc'ed)
g_data->minzbuffer was never initialized.

So when running DRW_framebuffer_init after EEVEE_effects_init, the test
to *g_data->minzbuffer would lead to unpredictable results.

This was caught by valgrind, reported by Sergey Sharybin.

4 years agoRefactor 'split faces' mesh code.
Bastien Montagne [Wed, 30 Aug 2017 14:42:53 +0000 (16:42 +0200)]
Refactor 'split faces' mesh code.

Previous version was trying to do a quick and simple process in the case
we were only considering smooth/flat status of faces.

Thing is, even then, the algorithm was not actually working in all
possible situations, e.g. two smooth faces having a single vertex in
common, but no common edges, would not have split that vertex, leading
to incorrect shading etc.

So now, tweaked slightly our split normals code to be able to generate
lnor spaces even when autosmooth is disabled, and we always go that way
when splitting faces.

Using smooth fans from clnor spaces is not only the only way to get 100%
correct results, it also makes face split code simpler.

4 years agoAttempt to fix OpenColorIO issues on Mac
Dalai Felinto [Wed, 30 Aug 2017 13:06:53 +0000 (15:06 +0200)]
Attempt to fix OpenColorIO issues on Mac

We cannot have version130 there (should use version 330 instead).
Patch suggested by Brecht Van Lommel

4 years agoFixing T52477 - switching from custom ray/triangle intersection code to the one from...
Stefan Werner [Wed, 30 Aug 2017 09:47:33 +0000 (11:47 +0200)]
Fixing T52477 - switching from custom ray/triangle intersection code to the one from util_intersection.h. This fixes the bug and makes the code more readable and maintainable.

4 years agoDepsgraph: Copy-on-write component does not depend on itself
Sergey Sharybin [Tue, 29 Aug 2017 15:16:05 +0000 (17:16 +0200)]
Depsgraph: Copy-on-write component does not depend on itself

4 years agoManipulator: remove inline matrix calculation
Campbell Barton [Wed, 30 Aug 2017 08:13:25 +0000 (18:13 +1000)]
Manipulator: remove inline matrix calculation

4 years agoManipulator: run callback when calculating the final matrix
Campbell Barton [Wed, 30 Aug 2017 07:53:32 +0000 (17:53 +1000)]
Manipulator: run callback when calculating the final matrix

4 years agoCycles: Fix build with networking enabled
Mai Lavelle [Wed, 30 Aug 2017 04:19:44 +0000 (00:19 -0400)]
Cycles: Fix build with networking enabled

4 years agoFix Cycles Windows render errors with BVH2 CPU rendering.
Brecht Van Lommel [Tue, 29 Aug 2017 19:11:47 +0000 (21:11 +0200)]
Fix Cycles Windows render errors with BVH2 CPU rendering.

One problem is that it was always using __mm_blendv_ps emulation even if the
instruction was supported. The other that the emulation function was wrong.

Thanks a lot to Ray Molenkamp for tracking this one down.

4 years agoDepsgraph: Fix crash when ungrouping node group
Sergey Sharybin [Tue, 29 Aug 2017 15:12:43 +0000 (17:12 +0200)]
Depsgraph: Fix crash when ungrouping node group

We shouldn't tag both COW and shading parameters ocmponents for update at
the same time.

4 years agoDepsgraph: Fix missing material update when driving property in a group
Sergey Sharybin [Tue, 29 Aug 2017 15:03:07 +0000 (17:03 +0200)]
Depsgraph: Fix missing material update when driving property in a group

4 years agoAlembic: Fix T52579: crash when replacing slightly different alembic files
Sybren A. Stüvel [Tue, 29 Aug 2017 14:58:13 +0000 (16:58 +0200)]
Alembic: Fix T52579: crash when replacing slightly different alembic files

Apparently with Maya in a certain configuration, it's possible to have an
Alembic object without schema in the Alembic file. This is now handled
properly, instead of crashing on a null pointer.

4 years agoFix possibly missing flushes back to copy-on-write operation
Sergey Sharybin [Tue, 29 Aug 2017 14:28:06 +0000 (16:28 +0200)]
Fix possibly missing flushes back to copy-on-write operation

Could have happened if multiple tags per object happens.

4 years agoFix T48079: Maintain Volume constraint overcompensates.
Alexander Gavrilov [Tue, 29 Aug 2017 12:23:47 +0000 (15:23 +0300)]
Fix T48079: Maintain Volume constraint overcompensates.

The coefficient has been wrong since introduction for some reason.

Not backwards compatible, should not be merged to 2.7*.

4 years agoSupport Copy To Selected and Alt-Click for F-Curves in the curve editor.
Alexander Gavrilov [Sat, 19 Aug 2017 16:58:39 +0000 (19:58 +0300)]
Support Copy To Selected and Alt-Click for F-Curves in the curve editor.

This affects the curve display color setting, but is really intended
for future per-curve options.

The id_data reference in the created rna pointers refers to the object
even if the curve is actually owned by its action, which is somewhat
inconsistent, but the same problem can be found in existing code.
Fixing it requires changes in animdata filter API.

4 years agoDepsgraph: Fix missing updates when tweaking node tree parameters
Sergey Sharybin [Tue, 29 Aug 2017 10:51:56 +0000 (12:51 +0200)]
Depsgraph: Fix missing updates when tweaking node tree parameters

The is following: split copy on write update for node trees, and if we are only
tagging for uniform buffer update we skip whole datablock copy and only invoke
copy default_values form original nodetree to a copied one.

Thing which i'm not sure is: whether we need to use different branches in graph
itself to control such a conditional behavior, or whether we need to store tag
somewhere in the dependency graph. There are obviously cons and pros in both
approaches, and need to think about this. Maybe with more examples it becomes
more obvious which way is better.

This only fixes manual tweaks for now, animation support is coming.

4 years agoAdd utility function to copy default values from one tree to another
Sergey Sharybin [Tue, 29 Aug 2017 10:20:55 +0000 (12:20 +0200)]
Add utility function to copy default values from one tree to another

The trees should match in nodes layout completely.

4 years agoManipulator: use cage2d_rotate in UV view
Campbell Barton [Tue, 29 Aug 2017 09:29:27 +0000 (19:29 +1000)]
Manipulator: use cage2d_rotate in UV view

Use when selection bounds isn't a single point.

4 years agoManipulator: new cage2d manipulator
Campbell Barton [Tue, 29 Aug 2017 09:15:36 +0000 (19:15 +1000)]
Manipulator: new cage2d manipulator

Adding alongside the existing one for now,
but it should eventually replace it.

Uses a matrix instead of (position + scale),
written so rotation can be done more easily.

Currently has a primitive handle for rotation, supports corner scaling.

4 years agoView2D: function to get view to region matrix
Campbell Barton [Tue, 29 Aug 2017 09:36:06 +0000 (19:36 +1000)]
View2D: function to get view to region matrix

4 years agoDepsgraph: Fix missing updates when changing node tree topology
Sergey Sharybin [Tue, 29 Aug 2017 09:26:57 +0000 (11:26 +0200)]
Depsgraph: Fix missing updates when changing node tree topology

There were two issues here:

1. material_update did not do anything, because DEG_id_tag_update was storing
   update tags in original IDs, which had nothing evaluated. Even more, material
   update should have been called with evaluated version of material, Solved
   this by copying update tag from original ID to a copied one.

   However, perhaps DEG_id_tag_update should tag both original and copied ID,
   so updates are never gets lots if some depsgraph is not visible.

2. Tagging material for update should ensure it's copied version of node tree is
   up to date, otherwise material will still use old node tree.

This solves missing material updates when changing topology. Tweaking values is
still broken, because of GPUMaterial using pointer to original node's socket
value, which gets broken after copy-on-write of the node tree (pointers of nodes
are changing).

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 29 Aug 2017 09:38:01 +0000 (19:38 +1000)]
Merge branch 'master' into blender2.8

4 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 29 Aug 2017 06:06:26 +0000 (16:06 +1000)]
Merge branch 'master' into blender2.8

4 years agoTransform: scale center override by aspect
Campbell Barton [Tue, 29 Aug 2017 06:01:16 +0000 (16:01 +1000)]
Transform: scale center override by aspect

Needed for image space.

4 years agoCleanup: naming (RECT -> CAGE2D)
Campbell Barton [Tue, 29 Aug 2017 02:51:44 +0000 (12:51 +1000)]
Cleanup: naming (RECT -> CAGE2D)

Make cage2d 'part' defines public (needed to assign operator actions).