Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(365)

Side by Side Diff: sky/engine/core/animation/AnimationTranslationUtil.cpp

Issue 874633003: Remove WebCompositorSupport (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y
17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */
24
25 #include "sky/engine/config.h"
26
27 #include "sky/engine/core/animation/AnimationTranslationUtil.h"
28
29 #include "sky/engine/platform/graphics/filters/FilterOperations.h"
30 #include "sky/engine/platform/graphics/filters/SkiaImageFilterBuilder.h"
31 #include "sky/engine/platform/transforms/InterpolatedTransformOperation.h"
32 #include "sky/engine/platform/transforms/Matrix3DTransformOperation.h"
33 #include "sky/engine/platform/transforms/MatrixTransformOperation.h"
34 #include "sky/engine/platform/transforms/PerspectiveTransformOperation.h"
35 #include "sky/engine/platform/transforms/RotateTransformOperation.h"
36 #include "sky/engine/platform/transforms/ScaleTransformOperation.h"
37 #include "sky/engine/platform/transforms/SkewTransformOperation.h"
38 #include "sky/engine/platform/transforms/TransformOperations.h"
39 #include "sky/engine/platform/transforms/TransformationMatrix.h"
40 #include "sky/engine/platform/transforms/TranslateTransformOperation.h"
41 #include "sky/engine/public/platform/WebTransformOperations.h"
42
43 namespace blink {
44
45 void toWebTransformOperations(const TransformOperations& transformOperations, We bTransformOperations* webTransformOperations)
46 {
47 // We need to do a deep copy the transformOperations may contain ref pointer s to TransformOperation objects.
48 for (size_t j = 0; j < transformOperations.size(); ++j) {
49 switch (transformOperations.operations()[j]->type()) {
50 case TransformOperation::ScaleX:
51 case TransformOperation::ScaleY:
52 case TransformOperation::ScaleZ:
53 case TransformOperation::Scale3D:
54 case TransformOperation::Scale: {
55 ScaleTransformOperation* transform = static_cast<ScaleTransformOpera tion*>(transformOperations.operations()[j].get());
56 webTransformOperations->appendScale(transform->x(), transform->y(), transform->z());
57 break;
58 }
59 case TransformOperation::TranslateX:
60 case TransformOperation::TranslateY:
61 case TransformOperation::TranslateZ:
62 case TransformOperation::Translate3D:
63 case TransformOperation::Translate: {
64 TranslateTransformOperation* transform = static_cast<TranslateTransf ormOperation*>(transformOperations.operations()[j].get());
65 ASSERT(transform->x().isFixed() && transform->y().isFixed());
66 webTransformOperations->appendTranslate(transform->x().value(), tran sform->y().value(), transform->z());
67 break;
68 }
69 case TransformOperation::RotateX:
70 case TransformOperation::RotateY:
71 case TransformOperation::Rotate3D:
72 case TransformOperation::Rotate: {
73 RotateTransformOperation* transform = static_cast<RotateTransformOpe ration*>(transformOperations.operations()[j].get());
74 webTransformOperations->appendRotate(transform->x(), transform->y(), transform->z(), transform->angle());
75 break;
76 }
77 case TransformOperation::SkewX:
78 case TransformOperation::SkewY:
79 case TransformOperation::Skew: {
80 SkewTransformOperation* transform = static_cast<SkewTransformOperati on*>(transformOperations.operations()[j].get());
81 webTransformOperations->appendSkew(transform->angleX(), transform->a ngleY());
82 break;
83 }
84 case TransformOperation::Matrix: {
85 MatrixTransformOperation* transform = static_cast<MatrixTransformOpe ration*>(transformOperations.operations()[j].get());
86 TransformationMatrix m = transform->matrix();
87 webTransformOperations->appendMatrix(TransformationMatrix::toSkMatri x44(m));
88 break;
89 }
90 case TransformOperation::Matrix3D: {
91 Matrix3DTransformOperation* transform = static_cast<Matrix3DTransfor mOperation*>(transformOperations.operations()[j].get());
92 TransformationMatrix m = transform->matrix();
93 webTransformOperations->appendMatrix(TransformationMatrix::toSkMatri x44(m));
94 break;
95 }
96 case TransformOperation::Perspective: {
97 PerspectiveTransformOperation* transform = static_cast<PerspectiveTr ansformOperation*>(transformOperations.operations()[j].get());
98 webTransformOperations->appendPerspective(transform->perspective());
99 break;
100 }
101 case TransformOperation::Interpolated: {
102 TransformationMatrix m;
103 transformOperations.operations()[j]->apply(m, FloatSize());
104 webTransformOperations->appendMatrix(TransformationMatrix::toSkMatri x44(m));
105 break;
106 }
107 case TransformOperation::Identity:
108 webTransformOperations->appendIdentity();
109 break;
110 case TransformOperation::None:
111 // Do nothing.
112 break;
113 } // switch
114 } // for each operation
115 }
116
117 void toWebFilterOperations(const FilterOperations& inOperations, WebFilterOperat ions* outOperations)
118 {
119 SkiaImageFilterBuilder builder;
120 FilterOutsets outsets = inOperations.outsets();
121 builder.setCropOffset(FloatSize(outsets.left(), outsets.top()));
122 builder.buildFilterOperations(inOperations, outOperations);
123 }
124
125 } // namespace blink
OLDNEW
« no previous file with comments | « sky/engine/core/animation/AnimationTranslationUtil.h ('k') | sky/engine/core/animation/AnimationTranslationUtilTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698