Commit Graph

53109 Commits

Author SHA1 Message Date
Joshua Leung
daccaa713b Patch T22084: Robert Penner Easing Equations for FCurves
This commit introduces support for a number of new interpolation types
which are useful for motion-graphics work. These define a number of
"easing equations" (basically, equations which define some preset
ways that one keyframe transitions to another) which reduce the amount
of manual work (inserting and tweaking keyframes) to achieve certain
common effects. For example, snappy movements, and fake-physics such
as bouncing/springing effects.

The additional interpolation types introduced in this commit can be found
in many packages and toolkits (notably Qt and all modern web browsers).
For more info and a few live demos, see [1] and [2].


Credits:
* Dan Eicher (dna)              - Original patch
* Thomas Beck (plasmasolutions) - Porting/updating patch to 2.70 codebase
* Joshua Leung (aligorith)      - Code review and a few polishing tweaks

Additional Resources:
[1] http://easings.net
[2] http://www.robertpenner.com/easing/
2014-03-22 03:00:27 +13:00
Lukas Tönne
6e99fb04b6 Use the new BKE_libblock_copy_nolib function for bNodeTree datablocks
as well.

These were already doing the same thing, just not as nice. Only
difference is the do_action argument (false for BKE_libblock_copy_nolib)
but this is of no consequence because the function is only called for
trees nested inside material, scene, etc., which never have own actions.
2014-03-21 14:07:49 +01:00
Sergey Sharybin
c626462c0f Fix T39209: Localizing materials could cause heisenbug with concurrent
depsgraph updates.

Material datablocks were localized by first making a regular datablock
copy, which always gets inserted into the bmain list, and then removing
it again from bmain.

Problem is that this localization happens in preview threads, which can
run while the depsgraph is also updating GPU materials. In case the
copying of materials takes any amount of time, this can cause the
depsgraph call to material_changed to use an invalid, localized material
and access invalid GPUMaterial lists which have already been freed for
the actual material.

Solution is to not add localized datablocks to the bmain lists in the
first place. bmain should be totally immutable during preview or render
threads.
2014-03-21 13:50:20 +01:00
Bastien Montagne
7148c97796 Fix T39312 Multipling two values in the Transform Tools Number Input not possible.
There was actually a few bugs in new event handling of numinput :/

In case of 2.70 'a' release, this commit should be considered imho.
2014-03-21 12:30:55 +01:00
Sergey Sharybin
356ec42bda Attempt to fix compilation error with msvc2013 2014-03-21 16:06:30 +06:00
Sergey Sharybin
3411146984 Update Eigen to version 3.2.1
Main purpose of this is to have SparseLU solver which
we can use now as a replacement to opennl library.
2014-03-21 16:04:53 +06:00
Sergey Sharybin
1781928f9d Fix T39305: Matcap Crash when using Material Nodes in Blender Internal
This is a regression in d34d745, texture painting didn't set is_paint
if draw type < DT_SOLID which is weird.
2014-03-21 15:17:43 +06:00
Bastien Montagne
0f95149a78 Fix T39306: Backface culling in Multitexture always uses mat game settings
Trying to use mat game settings in 3DView makes sense - but only when we are using "Game Engine" as 'renderer'!

Note GLSL code completely ignores mat game settings currently, could be added too...
2014-03-21 10:11:54 +01:00
Sergey Sharybin
92a539ec92 Fix T38051: Even if Color Management is disabled, it is still applied to the background 2014-03-21 14:06:44 +06:00
Sergey Sharybin
77c1d17940 Fix T39186: Matroska audio support (mka, mkv without video stream)
.mka files were considered image files when adding to sequencer
using drag-n-drop.
2014-03-21 13:52:37 +06:00
Joshua Leung
3406ef8e03 Fix T39207: FCurve evaluation regressions following 2aff243 (again)
Yet another attempt at fixing the problems here. This time, I've added a new
function/version of the binary search utility so that we can pass in custom
thresholds (Note: This ability is only used for evaluation currently, with
everything else using a wrapper which still uses the old default threshold),
making it ok to start trusting the "exact" parameter.
2014-03-21 14:53:17 +13:00
Joshua Leung
3267454250 Debug prints weren't getting triggered, since they no longer use the old flag 2014-03-21 14:53:17 +13:00
Sergey Sharybin
dfa5ced30e Follow up to the previous commit
Just update to the changelog
2014-03-20 23:45:29 +06:00
Sergey Sharybin
6ba5c0c268 Update Libmv to latest upstream
This is mainly a maintaince commit which syncs changes
between Blender and Libmv upstream also bringing new
GLog version.

