blender.git
3 years agoCycles: OpenCL split kernel cleanup, move casts from .h files to .cl files
Sergey Sharybin [Thu, 29 Oct 2015 16:44:36 +0000 (21:44 +0500)]
Cycles: OpenCL split kernel cleanup, move casts from .h files to .cl files

Ideally we shouldn't use char* at all, but for now we have to, so at least
let's assume common .h files are free from pointer magic.

3 years agoBGE: Cleanup KX_IPO_SGCOntroller.
Porteries Tristan [Thu, 29 Oct 2015 14:13:04 +0000 (15:13 +0100)]
BGE: Cleanup KX_IPO_SGCOntroller.

- Add spaces around operators.
- Replace !(a == b) by a != b
- Add "f" at end of float value.
- Remove extras lines in fonctions declaration.
- Remove indentation to align attributes definition.

3 years agoOpenCL wrangler: Update to latest version to fix issues with -1001 error code
Sergey Sharybin [Thu, 29 Oct 2015 15:37:38 +0000 (20:37 +0500)]
OpenCL wrangler: Update to latest version to fix issues with -1001 error code

3 years agoFix error introduced by D1588
Campbell Barton [Thu, 29 Oct 2015 13:09:25 +0000 (00:09 +1100)]
Fix error introduced by D1588

3 years agoBGE: Fix T46338 replace mesh from an other scene.
Porteries Tristan [Thu, 29 Oct 2015 11:05:06 +0000 (12:05 +0100)]
BGE: Fix T46338 replace mesh from an other scene.

To make consistent with KX_GameObject.replaceMesh, we don't allow this behavior but print an error message for the replace mesh actuator.
e.g : Warning: object "Cube" from ReplaceMesh actuator "Edit Object" uses a mesh not owned by an object in scene "scene1"

Reviewers: youle.

3 years agoNew depsgraph: Optimize updates flush
Sergey Sharybin [Thu, 29 Oct 2015 09:14:09 +0000 (14:14 +0500)]
New depsgraph: Optimize updates flush

Previously it was possible that same component will be tagged for update
again and again, making update flushing really slow. Now we'll store flag
whether component was fully tagged.

This is still temporary solution because ideally we should just support
partial updates, but that's for the future.

Gives around 10% speedup on file from jpbouza.

3 years agoBGE: Fix T35188: Duplicate an instance of group.
Porteries Tristan [Wed, 28 Oct 2015 20:58:40 +0000 (21:58 +0100)]
BGE: Fix T35188: Duplicate an instance of group.

This behavior caused a double free.
Before when we duplicated an instance of a group the new instance keep the pointer of the group but was not added in the group instance list (normal).
And during the object deletion we tried to remove the object in the instance list but anyways if it failed decrement the reference count.
Set the group and the instance list to NULL in ProcessReplica avoid these kind of problems.

3 years agoTemporary "fix" for crash when saving OpenEXR Multi-View from Image Editor
Dalai Felinto [Wed, 28 Oct 2015 16:05:49 +0000 (14:05 -0200)]
Temporary "fix" for crash when saving OpenEXR Multi-View from Image Editor

3 years agoFix T46617 File Output Node seems to save only black images into OpenEXR image data
Dalai Felinto [Wed, 28 Oct 2015 15:41:01 +0000 (13:41 -0200)]
Fix T46617 File Output Node seems to save only black images into OpenEXR image data

If the node output had only one layer, it would be detected as singlelayer, and it would miss the blender exr header string

3 years agoFreestyle: Fix for 'Distance from Object' modifiers without a target object.
Tamito Kajiyama [Wed, 28 Oct 2015 14:33:16 +0000 (23:33 +0900)]
Freestyle: Fix for 'Distance from Object' modifiers without a target object.

'Distance from Object' color/alpha/thickness modifiers without a target
object were raising a run-time exception although it is not considered an
error condition.

3 years agoFix T44231: Freestyle causes crash on render.
Tamito Kajiyama [Wed, 28 Oct 2015 14:09:10 +0000 (23:09 +0900)]
Fix T44231: Freestyle causes crash on render.

The reported crash was confirmed as a segmentation fault in std::sort().
The cause of the crash was traced down to a binary comparison function
that was not satisfying the so-called strict weak ordering requirements of
the C++ standard sorting function.  Specifically, the comparison operator
has to return false when two objects are equivalent (i.e., comp(a, a) must
be false), but that requirement was not met.

Since the binary comparison operator in question could be a user-defined
Python function, here a safety measure is implemented in the C++ layer to
make sure the aforementioned requirement is always satisfied.

