2009-03-25 Dean Jackson <dino@apple.com>
Reviewed by Simon Fraser
https://bugs.webkit.org/show_bug.cgi?id=23361
When using hardware compositing, some images can be directly
rendered by the hardware - no need to draw them into a separate
context, therefore saving memory.
Only images with certain style properties can be directly
composited - basically anything that is not a simple image requires
the usual rendering path (eg. if the image has borders).
Test: compositing/direct-image-compositing.html
* manual-tests/resources/simple_image.png: Added.
* manual-tests/simple-image-compositing.html: Added.
* platform/graphics/Image.h:
(WebCore::Image::startAnimation):
- move this to public
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
- poke compositing layer if image has changed
(WebCore::RenderImage::notifyFinished):
- let the compositing layer know that it can render the image
* rendering/RenderImage.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::rendererContentChanged):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::canUseInnerContentLayer):
(WebCore::RenderLayerBacking::detectDrawingOptimizations):
(WebCore::RenderLayerBacking::rendererContentChanged):
* rendering/RenderLayerBacking.h:
- code to hook up direct compositing of images where
possible
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
16 files changed