This GLog version is presumably have better support of
MinGW from "the box".

This commit is also aimed to make further 3d part libs
update easier.
2014-03-20 23:26:25 +06:00
Lukas Tönne
2ea78fb28f Fix for clang build warnings: ATTR_WARN_UNUSED_RESULT is used after
the inline definitions are included, which gives lots of warnings
"attribute declaration must precede definition".

See also rB83617429cf28f2a19e991a0f71d892fc159a4419
2014-03-20 13:16:59 +01:00
Campbell Barton
27e86ed832 Code cleanup: use bools 2014-03-20 22:56:28 +11:00
Jens Verwiebe
03d053da4c Extend workaround to all OS :avoid link failure with clang 3.4 debug 2014-03-20 12:38:58 +01:00
Sergey Sharybin
29f359c975 Fix T39270: Since as the Move Clip Editor have only two modes, menu on tab is needless 2014-03-20 16:08:42 +06:00
Sergey Sharybin
16ea400b29 Code cleanup: use bool/true/false in clip editor 2014-03-20 15:52:00 +06:00
Sergey Sharybin
9767ff8916 Code cleanup: use true/false in sequencer functions 2014-03-20 15:46:38 +06:00
Sergey Sharybin
3fc293cd57 Fix T39141: Video Sequencer Proxies don't take into account Strip Input Offset (or strip modifiers)
Basically issue was caused by the fact that strip for proxy has been
post-processed but proxy files were considered pre-processed. This lead
to situation of postprocessing being applied twice.
2014-03-20 15:09:45 +06:00
Campbell Barton
30fdfc37dd Fix for crash generating docs (enums with only callbacks) 2014-03-20 19:17:47 +11:00
Sergey Sharybin
efb48fcbbb Fix for crash happening on blender exit after the bake
The issue is caused by 1a79abdad, and annoyingly it's a regression
since 2.69, so if we do 'a', this commit should be ported there.
2014-03-20 13:16:33 +06:00
Mitchell Stokes
e02b9c8a45 BGE: Adding support for the Cast Only material option.
Note: This does not add support for the option in the viewport.
2014-03-19 23:57:49 -07:00
Sergey Sharybin
9d4b54b44f Fix T39271: Crash in MCE with "p" shortcut without clip
Weird nobody noticed this before, issue exists in 2.69 as well..
2014-03-20 12:39:02 +06:00
Mitchell Stokes
eedde311bb Fix T36566: 2D filters broken in the Blenderplayer when using side by side stereo
GPC_Canvas::GetWindowArea() and KX_BlenderCanvas::GetWindowArea() are tracking two
different things. The 2d filter system doesn't actually need the window area and
can get by just using the viewport dimensions, which it now does. The GetWindowArea()
mess should probably be cleaned up.
2014-03-19 23:02:11 -07:00
Campbell Barton
e5f1c0bd63 View3D: remove orbit snapping LUT, allow to snap axis but not roll 2014-03-20 15:19:02 +11:00
Campbell Barton
c6252d6e60 Math Lib: add angle_qt functions 2014-03-20 15:15:29 +11:00
Campbell Barton
aee30184f3 View3D: avoid matrix multiply using ED_view3d_boundbox_clip 2014-03-20 12:20:15 +11:00
Campbell Barton
d4b8f6798d Code cleanup: comment unused OpenGL util functions 2014-03-20 11:54:32 +11:00
Campbell Barton
7a3ec0d9c7 Error in last commit 2014-03-20 11:49:01 +11:00
Campbell Barton
50309fcbe8 Vertex Paint: inverted line drawing, white lines were often hard to see 2014-03-20 11:44:48 +11:00
Campbell Barton
284a352120 Vertex Paint: use solid shading, shadeless in wire (like wpaint) 2014-03-20 11:35:31 +11:00
Campbell Barton
19fcb4de44 Fix kdopbvh incorrect checks for failed allocs
also assert for invalid args
2014-03-20 10:49:30 +11:00
Campbell Barton
cc2cdfb08a Code cleanup: de-triplicate add menu/toolbars, also style edits 2014-03-20 01:34:24 +11:00
Campbell Barton
44d6c686fa Fix for Layout.operator_enum ignoring alignment 2014-03-20 01:34:24 +11:00
Bastien Montagne
7698322846 Usual UI messages fixes... 2014-03-19 15:25:32 +01:00
Sergey Sharybin
7997e38917 Fix T39233: Face assigned textures bake too bright
Shade input wasn't initialized properly for texture baking.
2014-03-19 20:22:28 +06:00
Joshua Leung
22ab652bb0 A simpler fix for the "clive" part of T39207 without the precision granularity risks 2014-03-20 02:23:04 +13:00
Joshua Leung
f0ac7294fa Fix T39207: FCurve evaluation regressions following 2aff243
This commit attempts to fix some of the FCurve evaluation regressions arising from
an earlier commit to speed up the process using binary search. Further tweaks may still
be needed though to get this to an acceptable level of reliability (namely, tuning the
threshold defining which keyframes get considered "close together"). Since we're still
in an early stage of the 2.71 dev cycle, for now it's still worth trying to get this
working instead of simply reverting this (which can still be done later if it proves too
problematic).