3 years agoCeres: Update to the latest version
Sergey Sharybin [Wed, 28 Oct 2015 13:55:04 +0000 (18:55 +0500)]
Ceres: Update to the latest version

It brings all the performance improvements, bug fixes and stability improvements
which were done in the last year of Ceres development.

3 years agoBGE: Fix T45945: Action bouncing.
Porteries Tristan [Wed, 28 Oct 2015 13:30:52 +0000 (14:30 +0100)]
BGE: Fix T45945: Action bouncing.

Bug introduced in 583fa7d1e, KX_GameObject.setActionFrame can make BL_Action::m_starttime negative. But in BL_Action::Update m_starttime is set to the current time if it's negative.
To fix it we use a boolean BL_Action::m_initializedTime to know if we should initialize the time in BL_Action::Update, it's more stable than comparing times.

Tested with bug task T45945 and T32054, with an extra patch about to fix suspend resume scene issues with actions : D1569

3 years agoTransform: Replace t->imval w/ t->mouse.imval
Campbell Barton [Wed, 28 Oct 2015 11:56:09 +0000 (22:56 +1100)]
Transform: Replace t->imval w/ t->mouse.imval

Initial mouse position was saved in two different places

D1588 by @mauge

3 years agoDocs: support alternate binary path for PyAPI
Campbell Barton [Wed, 28 Oct 2015 11:22:00 +0000 (22:22 +1100)]
Docs: support alternate binary path for PyAPI

3 years agoCleanup: warning/style
Campbell Barton [Wed, 28 Oct 2015 12:30:08 +0000 (23:30 +1100)]
Cleanup: warning/style

3 years agoCycles: Fix compilation error with MSVC
Sergey Sharybin [Wed, 28 Oct 2015 12:32:26 +0000 (17:32 +0500)]
Cycles: Fix compilation error with MSVC

3 years agoFollow up to previous commit, proper fix for T46284, incorrect Texture
Antony Riakiotakis [Wed, 28 Oct 2015 10:51:50 +0000 (12:51 +0200)]
Follow up to previous commit, proper fix for T46284, incorrect Texture
shading in Texture paint mode and cycles

3 years agoRevert "Fix T46284: Texture paint, wrong shading mode"
Antony Riakiotakis [Wed, 28 Oct 2015 10:36:25 +0000 (12:36 +0200)]
Revert "Fix T46284: Texture paint, wrong shading mode"

Should fix T46616 but will reintroduce T46284.
The second, original bug needs different handling

This reverts commit 904db487a7b14c31282fe0284612159a836657cd.

3 years agoBGE: Fix T46557: Empty collision bounds option with character physics
Ulysse Martin [Wed, 28 Oct 2015 01:02:31 +0000 (02:02 +0100)]
BGE: Fix T46557: Empty collision bounds option with character physics

- Fix in rna_object.c rna_GameObjectSettings_physics_type_set->The
collision bounds type can't be empty for character physics
- Add do_version for the .blends already saved with collision bounds
option empty (characters)

Reviewers: campbellbarton, panzergame, lordloki

Reviewed By: panzergame, lordloki

Subscribers: lordloki

Projects: #game_engine

Maniphest Tasks: T46557

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

3 years agoBGE: Fix T44448: LOD will display wrong LOD level object if zoomed out
Jorge Bernal [Wed, 28 Oct 2015 00:21:36 +0000 (01:21 +0100)]
BGE: Fix T44448: LOD will display wrong LOD level object if zoomed out
then in

Current object distance hasn't to be cached.

3 years agoFix T46471: Sculpt strokes doesn't mark file as modified
Sergey Sharybin [Tue, 27 Oct 2015 23:10:00 +0000 (04:10 +0500)]
Fix T46471: Sculpt strokes doesn't mark file as modified

3 years agoBuldbot: Disable 32bit kernels
Sergey Sharybin [Tue, 27 Oct 2015 19:45:31 +0000 (00:45 +0500)]
Buldbot: Disable 32bit kernels

Currently disable all of them, in practice i think way to go should be:

