| OLD | NEW |
| 1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "cc/layer.h" | 7 #include "cc/layer.h" |
| 8 | 8 |
| 9 #include "CCActiveAnimation.h" | 9 #include "CCActiveAnimation.h" |
| 10 #include "CCAnimationEvents.h" | 10 #include "CCAnimationEvents.h" |
| 11 #include "CCLayerAnimationController.h" | 11 #include "CCLayerAnimationController.h" |
| 12 #include "CCLayerImpl.h" | 12 #include "CCLayerImpl.h" |
| 13 #include "CCLayerTreeHost.h" | 13 #include "CCLayerTreeHost.h" |
| 14 #include "CCSettings.h" | 14 #include "CCSettings.h" |
| 15 #include <public/WebAnimationDelegate.h> | 15 #include <public/WebAnimationDelegate.h> |
| 16 #include <public/WebLayerScrollClient.h> | 16 #include <public/WebLayerScrollClient.h> |
| 17 #include <public/WebSize.h> | 17 #include <public/WebSize.h> |
| 18 | 18 |
| 19 using namespace std; | 19 using namespace std; |
| 20 using WebKit::WebTransformationMatrix; | 20 using WebKit::WebTransformationMatrix; |
| 21 | 21 |
| 22 namespace cc { | 22 namespace cc { |
| 23 | 23 |
| 24 static int s_nextLayerId = 1; | 24 static int s_nextLayerId = 1; |
| 25 | 25 |
| 26 scoped_refptr<LayerChromium> LayerChromium::create() | 26 scoped_refptr<Layer> Layer::create() |
| 27 { | 27 { |
| 28 return make_scoped_refptr(new LayerChromium()); | 28 return make_scoped_refptr(new Layer()); |
| 29 } | 29 } |
| 30 | 30 |
| 31 LayerChromium::LayerChromium() | 31 Layer::Layer() |
| 32 : m_needsDisplay(false) | 32 : m_needsDisplay(false) |
| 33 , m_stackingOrderChanged(false) | 33 , m_stackingOrderChanged(false) |
| 34 , m_layerId(s_nextLayerId++) | 34 , m_layerId(s_nextLayerId++) |
| 35 , m_parent(0) | 35 , m_parent(0) |
| 36 , m_layerTreeHost(0) | 36 , m_layerTreeHost(0) |
| 37 , m_layerAnimationController(CCLayerAnimationController::create(this)) | 37 , m_layerAnimationController(LayerAnimationController::create(this)) |
| 38 , m_scrollable(false) | 38 , m_scrollable(false) |
| 39 , m_shouldScrollOnMainThread(false) | 39 , m_shouldScrollOnMainThread(false) |
| 40 , m_haveWheelEventHandlers(false) | 40 , m_haveWheelEventHandlers(false) |
| 41 , m_nonFastScrollableRegionChanged(false) | 41 , m_nonFastScrollableRegionChanged(false) |
| 42 , m_anchorPoint(0.5, 0.5) | 42 , m_anchorPoint(0.5, 0.5) |
| 43 , m_backgroundColor(0) | 43 , m_backgroundColor(0) |
| 44 , m_debugBorderColor(0) | 44 , m_debugBorderColor(0) |
| 45 , m_debugBorderWidth(0) | 45 , m_debugBorderWidth(0) |
| 46 , m_opacity(1.0) | 46 , m_opacity(1.0) |
| 47 , m_anchorPointZ(0) | 47 , m_anchorPointZ(0) |
| (...skipping 18 matching lines...) Expand all Loading... |
| 66 , m_boundsContainPageScale(false) | 66 , m_boundsContainPageScale(false) |
| 67 , m_layerAnimationDelegate(0) | 67 , m_layerAnimationDelegate(0) |
| 68 , m_layerScrollClient(0) | 68 , m_layerScrollClient(0) |
| 69 { | 69 { |
| 70 if (m_layerId < 0) { | 70 if (m_layerId < 0) { |
| 71 s_nextLayerId = 1; | 71 s_nextLayerId = 1; |
| 72 m_layerId = s_nextLayerId++; | 72 m_layerId = s_nextLayerId++; |
| 73 } | 73 } |
| 74 } | 74 } |
| 75 | 75 |
| 76 LayerChromium::~LayerChromium() | 76 Layer::~Layer() |
| 77 { | 77 { |
| 78 // Our parent should be holding a reference to us so there should be no | 78 // Our parent should be holding a reference to us so there should be no |
| 79 // way for us to be destroyed while we still have a parent. | 79 // way for us to be destroyed while we still have a parent. |
| 80 ASSERT(!parent()); | 80 ASSERT(!parent()); |
| 81 | 81 |
| 82 // Remove the parent reference from all children. | 82 // Remove the parent reference from all children. |
| 83 removeAllChildren(); | 83 removeAllChildren(); |
| 84 } | 84 } |
| 85 | 85 |
| 86 void LayerChromium::setUseLCDText(bool useLCDText) | 86 void Layer::setUseLCDText(bool useLCDText) |
| 87 { | 87 { |
| 88 m_useLCDText = useLCDText; | 88 m_useLCDText = useLCDText; |
| 89 } | 89 } |
| 90 | 90 |
| 91 void LayerChromium::setLayerTreeHost(CCLayerTreeHost* host) | 91 void Layer::setLayerTreeHost(LayerTreeHost* host) |
| 92 { | 92 { |
| 93 if (m_layerTreeHost == host) | 93 if (m_layerTreeHost == host) |
| 94 return; | 94 return; |
| 95 | 95 |
| 96 m_layerTreeHost = host; | 96 m_layerTreeHost = host; |
| 97 | 97 |
| 98 for (size_t i = 0; i < m_children.size(); ++i) | 98 for (size_t i = 0; i < m_children.size(); ++i) |
| 99 m_children[i]->setLayerTreeHost(host); | 99 m_children[i]->setLayerTreeHost(host); |
| 100 | 100 |
| 101 if (m_maskLayer) | 101 if (m_maskLayer) |
| 102 m_maskLayer->setLayerTreeHost(host); | 102 m_maskLayer->setLayerTreeHost(host); |
| 103 if (m_replicaLayer) | 103 if (m_replicaLayer) |
| 104 m_replicaLayer->setLayerTreeHost(host); | 104 m_replicaLayer->setLayerTreeHost(host); |
| 105 | 105 |
| 106 // If this layer already has active animations, the host needs to be notifie
d. | 106 // If this layer already has active animations, the host needs to be notifie
d. |
| 107 if (host && m_layerAnimationController->hasActiveAnimation()) | 107 if (host && m_layerAnimationController->hasActiveAnimation()) |
| 108 host->didAddAnimation(); | 108 host->didAddAnimation(); |
| 109 } | 109 } |
| 110 | 110 |
| 111 void LayerChromium::setNeedsCommit() | 111 void Layer::setNeedsCommit() |
| 112 { | 112 { |
| 113 if (m_layerTreeHost) | 113 if (m_layerTreeHost) |
| 114 m_layerTreeHost->setNeedsCommit(); | 114 m_layerTreeHost->setNeedsCommit(); |
| 115 } | 115 } |
| 116 | 116 |
| 117 IntRect LayerChromium::layerRectToContentRect(const WebKit::WebRect& layerRect) | 117 IntRect Layer::layerRectToContentRect(const WebKit::WebRect& layerRect) |
| 118 { | 118 { |
| 119 float widthScale = static_cast<float>(contentBounds().width()) / bounds().wi
dth(); | 119 float widthScale = static_cast<float>(contentBounds().width()) / bounds().wi
dth(); |
| 120 float heightScale = static_cast<float>(contentBounds().height()) / bounds().
height(); | 120 float heightScale = static_cast<float>(contentBounds().height()) / bounds().
height(); |
| 121 FloatRect contentRect(layerRect.x, layerRect.y, layerRect.width, layerRect.h
eight); | 121 FloatRect contentRect(layerRect.x, layerRect.y, layerRect.width, layerRect.h
eight); |
| 122 contentRect.scale(widthScale, heightScale); | 122 contentRect.scale(widthScale, heightScale); |
| 123 return enclosingIntRect(contentRect); | 123 return enclosingIntRect(contentRect); |
| 124 } | 124 } |
| 125 | 125 |
| 126 void LayerChromium::setParent(LayerChromium* layer) | 126 void Layer::setParent(Layer* layer) |
| 127 { | 127 { |
| 128 ASSERT(!layer || !layer->hasAncestor(this)); | 128 ASSERT(!layer || !layer->hasAncestor(this)); |
| 129 m_parent = layer; | 129 m_parent = layer; |
| 130 setLayerTreeHost(m_parent ? m_parent->layerTreeHost() : 0); | 130 setLayerTreeHost(m_parent ? m_parent->layerTreeHost() : 0); |
| 131 } | 131 } |
| 132 | 132 |
| 133 bool LayerChromium::hasAncestor(LayerChromium* ancestor) const | 133 bool Layer::hasAncestor(Layer* ancestor) const |
| 134 { | 134 { |
| 135 for (LayerChromium* layer = parent(); layer; layer = layer->parent()) { | 135 for (Layer* layer = parent(); layer; layer = layer->parent()) { |
| 136 if (layer == ancestor) | 136 if (layer == ancestor) |
| 137 return true; | 137 return true; |
| 138 } | 138 } |
| 139 return false; | 139 return false; |
| 140 } | 140 } |
| 141 | 141 |
| 142 void LayerChromium::addChild(scoped_refptr<LayerChromium> child) | 142 void Layer::addChild(scoped_refptr<Layer> child) |
| 143 { | 143 { |
| 144 insertChild(child, numChildren()); | 144 insertChild(child, numChildren()); |
| 145 } | 145 } |
| 146 | 146 |
| 147 void LayerChromium::insertChild(scoped_refptr<LayerChromium> child, size_t index
) | 147 void Layer::insertChild(scoped_refptr<Layer> child, size_t index) |
| 148 { | 148 { |
| 149 index = min(index, m_children.size()); | 149 index = min(index, m_children.size()); |
| 150 child->removeFromParent(); | 150 child->removeFromParent(); |
| 151 child->setParent(this); | 151 child->setParent(this); |
| 152 child->m_stackingOrderChanged = true; | 152 child->m_stackingOrderChanged = true; |
| 153 | 153 |
| 154 LayerList::iterator iter = m_children.begin(); | 154 LayerList::iterator iter = m_children.begin(); |
| 155 m_children.insert(iter + index, child); | 155 m_children.insert(iter + index, child); |
| 156 setNeedsCommit(); | 156 setNeedsCommit(); |
| 157 } | 157 } |
| 158 | 158 |
| 159 void LayerChromium::removeFromParent() | 159 void Layer::removeFromParent() |
| 160 { | 160 { |
| 161 if (m_parent) | 161 if (m_parent) |
| 162 m_parent->removeChild(this); | 162 m_parent->removeChild(this); |
| 163 } | 163 } |
| 164 | 164 |
| 165 void LayerChromium::removeChild(LayerChromium* child) | 165 void Layer::removeChild(Layer* child) |
| 166 { | 166 { |
| 167 for (LayerList::iterator iter = m_children.begin(); iter != m_children.end()
; ++iter) | 167 for (LayerList::iterator iter = m_children.begin(); iter != m_children.end()
; ++iter) |
| 168 { | 168 { |
| 169 if (*iter != child) | 169 if (*iter != child) |
| 170 continue; | 170 continue; |
| 171 | 171 |
| 172 child->setParent(0); | 172 child->setParent(0); |
| 173 m_children.erase(iter); | 173 m_children.erase(iter); |
| 174 setNeedsCommit(); | 174 setNeedsCommit(); |
| 175 return; | 175 return; |
| 176 } | 176 } |
| 177 } | 177 } |
| 178 | 178 |
| 179 void LayerChromium::replaceChild(LayerChromium* reference, scoped_refptr<LayerCh
romium> newLayer) | 179 void Layer::replaceChild(Layer* reference, scoped_refptr<Layer> newLayer) |
| 180 { | 180 { |
| 181 ASSERT_ARG(reference, reference); | 181 ASSERT_ARG(reference, reference); |
| 182 ASSERT_ARG(reference, reference->parent() == this); | 182 ASSERT_ARG(reference, reference->parent() == this); |
| 183 | 183 |
| 184 if (reference == newLayer) | 184 if (reference == newLayer) |
| 185 return; | 185 return; |
| 186 | 186 |
| 187 int referenceIndex = indexOfChild(reference); | 187 int referenceIndex = indexOfChild(reference); |
| 188 if (referenceIndex == -1) { | 188 if (referenceIndex == -1) { |
| 189 ASSERT_NOT_REACHED(); | 189 ASSERT_NOT_REACHED(); |
| 190 return; | 190 return; |
| 191 } | 191 } |
| 192 | 192 |
| 193 reference->removeFromParent(); | 193 reference->removeFromParent(); |
| 194 | 194 |
| 195 if (newLayer) { | 195 if (newLayer) { |
| 196 newLayer->removeFromParent(); | 196 newLayer->removeFromParent(); |
| 197 insertChild(newLayer, referenceIndex); | 197 insertChild(newLayer, referenceIndex); |
| 198 } | 198 } |
| 199 } | 199 } |
| 200 | 200 |
| 201 int LayerChromium::indexOfChild(const LayerChromium* reference) | 201 int Layer::indexOfChild(const Layer* reference) |
| 202 { | 202 { |
| 203 for (size_t i = 0; i < m_children.size(); i++) { | 203 for (size_t i = 0; i < m_children.size(); i++) { |
| 204 if (m_children[i] == reference) | 204 if (m_children[i] == reference) |
| 205 return i; | 205 return i; |
| 206 } | 206 } |
| 207 return -1; | 207 return -1; |
| 208 } | 208 } |
| 209 | 209 |
| 210 void LayerChromium::setBounds(const IntSize& size) | 210 void Layer::setBounds(const IntSize& size) |
| 211 { | 211 { |
| 212 if (bounds() == size) | 212 if (bounds() == size) |
| 213 return; | 213 return; |
| 214 | 214 |
| 215 bool firstResize = bounds().isEmpty() && !size.isEmpty(); | 215 bool firstResize = bounds().isEmpty() && !size.isEmpty(); |
| 216 | 216 |
| 217 m_bounds = size; | 217 m_bounds = size; |
| 218 | 218 |
| 219 if (firstResize) | 219 if (firstResize) |
| 220 setNeedsDisplay(); | 220 setNeedsDisplay(); |
| 221 else | 221 else |
| 222 setNeedsCommit(); | 222 setNeedsCommit(); |
| 223 } | 223 } |
| 224 | 224 |
| 225 LayerChromium* LayerChromium::rootLayer() | 225 Layer* Layer::rootLayer() |
| 226 { | 226 { |
| 227 LayerChromium* layer = this; | 227 Layer* layer = this; |
| 228 while (layer->parent()) | 228 while (layer->parent()) |
| 229 layer = layer->parent(); | 229 layer = layer->parent(); |
| 230 return layer; | 230 return layer; |
| 231 } | 231 } |
| 232 | 232 |
| 233 void LayerChromium::removeAllChildren() | 233 void Layer::removeAllChildren() |
| 234 { | 234 { |
| 235 while (m_children.size()) { | 235 while (m_children.size()) { |
| 236 LayerChromium* layer = m_children[0].get(); | 236 Layer* layer = m_children[0].get(); |
| 237 ASSERT(layer->parent()); | 237 ASSERT(layer->parent()); |
| 238 layer->removeFromParent(); | 238 layer->removeFromParent(); |
| 239 } | 239 } |
| 240 } | 240 } |
| 241 | 241 |
| 242 void LayerChromium::setChildren(const LayerList& children) | 242 void Layer::setChildren(const LayerList& children) |
| 243 { | 243 { |
| 244 if (children == m_children) | 244 if (children == m_children) |
| 245 return; | 245 return; |
| 246 | 246 |
| 247 removeAllChildren(); | 247 removeAllChildren(); |
| 248 size_t listSize = children.size(); | 248 size_t listSize = children.size(); |
| 249 for (size_t i = 0; i < listSize; i++) | 249 for (size_t i = 0; i < listSize; i++) |
| 250 addChild(children[i]); | 250 addChild(children[i]); |
| 251 } | 251 } |
| 252 | 252 |
| 253 void LayerChromium::setAnchorPoint(const FloatPoint& anchorPoint) | 253 void Layer::setAnchorPoint(const FloatPoint& anchorPoint) |
| 254 { | 254 { |
| 255 if (m_anchorPoint == anchorPoint) | 255 if (m_anchorPoint == anchorPoint) |
| 256 return; | 256 return; |
| 257 m_anchorPoint = anchorPoint; | 257 m_anchorPoint = anchorPoint; |
| 258 setNeedsCommit(); | 258 setNeedsCommit(); |
| 259 } | 259 } |
| 260 | 260 |
| 261 void LayerChromium::setAnchorPointZ(float anchorPointZ) | 261 void Layer::setAnchorPointZ(float anchorPointZ) |
| 262 { | 262 { |
| 263 if (m_anchorPointZ == anchorPointZ) | 263 if (m_anchorPointZ == anchorPointZ) |
| 264 return; | 264 return; |
| 265 m_anchorPointZ = anchorPointZ; | 265 m_anchorPointZ = anchorPointZ; |
| 266 setNeedsCommit(); | 266 setNeedsCommit(); |
| 267 } | 267 } |
| 268 | 268 |
| 269 void LayerChromium::setBackgroundColor(SkColor backgroundColor) | 269 void Layer::setBackgroundColor(SkColor backgroundColor) |
| 270 { | 270 { |
| 271 if (m_backgroundColor == backgroundColor) | 271 if (m_backgroundColor == backgroundColor) |
| 272 return; | 272 return; |
| 273 m_backgroundColor = backgroundColor; | 273 m_backgroundColor = backgroundColor; |
| 274 setNeedsCommit(); | 274 setNeedsCommit(); |
| 275 } | 275 } |
| 276 | 276 |
| 277 IntSize LayerChromium::contentBounds() const | 277 IntSize Layer::contentBounds() const |
| 278 { | 278 { |
| 279 return bounds(); | 279 return bounds(); |
| 280 } | 280 } |
| 281 | 281 |
| 282 void LayerChromium::setMasksToBounds(bool masksToBounds) | 282 void Layer::setMasksToBounds(bool masksToBounds) |
| 283 { | 283 { |
| 284 if (m_masksToBounds == masksToBounds) | 284 if (m_masksToBounds == masksToBounds) |
| 285 return; | 285 return; |
| 286 m_masksToBounds = masksToBounds; | 286 m_masksToBounds = masksToBounds; |
| 287 setNeedsCommit(); | 287 setNeedsCommit(); |
| 288 } | 288 } |
| 289 | 289 |
| 290 void LayerChromium::setMaskLayer(LayerChromium* maskLayer) | 290 void Layer::setMaskLayer(Layer* maskLayer) |
| 291 { | 291 { |
| 292 if (m_maskLayer == maskLayer) | 292 if (m_maskLayer == maskLayer) |
| 293 return; | 293 return; |
| 294 if (m_maskLayer) | 294 if (m_maskLayer) |
| 295 m_maskLayer->setLayerTreeHost(0); | 295 m_maskLayer->setLayerTreeHost(0); |
| 296 m_maskLayer = maskLayer; | 296 m_maskLayer = maskLayer; |
| 297 if (m_maskLayer) { | 297 if (m_maskLayer) { |
| 298 m_maskLayer->setLayerTreeHost(m_layerTreeHost); | 298 m_maskLayer->setLayerTreeHost(m_layerTreeHost); |
| 299 m_maskLayer->setIsMask(true); | 299 m_maskLayer->setIsMask(true); |
| 300 } | 300 } |
| 301 setNeedsCommit(); | 301 setNeedsCommit(); |
| 302 } | 302 } |
| 303 | 303 |
| 304 void LayerChromium::setReplicaLayer(LayerChromium* layer) | 304 void Layer::setReplicaLayer(Layer* layer) |
| 305 { | 305 { |
| 306 if (m_replicaLayer == layer) | 306 if (m_replicaLayer == layer) |
| 307 return; | 307 return; |
| 308 if (m_replicaLayer) | 308 if (m_replicaLayer) |
| 309 m_replicaLayer->setLayerTreeHost(0); | 309 m_replicaLayer->setLayerTreeHost(0); |
| 310 m_replicaLayer = layer; | 310 m_replicaLayer = layer; |
| 311 if (m_replicaLayer) | 311 if (m_replicaLayer) |
| 312 m_replicaLayer->setLayerTreeHost(m_layerTreeHost); | 312 m_replicaLayer->setLayerTreeHost(m_layerTreeHost); |
| 313 setNeedsCommit(); | 313 setNeedsCommit(); |
| 314 } | 314 } |
| 315 | 315 |
| 316 void LayerChromium::setFilters(const WebKit::WebFilterOperations& filters) | 316 void Layer::setFilters(const WebKit::WebFilterOperations& filters) |
| 317 { | 317 { |
| 318 if (m_filters == filters) | 318 if (m_filters == filters) |
| 319 return; | 319 return; |
| 320 m_filters = filters; | 320 m_filters = filters; |
| 321 setNeedsCommit(); | 321 setNeedsCommit(); |
| 322 if (!filters.isEmpty()) | 322 if (!filters.isEmpty()) |
| 323 CCLayerTreeHost::setNeedsFilterContext(true); | 323 LayerTreeHost::setNeedsFilterContext(true); |
| 324 } | 324 } |
| 325 | 325 |
| 326 void LayerChromium::setBackgroundFilters(const WebKit::WebFilterOperations& back
groundFilters) | 326 void Layer::setBackgroundFilters(const WebKit::WebFilterOperations& backgroundFi
lters) |
| 327 { | 327 { |
| 328 if (m_backgroundFilters == backgroundFilters) | 328 if (m_backgroundFilters == backgroundFilters) |
| 329 return; | 329 return; |
| 330 m_backgroundFilters = backgroundFilters; | 330 m_backgroundFilters = backgroundFilters; |
| 331 setNeedsCommit(); | 331 setNeedsCommit(); |
| 332 if (!backgroundFilters.isEmpty()) | 332 if (!backgroundFilters.isEmpty()) |
| 333 CCLayerTreeHost::setNeedsFilterContext(true); | 333 LayerTreeHost::setNeedsFilterContext(true); |
| 334 } | 334 } |
| 335 | 335 |
| 336 bool LayerChromium::needsDisplay() const | 336 bool Layer::needsDisplay() const |
| 337 { | 337 { |
| 338 return m_needsDisplay; | 338 return m_needsDisplay; |
| 339 } | 339 } |
| 340 | 340 |
| 341 void LayerChromium::setOpacity(float opacity) | 341 void Layer::setOpacity(float opacity) |
| 342 { | 342 { |
| 343 if (m_opacity == opacity) | 343 if (m_opacity == opacity) |
| 344 return; | 344 return; |
| 345 m_opacity = opacity; | 345 m_opacity = opacity; |
| 346 setNeedsCommit(); | 346 setNeedsCommit(); |
| 347 } | 347 } |
| 348 | 348 |
| 349 bool LayerChromium::opacityIsAnimating() const | 349 bool Layer::opacityIsAnimating() const |
| 350 { | 350 { |
| 351 return m_layerAnimationController->isAnimatingProperty(CCActiveAnimation::Op
acity); | 351 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Opac
ity); |
| 352 } | 352 } |
| 353 | 353 |
| 354 void LayerChromium::setContentsOpaque(bool opaque) | 354 void Layer::setContentsOpaque(bool opaque) |
| 355 { | 355 { |
| 356 if (m_contentsOpaque == opaque) | 356 if (m_contentsOpaque == opaque) |
| 357 return; | 357 return; |
| 358 m_contentsOpaque = opaque; | 358 m_contentsOpaque = opaque; |
| 359 setNeedsDisplay(); | 359 setNeedsDisplay(); |
| 360 } | 360 } |
| 361 | 361 |
| 362 void LayerChromium::setPosition(const FloatPoint& position) | 362 void Layer::setPosition(const FloatPoint& position) |
| 363 { | 363 { |
| 364 if (m_position == position) | 364 if (m_position == position) |
| 365 return; | 365 return; |
| 366 m_position = position; | 366 m_position = position; |
| 367 setNeedsCommit(); | 367 setNeedsCommit(); |
| 368 } | 368 } |
| 369 | 369 |
| 370 void LayerChromium::setSublayerTransform(const WebTransformationMatrix& sublayer
Transform) | 370 void Layer::setSublayerTransform(const WebTransformationMatrix& sublayerTransfor
m) |
| 371 { | 371 { |
| 372 if (m_sublayerTransform == sublayerTransform) | 372 if (m_sublayerTransform == sublayerTransform) |
| 373 return; | 373 return; |
| 374 m_sublayerTransform = sublayerTransform; | 374 m_sublayerTransform = sublayerTransform; |
| 375 setNeedsCommit(); | 375 setNeedsCommit(); |
| 376 } | 376 } |
| 377 | 377 |
| 378 void LayerChromium::setTransform(const WebTransformationMatrix& transform) | 378 void Layer::setTransform(const WebTransformationMatrix& transform) |
| 379 { | 379 { |
| 380 if (m_transform == transform) | 380 if (m_transform == transform) |
| 381 return; | 381 return; |
| 382 m_transform = transform; | 382 m_transform = transform; |
| 383 setNeedsCommit(); | 383 setNeedsCommit(); |
| 384 } | 384 } |
| 385 | 385 |
| 386 bool LayerChromium::transformIsAnimating() const | 386 bool Layer::transformIsAnimating() const |
| 387 { | 387 { |
| 388 return m_layerAnimationController->isAnimatingProperty(CCActiveAnimation::Tr
ansform); | 388 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Tran
sform); |
| 389 } | 389 } |
| 390 | 390 |
| 391 void LayerChromium::setScrollPosition(const IntPoint& scrollPosition) | 391 void Layer::setScrollPosition(const IntPoint& scrollPosition) |
| 392 { | 392 { |
| 393 if (m_scrollPosition == scrollPosition) | 393 if (m_scrollPosition == scrollPosition) |
| 394 return; | 394 return; |
| 395 m_scrollPosition = scrollPosition; | 395 m_scrollPosition = scrollPosition; |
| 396 if (m_layerScrollClient) | 396 if (m_layerScrollClient) |
| 397 m_layerScrollClient->didScroll(); | 397 m_layerScrollClient->didScroll(); |
| 398 setNeedsCommit(); | 398 setNeedsCommit(); |
| 399 } | 399 } |
| 400 | 400 |
| 401 void LayerChromium::setMaxScrollPosition(const IntSize& maxScrollPosition) | 401 void Layer::setMaxScrollPosition(const IntSize& maxScrollPosition) |
| 402 { | 402 { |
| 403 if (m_maxScrollPosition == maxScrollPosition) | 403 if (m_maxScrollPosition == maxScrollPosition) |
| 404 return; | 404 return; |
| 405 m_maxScrollPosition = maxScrollPosition; | 405 m_maxScrollPosition = maxScrollPosition; |
| 406 setNeedsCommit(); | 406 setNeedsCommit(); |
| 407 } | 407 } |
| 408 | 408 |
| 409 void LayerChromium::setScrollable(bool scrollable) | 409 void Layer::setScrollable(bool scrollable) |
| 410 { | 410 { |
| 411 if (m_scrollable == scrollable) | 411 if (m_scrollable == scrollable) |
| 412 return; | 412 return; |
| 413 m_scrollable = scrollable; | 413 m_scrollable = scrollable; |
| 414 setNeedsCommit(); | 414 setNeedsCommit(); |
| 415 } | 415 } |
| 416 | 416 |
| 417 void LayerChromium::setShouldScrollOnMainThread(bool shouldScrollOnMainThread) | 417 void Layer::setShouldScrollOnMainThread(bool shouldScrollOnMainThread) |
| 418 { | 418 { |
| 419 if (m_shouldScrollOnMainThread == shouldScrollOnMainThread) | 419 if (m_shouldScrollOnMainThread == shouldScrollOnMainThread) |
| 420 return; | 420 return; |
| 421 m_shouldScrollOnMainThread = shouldScrollOnMainThread; | 421 m_shouldScrollOnMainThread = shouldScrollOnMainThread; |
| 422 setNeedsCommit(); | 422 setNeedsCommit(); |
| 423 } | 423 } |
| 424 | 424 |
| 425 void LayerChromium::setHaveWheelEventHandlers(bool haveWheelEventHandlers) | 425 void Layer::setHaveWheelEventHandlers(bool haveWheelEventHandlers) |
| 426 { | 426 { |
| 427 if (m_haveWheelEventHandlers == haveWheelEventHandlers) | 427 if (m_haveWheelEventHandlers == haveWheelEventHandlers) |
| 428 return; | 428 return; |
| 429 m_haveWheelEventHandlers = haveWheelEventHandlers; | 429 m_haveWheelEventHandlers = haveWheelEventHandlers; |
| 430 setNeedsCommit(); | 430 setNeedsCommit(); |
| 431 } | 431 } |
| 432 | 432 |
| 433 void LayerChromium::setNonFastScrollableRegion(const Region& region) | 433 void Layer::setNonFastScrollableRegion(const Region& region) |
| 434 { | 434 { |
| 435 if (m_nonFastScrollableRegion == region) | 435 if (m_nonFastScrollableRegion == region) |
| 436 return; | 436 return; |
| 437 m_nonFastScrollableRegion = region; | 437 m_nonFastScrollableRegion = region; |
| 438 m_nonFastScrollableRegionChanged = true; | 438 m_nonFastScrollableRegionChanged = true; |
| 439 setNeedsCommit(); | 439 setNeedsCommit(); |
| 440 } | 440 } |
| 441 | 441 |
| 442 void LayerChromium::setDrawCheckerboardForMissingTiles(bool checkerboard) | 442 void Layer::setDrawCheckerboardForMissingTiles(bool checkerboard) |
| 443 { | 443 { |
| 444 if (m_drawCheckerboardForMissingTiles == checkerboard) | 444 if (m_drawCheckerboardForMissingTiles == checkerboard) |
| 445 return; | 445 return; |
| 446 m_drawCheckerboardForMissingTiles = checkerboard; | 446 m_drawCheckerboardForMissingTiles = checkerboard; |
| 447 setNeedsCommit(); | 447 setNeedsCommit(); |
| 448 } | 448 } |
| 449 | 449 |
| 450 void LayerChromium::setForceRenderSurface(bool force) | 450 void Layer::setForceRenderSurface(bool force) |
| 451 { | 451 { |
| 452 if (m_forceRenderSurface == force) | 452 if (m_forceRenderSurface == force) |
| 453 return; | 453 return; |
| 454 m_forceRenderSurface = force; | 454 m_forceRenderSurface = force; |
| 455 setNeedsCommit(); | 455 setNeedsCommit(); |
| 456 } | 456 } |
| 457 | 457 |
| 458 void LayerChromium::setImplTransform(const WebTransformationMatrix& transform) | 458 void Layer::setImplTransform(const WebTransformationMatrix& transform) |
| 459 { | 459 { |
| 460 if (m_implTransform == transform) | 460 if (m_implTransform == transform) |
| 461 return; | 461 return; |
| 462 m_implTransform = transform; | 462 m_implTransform = transform; |
| 463 setNeedsCommit(); | 463 setNeedsCommit(); |
| 464 } | 464 } |
| 465 | 465 |
| 466 void LayerChromium::setDoubleSided(bool doubleSided) | 466 void Layer::setDoubleSided(bool doubleSided) |
| 467 { | 467 { |
| 468 if (m_doubleSided == doubleSided) | 468 if (m_doubleSided == doubleSided) |
| 469 return; | 469 return; |
| 470 m_doubleSided = doubleSided; | 470 m_doubleSided = doubleSided; |
| 471 setNeedsCommit(); | 471 setNeedsCommit(); |
| 472 } | 472 } |
| 473 | 473 |
| 474 void LayerChromium::setIsDrawable(bool isDrawable) | 474 void Layer::setIsDrawable(bool isDrawable) |
| 475 { | 475 { |
| 476 if (m_isDrawable == isDrawable) | 476 if (m_isDrawable == isDrawable) |
| 477 return; | 477 return; |
| 478 | 478 |
| 479 m_isDrawable = isDrawable; | 479 m_isDrawable = isDrawable; |
| 480 setNeedsCommit(); | 480 setNeedsCommit(); |
| 481 } | 481 } |
| 482 | 482 |
| 483 LayerChromium* LayerChromium::parent() const | 483 Layer* Layer::parent() const |
| 484 { | 484 { |
| 485 return m_parent; | 485 return m_parent; |
| 486 } | 486 } |
| 487 | 487 |
| 488 void LayerChromium::setNeedsDisplayRect(const FloatRect& dirtyRect) | 488 void Layer::setNeedsDisplayRect(const FloatRect& dirtyRect) |
| 489 { | 489 { |
| 490 m_updateRect.unite(dirtyRect); | 490 m_updateRect.unite(dirtyRect); |
| 491 | 491 |
| 492 // Simply mark the contents as dirty. For non-root layers, the call to | 492 // Simply mark the contents as dirty. For non-root layers, the call to |
| 493 // setNeedsCommit will schedule a fresh compositing pass. | 493 // setNeedsCommit will schedule a fresh compositing pass. |
| 494 // For the root layer, setNeedsCommit has no effect. | 494 // For the root layer, setNeedsCommit has no effect. |
| 495 if (!dirtyRect.isEmpty()) | 495 if (!dirtyRect.isEmpty()) |
| 496 m_needsDisplay = true; | 496 m_needsDisplay = true; |
| 497 | 497 |
| 498 setNeedsCommit(); | 498 setNeedsCommit(); |
| 499 } | 499 } |
| 500 | 500 |
| 501 bool LayerChromium::descendantIsFixedToContainerLayer() const | 501 bool Layer::descendantIsFixedToContainerLayer() const |
| 502 { | 502 { |
| 503 for (size_t i = 0; i < m_children.size(); ++i) { | 503 for (size_t i = 0; i < m_children.size(); ++i) { |
| 504 if (m_children[i]->fixedToContainerLayer() || m_children[i]->descendantI
sFixedToContainerLayer()) | 504 if (m_children[i]->fixedToContainerLayer() || m_children[i]->descendantI
sFixedToContainerLayer()) |
| 505 return true; | 505 return true; |
| 506 } | 506 } |
| 507 return false; | 507 return false; |
| 508 } | 508 } |
| 509 | 509 |
| 510 void LayerChromium::setIsContainerForFixedPositionLayers(bool isContainerForFixe
dPositionLayers) | 510 void Layer::setIsContainerForFixedPositionLayers(bool isContainerForFixedPositio
nLayers) |
| 511 { | 511 { |
| 512 if (m_isContainerForFixedPositionLayers == isContainerForFixedPositionLayers
) | 512 if (m_isContainerForFixedPositionLayers == isContainerForFixedPositionLayers
) |
| 513 return; | 513 return; |
| 514 m_isContainerForFixedPositionLayers = isContainerForFixedPositionLayers; | 514 m_isContainerForFixedPositionLayers = isContainerForFixedPositionLayers; |
| 515 | 515 |
| 516 if (m_layerTreeHost && m_layerTreeHost->commitRequested()) | 516 if (m_layerTreeHost && m_layerTreeHost->commitRequested()) |
| 517 return; | 517 return; |
| 518 | 518 |
| 519 // Only request a commit if we have a fixed positioned descendant. | 519 // Only request a commit if we have a fixed positioned descendant. |
| 520 if (descendantIsFixedToContainerLayer()) | 520 if (descendantIsFixedToContainerLayer()) |
| 521 setNeedsCommit(); | 521 setNeedsCommit(); |
| 522 } | 522 } |
| 523 | 523 |
| 524 void LayerChromium::setFixedToContainerLayer(bool fixedToContainerLayer) | 524 void Layer::setFixedToContainerLayer(bool fixedToContainerLayer) |
| 525 { | 525 { |
| 526 if (m_fixedToContainerLayer == fixedToContainerLayer) | 526 if (m_fixedToContainerLayer == fixedToContainerLayer) |
| 527 return; | 527 return; |
| 528 m_fixedToContainerLayer = fixedToContainerLayer; | 528 m_fixedToContainerLayer = fixedToContainerLayer; |
| 529 setNeedsCommit(); | 529 setNeedsCommit(); |
| 530 } | 530 } |
| 531 | 531 |
| 532 void LayerChromium::pushPropertiesTo(CCLayerImpl* layer) | 532 void Layer::pushPropertiesTo(LayerImpl* layer) |
| 533 { | 533 { |
| 534 layer->setAnchorPoint(m_anchorPoint); | 534 layer->setAnchorPoint(m_anchorPoint); |
| 535 layer->setAnchorPointZ(m_anchorPointZ); | 535 layer->setAnchorPointZ(m_anchorPointZ); |
| 536 layer->setBackgroundColor(m_backgroundColor); | 536 layer->setBackgroundColor(m_backgroundColor); |
| 537 layer->setBounds(m_bounds); | 537 layer->setBounds(m_bounds); |
| 538 layer->setContentBounds(contentBounds()); | 538 layer->setContentBounds(contentBounds()); |
| 539 layer->setDebugBorderColor(m_debugBorderColor); | 539 layer->setDebugBorderColor(m_debugBorderColor); |
| 540 layer->setDebugBorderWidth(m_debugBorderWidth); | 540 layer->setDebugBorderWidth(m_debugBorderWidth); |
| 541 layer->setDebugName(m_debugName); | 541 layer->setDebugName(m_debugName); |
| 542 layer->setDoubleSided(m_doubleSided); | 542 layer->setDoubleSided(m_doubleSided); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 564 layer->setFixedToContainerLayer(m_fixedToContainerLayer); | 564 layer->setFixedToContainerLayer(m_fixedToContainerLayer); |
| 565 layer->setPreserves3D(preserves3D()); | 565 layer->setPreserves3D(preserves3D()); |
| 566 layer->setUseParentBackfaceVisibility(m_useParentBackfaceVisibility); | 566 layer->setUseParentBackfaceVisibility(m_useParentBackfaceVisibility); |
| 567 layer->setScrollPosition(m_scrollPosition); | 567 layer->setScrollPosition(m_scrollPosition); |
| 568 layer->setMaxScrollPosition(m_maxScrollPosition); | 568 layer->setMaxScrollPosition(m_maxScrollPosition); |
| 569 layer->setSublayerTransform(m_sublayerTransform); | 569 layer->setSublayerTransform(m_sublayerTransform); |
| 570 if (!transformIsAnimating()) | 570 if (!transformIsAnimating()) |
| 571 layer->setTransform(m_transform); | 571 layer->setTransform(m_transform); |
| 572 | 572 |
| 573 // If the main thread commits multiple times before the impl thread actually
draws, then damage tracking | 573 // If the main thread commits multiple times before the impl thread actually
draws, then damage tracking |
| 574 // will become incorrect if we simply clobber the updateRect here. The CCLay
erImpl's updateRect needs to | 574 // will become incorrect if we simply clobber the updateRect here. The Layer
Impl's updateRect needs to |
| 575 // accumulate (i.e. union) any update changes that have occurred on the main
thread. | 575 // accumulate (i.e. union) any update changes that have occurred on the main
thread. |
| 576 m_updateRect.uniteIfNonZero(layer->updateRect()); | 576 m_updateRect.uniteIfNonZero(layer->updateRect()); |
| 577 layer->setUpdateRect(m_updateRect); | 577 layer->setUpdateRect(m_updateRect); |
| 578 | 578 |
| 579 layer->setScrollDelta(layer->scrollDelta() - layer->sentScrollDelta()); | 579 layer->setScrollDelta(layer->scrollDelta() - layer->sentScrollDelta()); |
| 580 layer->setSentScrollDelta(IntSize()); | 580 layer->setSentScrollDelta(IntSize()); |
| 581 | 581 |
| 582 layer->setStackingOrderChanged(m_stackingOrderChanged); | 582 layer->setStackingOrderChanged(m_stackingOrderChanged); |
| 583 | 583 |
| 584 if (maskLayer()) | 584 if (maskLayer()) |
| 585 maskLayer()->pushPropertiesTo(layer->maskLayer()); | 585 maskLayer()->pushPropertiesTo(layer->maskLayer()); |
| 586 if (replicaLayer()) | 586 if (replicaLayer()) |
| 587 replicaLayer()->pushPropertiesTo(layer->replicaLayer()); | 587 replicaLayer()->pushPropertiesTo(layer->replicaLayer()); |
| 588 | 588 |
| 589 m_layerAnimationController->pushAnimationUpdatesTo(layer->layerAnimationCont
roller()); | 589 m_layerAnimationController->pushAnimationUpdatesTo(layer->layerAnimationCont
roller()); |
| 590 | 590 |
| 591 // Reset any state that should be cleared for the next update. | 591 // Reset any state that should be cleared for the next update. |
| 592 m_stackingOrderChanged = false; | 592 m_stackingOrderChanged = false; |
| 593 m_updateRect = FloatRect(); | 593 m_updateRect = FloatRect(); |
| 594 } | 594 } |
| 595 | 595 |
| 596 scoped_ptr<CCLayerImpl> LayerChromium::createCCLayerImpl() | 596 scoped_ptr<LayerImpl> Layer::createLayerImpl() |
| 597 { | 597 { |
| 598 return CCLayerImpl::create(m_layerId); | 598 return LayerImpl::create(m_layerId); |
| 599 } | 599 } |
| 600 | 600 |
| 601 bool LayerChromium::drawsContent() const | 601 bool Layer::drawsContent() const |
| 602 { | 602 { |
| 603 return m_isDrawable; | 603 return m_isDrawable; |
| 604 } | 604 } |
| 605 | 605 |
| 606 bool LayerChromium::needMoreUpdates() | 606 bool Layer::needMoreUpdates() |
| 607 { | 607 { |
| 608 return false; | 608 return false; |
| 609 } | 609 } |
| 610 | 610 |
| 611 bool LayerChromium::needsContentsScale() const | 611 bool Layer::needsContentsScale() const |
| 612 { | 612 { |
| 613 return false; | 613 return false; |
| 614 } | 614 } |
| 615 | 615 |
| 616 void LayerChromium::setDebugBorderColor(SkColor color) | 616 void Layer::setDebugBorderColor(SkColor color) |
| 617 { | 617 { |
| 618 m_debugBorderColor = color; | 618 m_debugBorderColor = color; |
| 619 setNeedsCommit(); | 619 setNeedsCommit(); |
| 620 } | 620 } |
| 621 | 621 |
| 622 void LayerChromium::setDebugBorderWidth(float width) | 622 void Layer::setDebugBorderWidth(float width) |
| 623 { | 623 { |
| 624 m_debugBorderWidth = width; | 624 m_debugBorderWidth = width; |
| 625 setNeedsCommit(); | 625 setNeedsCommit(); |
| 626 } | 626 } |
| 627 | 627 |
| 628 void LayerChromium::setDebugName(const std::string& debugName) | 628 void Layer::setDebugName(const std::string& debugName) |
| 629 { | 629 { |
| 630 m_debugName = debugName; | 630 m_debugName = debugName; |
| 631 setNeedsCommit(); | 631 setNeedsCommit(); |
| 632 } | 632 } |
| 633 | 633 |
| 634 void LayerChromium::setContentsScale(float contentsScale) | 634 void Layer::setContentsScale(float contentsScale) |
| 635 { | 635 { |
| 636 if (!needsContentsScale() || m_contentsScale == contentsScale) | 636 if (!needsContentsScale() || m_contentsScale == contentsScale) |
| 637 return; | 637 return; |
| 638 m_contentsScale = contentsScale; | 638 m_contentsScale = contentsScale; |
| 639 | 639 |
| 640 setNeedsDisplay(); | 640 setNeedsDisplay(); |
| 641 } | 641 } |
| 642 | 642 |
| 643 void LayerChromium::setBoundsContainPageScale(bool boundsContainPageScale) | 643 void Layer::setBoundsContainPageScale(bool boundsContainPageScale) |
| 644 { | 644 { |
| 645 for (size_t i = 0; i < m_children.size(); ++i) | 645 for (size_t i = 0; i < m_children.size(); ++i) |
| 646 m_children[i]->setBoundsContainPageScale(boundsContainPageScale); | 646 m_children[i]->setBoundsContainPageScale(boundsContainPageScale); |
| 647 | 647 |
| 648 if (boundsContainPageScale == m_boundsContainPageScale) | 648 if (boundsContainPageScale == m_boundsContainPageScale) |
| 649 return; | 649 return; |
| 650 | 650 |
| 651 m_boundsContainPageScale = boundsContainPageScale; | 651 m_boundsContainPageScale = boundsContainPageScale; |
| 652 setNeedsDisplay(); | 652 setNeedsDisplay(); |
| 653 } | 653 } |
| 654 | 654 |
| 655 void LayerChromium::createRenderSurface() | 655 void Layer::createRenderSurface() |
| 656 { | 656 { |
| 657 ASSERT(!m_renderSurface); | 657 ASSERT(!m_renderSurface); |
| 658 m_renderSurface = make_scoped_ptr(new RenderSurfaceChromium(this)); | 658 m_renderSurface = make_scoped_ptr(new RenderSurface(this)); |
| 659 setRenderTarget(this); | 659 setRenderTarget(this); |
| 660 } | 660 } |
| 661 | 661 |
| 662 bool LayerChromium::descendantDrawsContent() | 662 bool Layer::descendantDrawsContent() |
| 663 { | 663 { |
| 664 for (size_t i = 0; i < m_children.size(); ++i) { | 664 for (size_t i = 0; i < m_children.size(); ++i) { |
| 665 if (m_children[i]->drawsContent() || m_children[i]->descendantDrawsConte
nt()) | 665 if (m_children[i]->drawsContent() || m_children[i]->descendantDrawsConte
nt()) |
| 666 return true; | 666 return true; |
| 667 } | 667 } |
| 668 return false; | 668 return false; |
| 669 } | 669 } |
| 670 | 670 |
| 671 int LayerChromium::id() const | 671 int Layer::id() const |
| 672 { | 672 { |
| 673 return m_layerId; | 673 return m_layerId; |
| 674 } | 674 } |
| 675 | 675 |
| 676 float LayerChromium::opacity() const | 676 float Layer::opacity() const |
| 677 { | 677 { |
| 678 return m_opacity; | 678 return m_opacity; |
| 679 } | 679 } |
| 680 | 680 |
| 681 void LayerChromium::setOpacityFromAnimation(float opacity) | 681 void Layer::setOpacityFromAnimation(float opacity) |
| 682 { | 682 { |
| 683 // This is called due to an ongoing accelerated animation. Since this animat
ion is | 683 // This is called due to an ongoing accelerated animation. Since this animat
ion is |
| 684 // also being run on the impl thread, there is no need to request a commit t
o push | 684 // also being run on the impl thread, there is no need to request a commit t
o push |
| 685 // this value over, so set the value directly rather than calling setOpacity
. | 685 // this value over, so set the value directly rather than calling setOpacity
. |
| 686 m_opacity = opacity; | 686 m_opacity = opacity; |
| 687 } | 687 } |
| 688 | 688 |
| 689 const WebKit::WebTransformationMatrix& LayerChromium::transform() const | 689 const WebKit::WebTransformationMatrix& Layer::transform() const |
| 690 { | 690 { |
| 691 return m_transform; | 691 return m_transform; |
| 692 } | 692 } |
| 693 | 693 |
| 694 void LayerChromium::setTransformFromAnimation(const WebTransformationMatrix& tra
nsform) | 694 void Layer::setTransformFromAnimation(const WebTransformationMatrix& transform) |
| 695 { | 695 { |
| 696 // This is called due to an ongoing accelerated animation. Since this animat
ion is | 696 // This is called due to an ongoing accelerated animation. Since this animat
ion is |
| 697 // also being run on the impl thread, there is no need to request a commit t
o push | 697 // also being run on the impl thread, there is no need to request a commit t
o push |
| 698 // this value over, so set this value directly rather than calling setTransf
orm. | 698 // this value over, so set this value directly rather than calling setTransf
orm. |
| 699 m_transform = transform; | 699 m_transform = transform; |
| 700 } | 700 } |
| 701 | 701 |
| 702 bool LayerChromium::addAnimation(scoped_ptr <CCActiveAnimation> animation) | 702 bool Layer::addAnimation(scoped_ptr <ActiveAnimation> animation) |
| 703 { | 703 { |
| 704 // WebCore currently assumes that accelerated animations will start soon | 704 // WebCore currently assumes that accelerated animations will start soon |
| 705 // after the animation is added. However we cannot guarantee that if we do | 705 // after the animation is added. However we cannot guarantee that if we do |
| 706 // not have a layerTreeHost that will setNeedsCommit(). | 706 // not have a layerTreeHost that will setNeedsCommit(). |
| 707 if (!m_layerTreeHost) | 707 if (!m_layerTreeHost) |
| 708 return false; | 708 return false; |
| 709 | 709 |
| 710 if (!CCSettings::acceleratedAnimationEnabled()) | 710 if (!Settings::acceleratedAnimationEnabled()) |
| 711 return false; | 711 return false; |
| 712 | 712 |
| 713 m_layerAnimationController->addAnimation(animation.Pass()); | 713 m_layerAnimationController->addAnimation(animation.Pass()); |
| 714 if (m_layerTreeHost) { | 714 if (m_layerTreeHost) { |
| 715 m_layerTreeHost->didAddAnimation(); | 715 m_layerTreeHost->didAddAnimation(); |
| 716 setNeedsCommit(); | 716 setNeedsCommit(); |
| 717 } | 717 } |
| 718 return true; | 718 return true; |
| 719 } | 719 } |
| 720 | 720 |
| 721 void LayerChromium::pauseAnimation(int animationId, double timeOffset) | 721 void Layer::pauseAnimation(int animationId, double timeOffset) |
| 722 { | 722 { |
| 723 m_layerAnimationController->pauseAnimation(animationId, timeOffset); | 723 m_layerAnimationController->pauseAnimation(animationId, timeOffset); |
| 724 setNeedsCommit(); | 724 setNeedsCommit(); |
| 725 } | 725 } |
| 726 | 726 |
| 727 void LayerChromium::removeAnimation(int animationId) | 727 void Layer::removeAnimation(int animationId) |
| 728 { | 728 { |
| 729 m_layerAnimationController->removeAnimation(animationId); | 729 m_layerAnimationController->removeAnimation(animationId); |
| 730 setNeedsCommit(); | 730 setNeedsCommit(); |
| 731 } | 731 } |
| 732 | 732 |
| 733 void LayerChromium::suspendAnimations(double monotonicTime) | 733 void Layer::suspendAnimations(double monotonicTime) |
| 734 { | 734 { |
| 735 m_layerAnimationController->suspendAnimations(monotonicTime); | 735 m_layerAnimationController->suspendAnimations(monotonicTime); |
| 736 setNeedsCommit(); | 736 setNeedsCommit(); |
| 737 } | 737 } |
| 738 | 738 |
| 739 void LayerChromium::resumeAnimations(double monotonicTime) | 739 void Layer::resumeAnimations(double monotonicTime) |
| 740 { | 740 { |
| 741 m_layerAnimationController->resumeAnimations(monotonicTime); | 741 m_layerAnimationController->resumeAnimations(monotonicTime); |
| 742 setNeedsCommit(); | 742 setNeedsCommit(); |
| 743 } | 743 } |
| 744 | 744 |
| 745 void LayerChromium::setLayerAnimationController(scoped_ptr<CCLayerAnimationContr
oller> layerAnimationController) | 745 void Layer::setLayerAnimationController(scoped_ptr<LayerAnimationController> lay
erAnimationController) |
| 746 { | 746 { |
| 747 m_layerAnimationController = layerAnimationController.Pass(); | 747 m_layerAnimationController = layerAnimationController.Pass(); |
| 748 if (m_layerAnimationController) { | 748 if (m_layerAnimationController) { |
| 749 m_layerAnimationController->setClient(this); | 749 m_layerAnimationController->setClient(this); |
| 750 m_layerAnimationController->setForceSync(); | 750 m_layerAnimationController->setForceSync(); |
| 751 } | 751 } |
| 752 setNeedsCommit(); | 752 setNeedsCommit(); |
| 753 } | 753 } |
| 754 | 754 |
| 755 scoped_ptr<CCLayerAnimationController> LayerChromium::releaseLayerAnimationContr
oller() | 755 scoped_ptr<LayerAnimationController> Layer::releaseLayerAnimationController() |
| 756 { | 756 { |
| 757 scoped_ptr<CCLayerAnimationController> toReturn = m_layerAnimationController
.Pass(); | 757 scoped_ptr<LayerAnimationController> toReturn = m_layerAnimationController.P
ass(); |
| 758 m_layerAnimationController = CCLayerAnimationController::create(this); | 758 m_layerAnimationController = LayerAnimationController::create(this); |
| 759 return toReturn.Pass(); | 759 return toReturn.Pass(); |
| 760 } | 760 } |
| 761 | 761 |
| 762 bool LayerChromium::hasActiveAnimation() const | 762 bool Layer::hasActiveAnimation() const |
| 763 { | 763 { |
| 764 return m_layerAnimationController->hasActiveAnimation(); | 764 return m_layerAnimationController->hasActiveAnimation(); |
| 765 } | 765 } |
| 766 | 766 |
| 767 void LayerChromium::notifyAnimationStarted(const CCAnimationEvent& event, double
wallClockTime) | 767 void Layer::notifyAnimationStarted(const AnimationEvent& event, double wallClock
Time) |
| 768 { | 768 { |
| 769 m_layerAnimationController->notifyAnimationStarted(event); | 769 m_layerAnimationController->notifyAnimationStarted(event); |
| 770 if (m_layerAnimationDelegate) | 770 if (m_layerAnimationDelegate) |
| 771 m_layerAnimationDelegate->notifyAnimationStarted(wallClockTime); | 771 m_layerAnimationDelegate->notifyAnimationStarted(wallClockTime); |
| 772 } | 772 } |
| 773 | 773 |
| 774 void LayerChromium::notifyAnimationFinished(double wallClockTime) | 774 void Layer::notifyAnimationFinished(double wallClockTime) |
| 775 { | 775 { |
| 776 if (m_layerAnimationDelegate) | 776 if (m_layerAnimationDelegate) |
| 777 m_layerAnimationDelegate->notifyAnimationFinished(wallClockTime); | 777 m_layerAnimationDelegate->notifyAnimationFinished(wallClockTime); |
| 778 } | 778 } |
| 779 | 779 |
| 780 Region LayerChromium::visibleContentOpaqueRegion() const | 780 Region Layer::visibleContentOpaqueRegion() const |
| 781 { | 781 { |
| 782 if (contentsOpaque()) | 782 if (contentsOpaque()) |
| 783 return visibleContentRect(); | 783 return visibleContentRect(); |
| 784 return Region(); | 784 return Region(); |
| 785 } | 785 } |
| 786 | 786 |
| 787 ScrollbarLayerChromium* LayerChromium::toScrollbarLayerChromium() | 787 ScrollbarLayer* Layer::toScrollbarLayer() |
| 788 { | 788 { |
| 789 return 0; | 789 return 0; |
| 790 } | 790 } |
| 791 | 791 |
| 792 void sortLayers(std::vector<scoped_refptr<LayerChromium> >::iterator, std::vecto
r<scoped_refptr<LayerChromium> >::iterator, void*) | 792 void sortLayers(std::vector<scoped_refptr<Layer> >::iterator, std::vector<scoped
_refptr<Layer> >::iterator, void*) |
| 793 { | 793 { |
| 794 // Currently we don't use z-order to decide what to paint, so there's no nee
d to actually sort LayerChromiums. | 794 // Currently we don't use z-order to decide what to paint, so there's no nee
d to actually sort Layers. |
| 795 } | 795 } |
| 796 | 796 |
| 797 } | 797 } |
| OLD | NEW |