, m_layerId(id)
, m_anchorPoint(0.5, 0.5)
, m_anchorPointZ(0)
+ , m_scrollable(false)
, m_doubleSided(true)
+ , m_layerPropertyChanged(false)
, m_masksToBounds(false)
+ , m_opaque(false)
, m_opacity(1.0)
, m_preserves3D(false)
- , m_usesLayerScissor(false)
+ , m_usesLayerClipping(false)
, m_isNonCompositedContent(false)
, m_drawsContent(false)
+ , m_pageScaleDelta(1)
, m_targetRenderSurface(0)
, m_drawDepth(0)
, m_drawOpacity(0)
IntSize maxDelta = m_maxScrollPosition - toSize(m_scrollPosition);
// Clamp newDelta so that position + delta stays within scroll bounds.
m_scrollDelta = newDelta.expandedTo(minDelta).shrunkTo(maxDelta);
+ noteLayerPropertyChangedForSubtree();
}
void CCLayerImpl::cleanupResources()
writeIndent(ts, indent);
ts << "drawTransform: ";
- ts << m_drawTransform.m11() << ", " << m_drawTransform.m12() << ", " << m_drawTransform.m13() << ", " << m_drawTransform.m14() << ", ";
- ts << m_drawTransform.m21() << ", " << m_drawTransform.m22() << ", " << m_drawTransform.m23() << ", " << m_drawTransform.m24() << ", ";
- ts << m_drawTransform.m31() << ", " << m_drawTransform.m32() << ", " << m_drawTransform.m33() << ", " << m_drawTransform.m34() << ", ";
+ ts << m_drawTransform.m11() << ", " << m_drawTransform.m12() << ", " << m_drawTransform.m13() << ", " << m_drawTransform.m14() << " // ";
+ ts << m_drawTransform.m21() << ", " << m_drawTransform.m22() << ", " << m_drawTransform.m23() << ", " << m_drawTransform.m24() << " // ";
+ ts << m_drawTransform.m31() << ", " << m_drawTransform.m32() << ", " << m_drawTransform.m33() << ", " << m_drawTransform.m34() << " // ";
ts << m_drawTransform.m41() << ", " << m_drawTransform.m42() << ", " << m_drawTransform.m43() << ", " << m_drawTransform.m44() << "\n";
}
m_children[i]->dumpLayer(ts, indent+1);
}
+void CCLayerImpl::noteLayerPropertyChangedForSubtree()
+{
+ m_layerPropertyChanged = true;
+ noteLayerPropertyChangedForDescendants();
+}
+
+void CCLayerImpl::noteLayerPropertyChangedForDescendants()
+{
+ for (size_t i = 0; i < m_children.size(); ++i)
+ m_children[i]->noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::resetAllChangeTrackingForSubtree()
+{
+ m_layerPropertyChanged = false;
+ m_updateRect = FloatRect();
+
+ if (m_renderSurface)
+ m_renderSurface->resetPropertyChangedFlag();
+
+ if (m_maskLayer)
+ m_maskLayer->resetAllChangeTrackingForSubtree();
+
+ if (m_replicaLayer)
+ m_replicaLayer->resetAllChangeTrackingForSubtree(); // also resets the replica mask, if it exists.
+
+ for (size_t i = 0; i < m_children.size(); ++i)
+ m_children[i]->resetAllChangeTrackingForSubtree();
+}
+
+void CCLayerImpl::setBounds(const IntSize& bounds)
+{
+ if (m_bounds == bounds)
+ return;
+
+ m_bounds = bounds;
+
+ if (masksToBounds())
+ noteLayerPropertyChangedForSubtree();
+ else
+ m_layerPropertyChanged = true;
+}
+
+void CCLayerImpl::setMaskLayer(PassRefPtr<CCLayerImpl> maskLayer)
+{
+ if (m_maskLayer == maskLayer)
+ return;
+
+ m_maskLayer = maskLayer;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setReplicaLayer(PassRefPtr<CCLayerImpl> replicaLayer)
+{
+ if (m_replicaLayer == replicaLayer)
+ return;
+
+ m_replicaLayer = replicaLayer;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setDrawsContent(bool drawsContent)
+{
+ if (m_drawsContent == drawsContent)
+ return;
+
+ m_drawsContent = drawsContent;
+ m_layerPropertyChanged = true;
+}
+
+void CCLayerImpl::setAnchorPoint(const FloatPoint& anchorPoint)
+{
+ if (m_anchorPoint == anchorPoint)
+ return;
+
+ m_anchorPoint = anchorPoint;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setAnchorPointZ(float anchorPointZ)
+{
+ if (m_anchorPointZ == anchorPointZ)
+ return;
+
+ m_anchorPointZ = anchorPointZ;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setBackgroundColor(const Color& backgroundColor)
+{
+ if (m_backgroundColor == backgroundColor)
+ return;
+
+ m_backgroundColor = backgroundColor;
+ m_layerPropertyChanged = true;
+}
+
+void CCLayerImpl::setMasksToBounds(bool masksToBounds)
+{
+ if (m_masksToBounds == masksToBounds)
+ return;
+
+ m_masksToBounds = masksToBounds;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setOpaque(bool opaque)
+{
+ if (m_opaque == opaque)
+ return;
+
+ m_opaque = opaque;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setOpacity(float opacity)
+{
+ if (m_opacity == opacity)
+ return;
+
+ m_opacity = opacity;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setPosition(const FloatPoint& position)
+{
+ if (m_position == position)
+ return;
+
+ m_position = position;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setPreserves3D(bool preserves3D)
+{
+ if (m_preserves3D == preserves3D)
+ return;
+
+ m_preserves3D = preserves3D;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setZoomAnimatorTransform(const TransformationMatrix& zoomAnimatorTransform)
+{
+ if (m_zoomAnimatorTransform == zoomAnimatorTransform)
+ return;
+
+ m_zoomAnimatorTransform = zoomAnimatorTransform;
+ noteLayerPropertyChangedForSubtree();
+}
+
+
+void CCLayerImpl::setSublayerTransform(const TransformationMatrix& sublayerTransform)
+{
+ if (m_sublayerTransform == sublayerTransform)
+ return;
+
+ m_sublayerTransform = sublayerTransform;
+ // sublayer transform does not affect the current layer; it affects only its children.
+ noteLayerPropertyChangedForDescendants();
+}
+
+void CCLayerImpl::setTransform(const TransformationMatrix& transform)
+{
+ if (m_transform == transform)
+ return;
+
+ m_transform = transform;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setDebugBorderColor(Color debugBorderColor)
+{
+ if (m_debugBorderColor == debugBorderColor)
+ return;
+
+ m_debugBorderColor = debugBorderColor;
+ m_layerPropertyChanged = true;
+}
+
+void CCLayerImpl::setDebugBorderWidth(float debugBorderWidth)
+{
+ if (m_debugBorderWidth == debugBorderWidth)
+ return;
+
+ m_debugBorderWidth = debugBorderWidth;
+ m_layerPropertyChanged = true;
+}
+
+void CCLayerImpl::setContentBounds(const IntSize& contentBounds)
+{
+ if (m_contentBounds == contentBounds)
+ return;
+
+ m_contentBounds = contentBounds;
+ m_layerPropertyChanged = true;
+}
+
+void CCLayerImpl::setScrollPosition(const IntPoint& scrollPosition)
+{
+ if (m_scrollPosition == scrollPosition)
+ return;
+
+ m_scrollPosition = scrollPosition;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setScrollDelta(const IntSize& scrollDelta)
+{
+ if (m_scrollDelta == scrollDelta)
+ return;
+
+ m_scrollDelta = scrollDelta;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setPageScaleDelta(float pageScaleDelta)
+{
+ if (m_pageScaleDelta == pageScaleDelta)
+ return;
+
+ m_pageScaleDelta = pageScaleDelta;
+ noteLayerPropertyChangedForSubtree();
+}
+
+void CCLayerImpl::setDoubleSided(bool doubleSided)
+{
+ if (m_doubleSided == doubleSided)
+ return;
+
+ m_doubleSided = doubleSided;
+ noteLayerPropertyChangedForSubtree();
+}
+
}