- Disable Experimental kernels on 32 bit, build up to sm_35
- Later we can drop all 32bit kernels, but try to keep at least one release
  with some of the kernels (they'll cover 99% of users anyway)

Before doing any changes we should surely communicate such a changes before
we apply them.

3 years agoCycles: Expose user-defined shutter curve to the interface
Sergey Sharybin [Tue, 27 Oct 2015 14:00:51 +0000 (19:00 +0500)]
Cycles: Expose user-defined shutter curve to the interface

Shutter curve now can be controlled using curve mapping widget in the motion
blur panel in Render buttons. Only mapping from 0..1 by x axis are allowed,
Y values will be normalized to fill in 0..1 space as well automatically.

Y values of 0 means fully closed shutter, Y values of 1 means fully opened
shutter.

Default mapping is set to old behavior when shutter opens and closes instantly.

This shutter mapping curve could easily be used by any other render engine by
accessing scene.render.motion_blur_shutter_curve.

Reviewers: #cycles, brecht, juicyfruit, campbellbarton

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

3 years agoCycles: Support user-defined shutter curve
Sergey Sharybin [Tue, 27 Oct 2015 08:16:04 +0000 (13:16 +0500)]
Cycles: Support user-defined shutter curve

Previously shutter was instantly opening, staying opened for the shutter time
period of time and then instantly closing. This isn't quite how real cameras
are working, where shutter is opening with some curve. Now it is possible to
define user curve for how much shutter is opened across the sampling period
of time.

This could be used for example to make motion blur trails softer.

3 years agoCycles: Use new CDF evaluation utility for the pixel filter
Sergey Sharybin [Mon, 26 Oct 2015 15:23:18 +0000 (20:23 +0500)]
Cycles: Use new CDF evaluation utility for the pixel filter

Filter table should stay exactly the same, no changes in the render
results are expected at all.

3 years agoCycles: Add utility functions to evaluate CDF of a given functor
Sergey Sharybin [Mon, 26 Oct 2015 14:20:40 +0000 (19:20 +0500)]
Cycles: Add utility functions to evaluate CDF of a given functor

3 years agoSupport symmetrical curve mapping presets
Sergey Sharybin [Sun, 25 Oct 2015 11:14:19 +0000 (16:14 +0500)]
Support symmetrical curve mapping presets

Previously curve mapping was always setting to only a single slope which then
was symmetrizied by a tools (such as brush or compositing).

With this change it's possible to set curve to symmetrical slopes as a part
of preset.

3 years agoFix curve mapping linear preset not setting handle type correctly
Sergey Sharybin [Sun, 25 Oct 2015 10:58:25 +0000 (15:58 +0500)]
Fix curve mapping linear preset not setting handle type correctly

3 years agoFix makesrna generated C++ header have consistent whitespace for strings.
Martijn Berger [Tue, 27 Oct 2015 21:11:14 +0000 (22:11 +0100)]
Fix makesrna generated C++ header have consistent whitespace for strings.

3 years agoFix OS X user preferences open crash when changing virtual pixel size.
Brecht Van Lommel [Tue, 27 Oct 2015 19:03:20 +0000 (20:03 +0100)]
Fix OS X user preferences open crash when changing virtual pixel size.

The separate window state setting caused a crash due to doing live resize code
redrawing a window that has not yet been fully initialized.

3 years agoDocs: callback comments
Campbell Barton [Tue, 27 Oct 2015 16:13:49 +0000 (03:13 +1100)]
Docs: callback comments

3 years agoFix T46605: Compositing causes access violation when rendering from command line
Sergey Sharybin [Tue, 27 Oct 2015 16:03:22 +0000 (21:03 +0500)]
Fix T46605: Compositing causes access violation when rendering from command line

Seems was caused by the race condition in the stats printing, should be all fine now.

Nice for 'a' release.

3 years agoOpenSubdiv: Fix wrong handling of vertex parent
Sergey Sharybin [Tue, 27 Oct 2015 15:44:14 +0000 (20:44 +0500)]
OpenSubdiv: Fix wrong handling of vertex parent

Vertex parent was not registered as CPU data requirement.

Should be in the 'a' release.

3 years agoCompositor: Use mask name as mask node label
Sergey Sharybin [Tue, 27 Oct 2015 15:29:42 +0000 (20:29 +0500)]
Compositor: Use mask name as mask node label

This way it becomes much easier to navigate in roto compositor where it could
be 100s of masks in a production shot.

3 years agoCompositor: Add Invert option to the movie clip stabilization node
Sergey Sharybin [Tue, 27 Oct 2015 14:59:17 +0000 (19:59 +0500)]
Compositor: Add Invert option to the movie clip stabilization node

This appears to be really common workflow when you stabilize shot to make compo
easier (roto, some effects and so) and then re-introduce the motion back.

Surely it's doable with some magic nodes and manual network for transforming
but such workflow is too common in VFX to resist adding one small option in
single node for this.

3 years agoBGE: Fix T43218: Text of framerate and profile glitch in Multitexture shading
Ulysse Martin [Tue, 27 Oct 2015 14:22:22 +0000 (15:22 +0100)]
BGE: Fix T43218: Text of framerate and profile glitch in Multitexture shading

Fix T43218: Text of framerate and profile glitch in Multitexture shading

Reviewers: lordloki, panzergame

Reviewed By: panzergame

Subscribers: medved

Projects: #game_engine

Maniphest Tasks: T43218

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

3 years agoView3D offscreen buffer was interferring with view navigation
Dalai Felinto [Tue, 27 Oct 2015 13:27:26 +0000 (11:27 -0200)]
View3D offscreen buffer was interferring with view navigation

the RegionView3D matrices need to be re-set after drawing.

Review and touch ups by Campbell Barton

3 years agoFix: Open tmp windows with size multiplied by virtual pixelsize
Julian Eisel [Tue, 27 Oct 2015 11:53:58 +0000 (12:53 +0100)]
Fix: Open tmp windows with size multiplied by virtual pixelsize

Opening a tmp window on a 4K display with virtual pixelsize set to double results in a too small window. For Retina this seems to be handled on GHOST level already, so multiply by virtual pixelsize only.

3 years agoFix T46606: Trackball Rotate jumps releasing shift
Campbell Barton [Tue, 27 Oct 2015 10:46:22 +0000 (21:46 +1100)]
Fix T46606: Trackball Rotate jumps releasing shift

3 years agoBGE: Fix T31357: wrong zoom when sets camera.
Porteries Tristan [Tue, 27 Oct 2015 10:04:04 +0000 (11:04 +0100)]
BGE: Fix T31357: wrong zoom when sets camera.

This patch makes independant the override camera zoom and the default camera object zoom. The override zoom is 2.0f and the camera object zoom is computed with the RegionView3D camera zoom.
These features are only used for the embedded BGE, so there's no compatibility issues with the blenderplayer.
I let the override zoom with a setter to allow later to create an override camera in blenderplayer easily.

Tested with the 3 framing modes in embedded and standalone.

3 years agoBGE: generic python callback list + replace KX_PythonSeq.
Porteries Tristan [Mon, 26 Oct 2015 19:27:08 +0000 (20:27 +0100)]
BGE: generic python callback list + replace KX_PythonSeq.

I made this patch to declared a python list without converting all elements in python object (too slow) or use a CListValue which required CValue items (too expensive in memory).  In the case of a big list of points like a collision contacts points list, to use a CListValue we must implement a new class based on CValue for 3D vector to create a python proxy even if mathutils do it perfectly, we must also convert all points (frequently ~100 points) when fill the CListValue even if the list is not used (in the case of the collision callback). The easy way is to use callback (it doesn't worth to do an inheritance) which convert the item in PyObject only during an acces.
5 callbacks are used :
- Check if the list is valid = allow acces (like PyObjectPlus.invalid)
- Get the list size
- Get an item in the list by index.
- Get an item name in the list by index (used for operator `list["name"]`)
- Set an item in the list at the index position.
All of these callback take as first argument the client instance.
Why do we use a void * for the client instance ? : In KX_PythonInitTypes.cpp we have to initialize each python inherited class, if we use a template (the only other way) we must add this class each time we use a new type with in KX_PythonInitTypes.cpp

To check if the list can be accessed from python by the user, we check if the python proxy,  which is the `m_base` member, is still a valid proxy like in PyObjectPlus. But we can use a callback for more control of user access (e.g a list of collision point invalidate a frame later, in this case no real python owner).

This python list is easily defined with :
```
CPythonCallBackList(
void *client, // The client instance
PyObject *base, // The python instance which owned this list, used to know if the list is valid (like in KX_PythonSeq)
bool (*checkValid)(void *), // A callback to check if this list is till valid (optional)
int (*getSize)(void *), // A callback to get size
PyObject *(*getItem)(void *, int), // A callback to get an item
const char *(*getItemName)(void *, int), // A callback to get an item name (optional) use for acces by string key
bool (*setItem)(void *, int, PyObject *) // A callback to set an item (optional)
)
```
To show its usecase i replaced the odd KX_PythonSeq, it modify KX_Gameobject.sensors/controllers/actuators, SCA_IController.sensors/actuators and BL_ArmatureObject.constraints/channels.

Example : {F245193}, See message in console, press R to erase the object and see invalid proxy error message.

Reviewers: brita_, #game_python, youle, campbellbarton, moguri, agoose77, sergey

Reviewed By: campbellbarton, moguri, agoose77, sergey

Subscribers: sergey

Projects: #game_engine

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

3 years agoFix T46537: UV Image Editor. UV Sculpt toggle button doesn't show hotkey label when...
Bastien Montagne [Mon, 26 Oct 2015 15:34:18 +0000 (16:34 +0100)]
Fix T46537: UV Image Editor. UV Sculpt toggle button doesn't show hotkey label when active.

Poll function of that keymap was slightly... agressive.

3 years agoFix broken comment about our WM progress report for python (its not a progress bar...
Bastien Montagne [Mon, 26 Oct 2015 13:10:25 +0000 (14:10 +0100)]
Fix broken comment about our WM progress report for python (its not a progress bar at all).

3 years agoFix T46604: Crash in ChainPredicateIterator instantiated without predicates.
Tamito Kajiyama [Mon, 26 Oct 2015 09:17:12 +0000 (18:17 +0900)]
Fix T46604: Crash in ChainPredicateIterator instantiated without predicates.

Also fixed a potential crash in the copy constructor case.

3 years agoFreestyle: minor speed-up by omitting the calculation of the smallest edge size.
Tamito Kajiyama [Sun, 9 Aug 2015 14:36:53 +0000 (23:36 +0900)]
Freestyle: minor speed-up by omitting the calculation of the smallest edge size.

BlenderFileLoader tries to find the smallest edge size but the computed value is not used.

3 years agoCleanup: warning & whitespace
Campbell Barton [Mon, 26 Oct 2015 11:22:30 +0000 (22:22 +1100)]
Cleanup: warning & whitespace

3 years agoCleanup: Remove ToDo comment.
Thomas Dinges [Sun, 25 Oct 2015 19:54:26 +0000 (20:54 +0100)]
Cleanup: Remove ToDo comment.

I don't see how this could conflict, madd() in util_ssef.h has a different function signature.

3 years agoCleanup: Avoid some warnings on OS X with clang and update comment.
Thomas Dinges [Sun, 25 Oct 2015 19:48:28 +0000 (20:48 +0100)]
Cleanup: Avoid some warnings on OS X with clang and update comment.

3 years agoCleanup: Move pixel aspect to blender_camera_init().
Thomas Dinges [Sat, 24 Oct 2015 23:12:29 +0000 (01:12 +0200)]
Cleanup: Move pixel aspect to blender_camera_init().

3 years agoFix: Prevent warnings from popping up when trying to edit driver expressions from...
Joshua Leung [Mon, 26 Oct 2015 10:24:41 +0000 (23:24 +1300)]
Fix: Prevent warnings from popping up when trying to edit driver expressions from buttons

Previously, a warning was added to provide feedback to users trying to change the values
of driven properties why their edits would not have any effect on the propeerty. However,
it turned out that instead of only showing up when the user tried to increment/decrement/slide
the property's value, it was also firing everytime they were trying to edit the expression.
That however is not what we want at all!

This fix assumes that BUTTON_STATE_TEXT_EDITING is used for expression editing, and
BUTTON_STATE_NUM_EDITING (or everything else) refers to the user trying to adjust the
value normally.

3 years agoGraph Editor: Use Cursor X in Drivers mode during Transforms (where appropriate)
Joshua Leung [Mon, 26 Oct 2015 07:15:27 +0000 (20:15 +1300)]
Graph Editor: Use Cursor X in Drivers mode during Transforms (where appropriate)

3 years agoGraph Editor: Snap and Mirror keyframes now respect Cursor X in Drivers mode
Joshua Leung [Mon, 26 Oct 2015 07:13:29 +0000 (20:13 +1300)]
Graph Editor: Snap and Mirror keyframes now respect Cursor X in Drivers mode

When using the "Current Frame" options for these operators, the Cursor X value
will now be used instead of the current frame. Perhaps the labels could be changed
too, but for now, I guess this will be good enough.

3 years agoGraph Editor: Adjusting Change Frame and Jump to Keyframes operators to work with...
Joshua Leung [Mon, 26 Oct 2015 06:29:23 +0000 (19:29 +1300)]
Graph Editor: Adjusting Change Frame and Jump to Keyframes operators to work with Drivers Cursor

3 years agoFix T46599: Copy Rotation behaves erratically when Use Y is disabled
Joshua Leung [Mon, 26 Oct 2015 02:14:02 +0000 (15:14 +1300)]
Fix T46599: Copy Rotation behaves erratically when Use Y is disabled

When the "Use Y" option in the Copy Rotation constraint is disabled, the constraint
behaves eratically when rotating all the target on all axes at the same time.
This is partially to be expected due to the way that euler rotations work
(i.e. the rotation orders stuff - you should use a rotation order based on most to
least important/significant rotations). Hence, by locking Y, you're causing accuracy
problems for Z.

What was not expected though was that changing the rotation orders on the objects
involved (for the record, it's the constraint owner that counts) did nothing.
It turns out that for objects, the rotation order settings were getting ignored!
This commit fixes this problem, and this particular case can be resolved by using
"XZY".

Notes:
* Since all object constraints were previously working on the assumption that they
  used XYZ (default) order, it is possible that this change may have the unintended
  consequence of changing the behaviour of some rigs which relied on the buggy
  behaviour. Hopefully this will be a rare occurrence.

3 years agoGraph Editor: Allow "cursor x" to have fractional values when working with Drivers...
Joshua Leung [Sat, 10 Oct 2015 05:26:09 +0000 (18:26 +1300)]
Graph Editor: Allow "cursor x" to have fractional values when working with Drivers  (T46004)

When working is the Graph Editor it can be very important to be able to work with fractions
(sub integers), especially when working with Drivers. Currently the "Cursor Y" is hooked up
to "cursor_position_y" which allows fractions  but "Cursor X" is directly hooked up to
"frame_current" which is an integer.

This commit adds initial support for this feature.
* When in Drivers mode, the x-part of the cursor is mapped to a new "cursor_position_x"
  value which can have fractional values. Animation mode however remains mapped to frame_current

* This commit only adds the UI/property/drawing tweaks needed to support this.
  Many operators still need to be modified to consider this value instead of the
  current frame, for this to be more useful.

3 years agoFix: Missing update after scrubbing time in Graph Editor
Joshua Leung [Sat, 10 Oct 2015 05:16:13 +0000 (18:16 +1300)]
Fix: Missing update after scrubbing time in Graph Editor

Sometimes the timeline header didn't update after time-scrubbing in the graph
editor ends, leaving the "Pause" button visible until the next refresh of the
timeline (e.g. on mouse over)

3 years agoFix: X-axis values in Graph Editor should not be displayed as timecodes in "Drivers...
Joshua Leung [Sat, 10 Oct 2015 05:14:11 +0000 (18:14 +1300)]
Fix: X-axis values in Graph Editor should not be displayed as timecodes in "Drivers" mode

3 years agoAlternative presentation for interpolation indicator for discrete properties
Joshua Leung [Thu, 8 Oct 2015 12:48:16 +0000 (01:48 +1300)]
Alternative presentation for interpolation indicator for discrete properties

3 years agoGraph Editor: Disable interpolation setting for enum/boolean FCurves, as no interpola...
Joshua Leung [Thu, 8 Oct 2015 12:39:20 +0000 (01:39 +1300)]
Graph Editor: Disable interpolation setting for enum/boolean FCurves, as no interpolation is performed on those

3 years agondof: rework Mac driver glue
Mike Erwin [Sat, 24 Oct 2015 17:58:06 +0000 (19:58 +0200)]
ndof: rework Mac driver glue

Load driver dynamically at runtime instead of weak-linking the
3Dconnexion framework. Driver no longer needed at build time!

Works with really old drivers (as in PowerMac old), more recent
versions, and the latest which allows us to process events on a
separate thread.

3 years agoBGE: Cleanup: Code style BL_Shader
Thomas Szepe [Sun, 25 Oct 2015 18:43:46 +0000 (19:43 +0100)]
BGE: Cleanup: Code style BL_Shader

Reviewers: lordloki, youle, campbellbarton, sergey, kupoman, moguri, panzergame

Reviewed By: panzergame

Projects: #game_engine

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

3 years agoBGE: Fix issues with async libload.
Porteries Tristan [Sun, 25 Oct 2015 18:22:29 +0000 (19:22 +0100)]
BGE: Fix issues with async libload.

This patch fixes:
- the call of LibFree on a unfinished loaded library;
- memory leak created on end of game : the async libraries are loaded but not converted, so not freed with the master scene.

Reviewers: campbellbarton, sybren, youle, hg1, moguri, lordloki

Reviewed By: moguri, lordloki

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

3 years agoUse BLI_strncasecmp for text suggestions
Campbell Barton [Sun, 25 Oct 2015 06:44:32 +0000 (17:44 +1100)]
Use BLI_strncasecmp for text suggestions

3 years agoAvoid redundant normalize in obmat_to_viewmat
Campbell Barton [Sun, 25 Oct 2015 06:30:16 +0000 (17:30 +1100)]
Avoid redundant normalize in obmat_to_viewmat

3 years agoFix T46590 Strange camera behavior (partial revert of fbca69c6)
Dalai Felinto [Sat, 24 Oct 2015 23:02:42 +0000 (21:02 -0200)]
Fix T46590 Strange camera behavior (partial revert of fbca69c6)

I'm sure there is a way of using the new functions for the
obmat_to_viewmat() routine. But for now let's get it back to a working
state

3 years agoFix error in bone UI
Campbell Barton [Sat, 24 Oct 2015 18:50:40 +0000 (05:50 +1100)]
Fix error in bone UI

3 years agoCleanup: use quat to eul w/ mathutils API
Campbell Barton [Sat, 24 Oct 2015 06:48:32 +0000 (17:48 +1100)]
Cleanup: use quat to eul w/ mathutils API

3 years agoFix invalid exceptions w/ preview API
Campbell Barton [Sat, 24 Oct 2015 05:20:26 +0000 (16:20 +1100)]
Fix invalid exceptions w/ preview API

D1575 by @januz

3 years agoFix T46538: Mark and Clear Seam in UV Editor, assigning Hotkeys.
Bastien Montagne [Fri, 23 Oct 2015 12:34:57 +0000 (14:34 +0200)]
Fix T46538: Mark and Clear Seam in UV Editor, assigning Hotkeys.

UV Editor keymap is not bound to a given editor (spacetype)...

3 years agoFix related to T46538: do not popup choice menu of mark/clear seam UV editor op invok...
Bastien Montagne [Fri, 23 Oct 2015 12:00:28 +0000 (14:00 +0200)]
Fix related to T46538: do not popup choice menu of mark/clear seam UV editor op invoke when prop is already set!

3 years agoBLI_math: add mat3_normalized_to_* functions
Campbell Barton [Fri, 23 Oct 2015 20:02:51 +0000 (07:02 +1100)]
BLI_math: add mat3_normalized_to_* functions

Many uses of matrices for rotation keep them normalized,
so no need to normalize each time.

3 years agoCleanup: remove redundant math calls
Campbell Barton [Fri, 23 Oct 2015 18:29:53 +0000 (05:29 +1100)]
Cleanup: remove redundant math calls

3 years agoCleanup: simplify ED_view3d_from_m4
Campbell Barton [Fri, 23 Oct 2015 17:33:54 +0000 (04:33 +1100)]
Cleanup: simplify ED_view3d_from_m4

3 years agoBLI_math: add invert_qt_normalized
Campbell Barton [Fri, 23 Oct 2015 16:51:00 +0000 (03:51 +1100)]
BLI_math: add invert_qt_normalized

When the quat is known to be unit length, so we can avoid scaling
(just conjugate_qt which asserts on non unit quats).

3 years agoCleanup: rename 'datablocks' -> 'data-blocks'
Campbell Barton [Fri, 23 Oct 2015 15:44:43 +0000 (02:44 +1100)]
Cleanup: rename 'datablocks' -> 'data-blocks'

Similar to addons -> add-ons, for reading it fits better to hyphenate.

3 years agoNode Border Select: only frames inside border
Campbell Barton [Fri, 23 Oct 2015 14:06:28 +0000 (01:06 +1100)]
Node Border Select: only frames inside border

Without this you can't easily select a few nodes inside a frame,
without selecting the whole frame, noted in T46540

3 years agoCleanup: use int for view_id's & view count
Campbell Barton [Fri, 23 Oct 2015 14:01:10 +0000 (01:01 +1100)]
Cleanup: use int for view_id's & view count

`size_t` is useful for memory sizes or offsets,
the number of views wont realistically exceed an int.

3 years agoCorrect own error w/ snap-scale T46503
Campbell Barton [Fri, 23 Oct 2015 10:31:05 +0000 (21:31 +1100)]
Correct own error w/ snap-scale T46503

Don't use nan for comparisons.

3 years agoBGE: Fix T30179 action actuator not stoped when state changed.
Porteries Tristan [Fri, 23 Oct 2015 08:41:13 +0000 (10:41 +0200)]
BGE: Fix T30179 action actuator not stoped when state changed.

The function SCA_IActuator::DecLink is now under virtual : in some case the actuator have to know when is useless.

3 years agoQuiet audaspace unused macro warnings
Campbell Barton [Fri, 23 Oct 2015 07:33:20 +0000 (18:33 +1100)]
Quiet audaspace unused macro warnings

3 years agoFix ffmpeg memory leaks
Campbell Barton [Fri, 23 Oct 2015 07:36:46 +0000 (18:36 +1100)]
Fix ffmpeg memory leaks

- audio_stream wasn't freed.
- audio/video stream + context weren't freed on failure.

3 years agoFix ffmpeg saving long paths
Campbell Barton [Fri, 23 Oct 2015 07:27:26 +0000 (18:27 +1100)]
Fix ffmpeg saving long paths

Was checking wrong length on string copy.

3 years agoFix for error w/ RenderView in ImageView list
Campbell Barton [Fri, 23 Oct 2015 06:06:42 +0000 (17:06 +1100)]
Fix for error w/ RenderView in ImageView list

3 years agoComments for link-list types
Campbell Barton [Fri, 23 Oct 2015 05:46:57 +0000 (16:46 +1100)]
Comments for link-list types

3 years agoFix snap-scale w/ axis constraint
Campbell Barton [Fri, 23 Oct 2015 01:27:15 +0000 (12:27 +1100)]
Fix snap-scale w/ axis constraint

Related to T46503,
fix only worked when the snap target was axis-aligned.

3 years agoBGE: Fix T46556: check on null sound datablock pointer.
Porteries Tristan [Thu, 22 Oct 2015 18:06:29 +0000 (20:06 +0200)]
BGE: Fix T46556: check on null sound datablock pointer.

3 years agoVersion Bump: 2.76.2, deprecate values
Campbell Barton [Thu, 22 Oct 2015 17:54:07 +0000 (04:54 +1100)]
Version Bump: 2.76.2, deprecate values

- RegionView3D.view RV3D_VIEW_PERSPORTHO
  only ever set on initialization, never checked for.
- Lamp.type LA_YF_PHOTON
  from old 2.4x yafray files.

Also iniitalize movie-clip + grease-pencil theme colors.

3 years agoCycles: Watertight fix for SSS intersection
Sergey Sharybin [Thu, 22 Oct 2015 17:10:40 +0000 (22:10 +0500)]
Cycles: Watertight fix for SSS intersection

Same as previous commit, just was missing in there.

3 years agoCycles: Fix for watertight intersection
Sergey Sharybin [Thu, 22 Oct 2015 17:06:25 +0000 (22:06 +0500)]
Cycles: Fix for watertight intersection

It was possible to miss some intersection caused by wrong barycentric
coordinates sign.

Cases when one of the coordinate is zero and other are negative was not
handled correct.

3 years agoView3D: make ndof turntable & orbit speed match
Campbell Barton [Thu, 22 Oct 2015 16:16:21 +0000 (03:16 +1100)]
View3D: make ndof turntable & orbit speed match

3 years agoBLI_math: axis_angle_to_quat_single
Campbell Barton [Thu, 22 Oct 2015 16:08:17 +0000 (03:08 +1100)]
BLI_math: axis_angle_to_quat_single

Useful to avoid defining a vector for an axis-aligned rotation.
Matches axis_angle_to_mat3_single behavior.

3 years agoFix T46521: Python: bvh.ray_cast doesn't find a plane facing in the other direction...
Sergey Sharybin [Thu, 22 Oct 2015 15:29:52 +0000 (20:29 +0500)]
Fix T46521: Python: bvh.ray_cast doesn't find a plane facing in the other direction under certain circumstances

The issue was caused by wrong sign check. It originally came from more optimized
Cycles code where because of other reasons it wasn't visible yet. But in fact it
should be solved there as well.

3 years agoFix T46569: Crash w/ mask & locked-track enabled
Campbell Barton [Thu, 22 Oct 2015 14:40:36 +0000 (01:40 +1100)]
Fix T46569: Crash w/ mask & locked-track enabled

3 years agoCleanup: remove script ID-types
Campbell Barton [Thu, 22 Oct 2015 14:20:01 +0000 (01:20 +1100)]
Cleanup: remove script ID-types

Unused since 2.4x and unlikely to be reintroduced as ID-types.

3 years agoFix T46561: Crash in outliner delete hierarchy
Campbell Barton [Thu, 22 Oct 2015 07:42:44 +0000 (18:42 +1100)]
Fix T46561: Crash in outliner delete hierarchy

When children & parents were selected in the outliner,
it attempted to free the the object twice.

3 years agoFix T46565: Movie render crash w/o permissions
Campbell Barton [Thu, 22 Oct 2015 05:48:38 +0000 (16:48 +1100)]
Fix T46565: Movie render crash w/o permissions

Rendering to a path that didn't have write permissions would crash.

Also fix error where `G.is_rendering` was left set when rendering failed.

3 years agoBGE: Cleanup ConvertMaterial function.
Porteries Tristan [Wed, 21 Oct 2015 20:28:33 +0000 (22:28 +0200)]
BGE: Cleanup ConvertMaterial function.

- cleanup spaces;
- add braces;
- remove indendation around operator.

3 years agoFix T46524: Use Alpha (Straight/Premultiply) option missing in 2.76, part II.
Bastien Montagne [Wed, 21 Oct 2015 18:06:49 +0000 (20:06 +0200)]
Fix T46524: Use Alpha (Straight/Premultiply) option missing in 2.76, part II.

Different issue actually, here RAWTGA was simply forgotten in the alpha-capable formats...

3 years agoBGE: Fix physics meshes conversion with modifiers.
Porteries Tristan [Wed, 21 Oct 2015 10:15:35 +0000 (12:15 +0200)]
BGE: Fix physics meshes conversion with modifiers.

Previously meshes with modifiers were considerate as empty (no polys).