Specific fixes:
* The previous code was somewhat dangerous in that it allowed out-of-bounds accessing
  of memory when a == 0. It turns out this was more common than originally anticipated
  (as the assert I added here ended up failing in the "action_bug.blend" file in the report)
* Tweaked the code used to test for closely-spaced points so that the "Clive.blend" example
  for driver curves won't fail. The approach used here has the downside though that
  since "exact" uses a might coarser threshold for equality, there may be some precision
  loss issues causing backwards compat issues (namely with closely spaced keyframes, or
  for certain NLA strips).

For now, I've left in some debug prints that can be enabled by running Blender in debug
mode (i.e. "blender -d"), which can provide some useful tuning info should we need to
look more into our approach here.
2014-03-20 02:23:03 +13:00
Lukas Tönne
d2660a079c Fix T39260: "Redo Last" operator popup shows macro operator labels twice.
The popup was showing an explicit uiItemL as well as using the
UI_LAYOUT_OP_SHOW_TITLE flag. Both do the exact same thing.
2014-03-19 13:20:44 +01:00
Bastien Montagne
1f63b0807b Fix bpy.types.Operator.bl_rna.foobar not working since rBfe094eaf20.
When path to resolve "finishes" on a collection prop, do not erase the returned prop!

This caused py's path_resolve to return same PointerRNA as the one passed as parameter, leading to
inifinte recursion in Operator's accessor func (__getattribute__)...
2014-03-19 12:50:17 +01:00
Jens Verwiebe
3f89b92823 Ups, forgot to remove something i just placed temporary … 2014-03-19 11:26:41 +01:00
Jens Verwiebe
67f0290382 OSX/bullet/scons: a better workaround for clang 3.4 issues with actual bullet, according cmake ( less speed penalty ) 2014-03-19 11:21:36 +01:00
Martijn Berger
28c1a860e2 Fix T39247
Changes to interpolation break texture allocation on sm35 and greater.
2014-03-19 07:37:18 +01:00
Campbell Barton
a91247c2b4 Code cleanup: unreachable break/return 2014-03-19 12:47:09 +11:00
Campbell Barton
f127f49b4d UI: Add splash link to gooseberry (remove user community link) 2014-03-19 07:19:43 +11:00
Campbell Barton
ca6d76a915 Code cleanup: double/float 2014-03-19 07:19:43 +11:00
Bastien Montagne
df25dbf917 Fix T39252: Regression: Auto perspective fails when switching from {front, side, top} to camera view, and then to user persp.
When leaving cam view, if autopersp is ON, and previous view was an axis one, we have to force new view in perspective mode - else, we reuse previous stored mode (persp or ortho).
2014-03-18 19:50:20 +01:00
Bastien Montagne
74d98115ca Cleanup: factorize RNA accessor code of modifiers (saves over 160 lines of dummy code!)
Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D364
2014-03-18 19:23:12 +01:00