[GTK][AC] Implement matrix transform animation with clutter ac backend
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 19 Feb 2013 20:10:11 +0000 (20:10 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 19 Feb 2013 20:10:11 +0000 (20:10 +0000)
commit945f96806a2df68bf78a2cd3b1b8b5322b9728c0
treebf7aa414ee275dec8c736340224ca557bccb1852
parent0daaf891b5dfb069a7b971fd1793dff86e6adf37
[GTK][AC] Implement matrix transform animation with clutter ac backend
https://bugs.webkit.org/show_bug.cgi?id=109848

Patch by ChangSeok Oh <changseok.oh@collabora.com> on 2013-02-19
Reviewed by Gustavo Noronha Silva.

Clutter 1.12 doesn't support additive transform animations yet, so the combination
of two or more transformations(such as rotation after translation) runs unexpectedly.
So we use a matrix transformation instead for the case.

Covered by existing animation tests.

* platform/graphics/clutter/GraphicsLayerClutter.cpp:
(WebCore::getValueFunctionNameForTransformOperation):
(WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
* platform/graphics/clutter/PlatformClutterAnimation.cpp:
(WebCore::toClutterActorPropertyString): Add actor property "transform"
(WebCore::clutterMatrixProgress): Handle interpolation between two matrices instead of default clutter_matrix_progress.
(WebCore):
(WebCore::PlatformClutterAnimation::supportsAdditiveValueFunction):
(WebCore::PlatformClutterAnimation::setFromValue): for TransformationMatrix.
(WebCore::PlatformClutterAnimation::setToValue): ditto.
(WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
(WebCore::PlatformClutterAnimation::addTransformTransition):
* platform/graphics/clutter/PlatformClutterAnimation.h:
(PlatformClutterAnimation):
* platform/graphics/clutter/TransformationMatrixClutter.cpp: Add copy constructor for CoglMatrix.
(WebCore::TransformationMatrix::TransformationMatrix):
(WebCore):
* platform/graphics/transforms/TransformationMatrix.h:
(TransformationMatrix):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@143369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/clutter/GraphicsLayerClutter.cpp
Source/WebCore/platform/graphics/clutter/PlatformClutterAnimation.cpp
Source/WebCore/platform/graphics/clutter/PlatformClutterAnimation.h
Source/WebCore/platform/graphics/clutter/TransformationMatrixClutter.cpp
Source/WebCore/platform/graphics/transforms/TransformationMatrix.h