OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 25 matching lines...) Expand all Loading... | |
36 #include "platform/transforms/TransformationMatrix.h" | 36 #include "platform/transforms/TransformationMatrix.h" |
37 #include "platform/transforms/TranslateTransformOperation.h" | 37 #include "platform/transforms/TranslateTransformOperation.h" |
38 | 38 |
39 namespace blink { | 39 namespace blink { |
40 | 40 |
41 void toCompositorTransformOperations( | 41 void toCompositorTransformOperations( |
42 const TransformOperations& transformOperations, | 42 const TransformOperations& transformOperations, |
43 CompositorTransformOperations* outTransformOperations) { | 43 CompositorTransformOperations* outTransformOperations) { |
44 // We need to do a deep copy the transformOperations may contain ref pointers | 44 // We need to do a deep copy the transformOperations may contain ref pointers |
45 // to TransformOperation objects. | 45 // to TransformOperation objects. |
46 for (size_t j = 0; j < transformOperations.size(); ++j) { | 46 for (const auto& operation : transformOperations.operations()) { |
47 switch (transformOperations.operations()[j]->type()) { | 47 switch (operation->type()) { |
48 case TransformOperation::ScaleX: | 48 case TransformOperation::ScaleX: |
49 case TransformOperation::ScaleY: | 49 case TransformOperation::ScaleY: |
50 case TransformOperation::ScaleZ: | 50 case TransformOperation::ScaleZ: |
51 case TransformOperation::Scale3D: | 51 case TransformOperation::Scale3D: |
52 case TransformOperation::Scale: { | 52 case TransformOperation::Scale: { |
53 ScaleTransformOperation* transform = | 53 const ScaleTransformOperation* transform = |
54 static_cast<ScaleTransformOperation*>( | 54 static_cast<ScaleTransformOperation*>(operation.get()); |
loyso (OOO)
2016/11/03 22:53:24
We could use
auto transform = static_cast<const Sc
fs
2016/11/04 10:05:34
Done.
| |
55 transformOperations.operations()[j].get()); | |
56 outTransformOperations->appendScale(transform->x(), transform->y(), | 55 outTransformOperations->appendScale(transform->x(), transform->y(), |
57 transform->z()); | 56 transform->z()); |
58 break; | 57 break; |
59 } | 58 } |
60 case TransformOperation::TranslateX: | 59 case TransformOperation::TranslateX: |
61 case TransformOperation::TranslateY: | 60 case TransformOperation::TranslateY: |
62 case TransformOperation::TranslateZ: | 61 case TransformOperation::TranslateZ: |
63 case TransformOperation::Translate3D: | 62 case TransformOperation::Translate3D: |
64 case TransformOperation::Translate: { | 63 case TransformOperation::Translate: { |
65 TranslateTransformOperation* transform = | 64 const TranslateTransformOperation* transform = |
66 static_cast<TranslateTransformOperation*>( | 65 static_cast<TranslateTransformOperation*>(operation.get()); |
67 transformOperations.operations()[j].get()); | |
68 ASSERT(transform->x().isFixed() && transform->y().isFixed()); | 66 ASSERT(transform->x().isFixed() && transform->y().isFixed()); |
69 outTransformOperations->appendTranslate( | 67 outTransformOperations->appendTranslate( |
70 transform->x().value(), transform->y().value(), transform->z()); | 68 transform->x().value(), transform->y().value(), transform->z()); |
71 break; | 69 break; |
72 } | 70 } |
73 case TransformOperation::RotateX: | 71 case TransformOperation::RotateX: |
74 case TransformOperation::RotateY: | 72 case TransformOperation::RotateY: |
75 case TransformOperation::Rotate3D: | 73 case TransformOperation::Rotate3D: |
76 case TransformOperation::Rotate: { | 74 case TransformOperation::Rotate: { |
77 RotateTransformOperation* transform = | 75 const RotateTransformOperation* transform = |
78 static_cast<RotateTransformOperation*>( | 76 static_cast<RotateTransformOperation*>(operation.get()); |
79 transformOperations.operations()[j].get()); | |
80 outTransformOperations->appendRotate( | 77 outTransformOperations->appendRotate( |
81 transform->x(), transform->y(), transform->z(), transform->angle()); | 78 transform->x(), transform->y(), transform->z(), transform->angle()); |
82 break; | 79 break; |
83 } | 80 } |
84 case TransformOperation::SkewX: | 81 case TransformOperation::SkewX: |
85 case TransformOperation::SkewY: | 82 case TransformOperation::SkewY: |
86 case TransformOperation::Skew: { | 83 case TransformOperation::Skew: { |
87 SkewTransformOperation* transform = | 84 const SkewTransformOperation* transform = |
88 static_cast<SkewTransformOperation*>( | 85 static_cast<SkewTransformOperation*>(operation.get()); |
89 transformOperations.operations()[j].get()); | |
90 outTransformOperations->appendSkew(transform->angleX(), | 86 outTransformOperations->appendSkew(transform->angleX(), |
91 transform->angleY()); | 87 transform->angleY()); |
92 break; | 88 break; |
93 } | 89 } |
94 case TransformOperation::Matrix: { | 90 case TransformOperation::Matrix: { |
95 MatrixTransformOperation* transform = | 91 const MatrixTransformOperation* transform = |
96 static_cast<MatrixTransformOperation*>( | 92 static_cast<MatrixTransformOperation*>(operation.get()); |
97 transformOperations.operations()[j].get()); | |
98 TransformationMatrix m = transform->matrix(); | 93 TransformationMatrix m = transform->matrix(); |
99 outTransformOperations->appendMatrix( | 94 outTransformOperations->appendMatrix( |
100 TransformationMatrix::toSkMatrix44(m)); | 95 TransformationMatrix::toSkMatrix44(m)); |
101 break; | 96 break; |
102 } | 97 } |
103 case TransformOperation::Matrix3D: { | 98 case TransformOperation::Matrix3D: { |
104 Matrix3DTransformOperation* transform = | 99 const Matrix3DTransformOperation* transform = |
105 static_cast<Matrix3DTransformOperation*>( | 100 static_cast<Matrix3DTransformOperation*>(operation.get()); |
106 transformOperations.operations()[j].get()); | |
107 TransformationMatrix m = transform->matrix(); | 101 TransformationMatrix m = transform->matrix(); |
108 outTransformOperations->appendMatrix( | 102 outTransformOperations->appendMatrix( |
109 TransformationMatrix::toSkMatrix44(m)); | 103 TransformationMatrix::toSkMatrix44(m)); |
110 break; | 104 break; |
111 } | 105 } |
112 case TransformOperation::Perspective: { | 106 case TransformOperation::Perspective: { |
113 PerspectiveTransformOperation* transform = | 107 const PerspectiveTransformOperation* transform = |
114 static_cast<PerspectiveTransformOperation*>( | 108 static_cast<PerspectiveTransformOperation*>(operation.get()); |
115 transformOperations.operations()[j].get()); | |
116 outTransformOperations->appendPerspective(transform->perspective()); | 109 outTransformOperations->appendPerspective(transform->perspective()); |
117 break; | 110 break; |
118 } | 111 } |
119 case TransformOperation::Interpolated: { | 112 case TransformOperation::Interpolated: { |
120 TransformationMatrix m; | 113 TransformationMatrix m; |
121 transformOperations.operations()[j]->apply(m, FloatSize()); | 114 operation->apply(m, FloatSize()); |
122 outTransformOperations->appendMatrix( | 115 outTransformOperations->appendMatrix( |
123 TransformationMatrix::toSkMatrix44(m)); | 116 TransformationMatrix::toSkMatrix44(m)); |
124 break; | 117 break; |
125 } | 118 } |
126 case TransformOperation::Identity: | 119 case TransformOperation::Identity: |
127 outTransformOperations->appendIdentity(); | 120 outTransformOperations->appendIdentity(); |
128 break; | 121 break; |
129 case TransformOperation::None: | 122 case TransformOperation::None: |
130 // Do nothing. | 123 // Do nothing. |
131 break; | 124 break; |
132 } // switch | 125 } // switch |
133 } // for each operation | 126 } // for each operation |
134 } | 127 } |
135 | 128 |
136 } // namespace blink | 129 } // namespace blink |
OLD | NEW |