Fix the ACCELERATED_COMPOSITING code to not expose RenderLayer outside rendering
authorjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Apr 2012 21:51:22 +0000 (21:51 +0000)
committerjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Apr 2012 21:51:22 +0000 (21:51 +0000)
commit363c3871441e473653730e9b6aad52331eacd437
treec7b8c15dae9557b200d384526ee0379b895048d1
parent5fb7949235af19c1629ffd14e57f0ad138af6c92
Fix the ACCELERATED_COMPOSITING code to not expose RenderLayer outside rendering
https://bugs.webkit.org/show_bug.cgi?id=83816

Reviewed by James Robinson.

No change in behavior expected.

This code adds several functions on RenderBoxModelObject to forward
to the associated layer. This removes the RenderLayer dependencies
at the call sites.

Currently only RenderBoxModelObject can be hardware accelerated as
we need a RenderLayer, this looks like the best place to put those
new functions.

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::contentChanged):
(WebCore::RenderBoxModelObject::hasAcceleratedCompositing):
(WebCore::RenderBoxModelObject::startTransition):
(WebCore::RenderBoxModelObject::transitionPaused):
(WebCore::RenderBoxModelObject::transitionFinished):
(WebCore::RenderBoxModelObject::startAnimation):
(WebCore::RenderBoxModelObject::animationPaused):
(WebCore::RenderBoxModelObject::animationFinished):
(WebCore::RenderBoxModelObject::suspendAnimations):
* rendering/RenderBoxModelObject.h:
Added the previous functions to hide the layer need.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hasAcceleratedCompositing):
* rendering/RenderLayer.h:
Removed the previous method as it was superseeded by the
one on RenderBoxModelObject. Also moved the ContentChangeType
enumaration.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentChanged):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):
Updated after the ContentChangeType enumaration move.

* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::reset):
(WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::didDraw):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::markContextChanged):
(WebCore::WebGLRenderingContext::reshape):
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::freezeAtTime):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::startAnimation):
(WebCore::ImplicitAnimation::pauseAnimation):
(WebCore::ImplicitAnimation::endAnimation):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::startAnimation):
(WebCore::KeyframeAnimation::pauseAnimation):
(WebCore::KeyframeAnimation::endAnimation):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::imageChanged):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageDimensionsChanged):
(WebCore::RenderImage::notifyFinished):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updatePlayer):
Updated all those call sites to use the new functions. Also
removed unneeded RenderLayer.h include as we went.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@114437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
16 files changed:
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLCanvasElement.cpp
Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
Source/WebCore/html/canvas/WebGLRenderingContext.cpp
Source/WebCore/page/animation/AnimationBase.cpp
Source/WebCore/page/animation/ImplicitAnimation.cpp
Source/WebCore/page/animation/KeyframeAnimation.cpp
Source/WebCore/rendering/RenderBox.cpp
Source/WebCore/rendering/RenderBoxModelObject.cpp
Source/WebCore/rendering/RenderBoxModelObject.h
Source/WebCore/rendering/RenderImage.cpp
Source/WebCore/rendering/RenderLayer.cpp
Source/WebCore/rendering/RenderLayer.h
Source/WebCore/rendering/RenderLayerBacking.cpp
Source/WebCore/rendering/RenderLayerBacking.h
Source/WebCore/rendering/RenderVideo.cpp