Index: cc/ImageLayerChromium.cpp |
diff --git a/cc/ImageLayerChromium.cpp b/cc/ImageLayerChromium.cpp |
deleted file mode 100644 |
index c98796b8d36b84b9d9d8ed96022ec9098f31d481..0000000000000000000000000000000000000000 |
--- a/cc/ImageLayerChromium.cpp |
+++ /dev/null |
@@ -1,163 +0,0 @@ |
-// Copyright 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "config.h" |
- |
-#if USE(ACCELERATED_COMPOSITING) |
- |
-#include "ImageLayerChromium.h" |
- |
-#include "base/compiler_specific.h" |
-#include "CCLayerTreeHost.h" |
-#include "LayerTextureUpdater.h" |
-#include "PlatformColor.h" |
- |
-namespace cc { |
- |
-class ImageLayerTextureUpdater : public LayerTextureUpdater { |
-public: |
- class Texture : public LayerTextureUpdater::Texture { |
- public: |
- Texture(ImageLayerTextureUpdater* textureUpdater, scoped_ptr<CCPrioritizedTexture> texture) |
- : LayerTextureUpdater::Texture(texture.Pass()) |
- , m_textureUpdater(textureUpdater) |
- { |
- } |
- |
- virtual void updateRect(CCResourceProvider* resourceProvider, const IntRect& sourceRect, const IntSize& destOffset) OVERRIDE |
- { |
- textureUpdater()->updateTextureRect(resourceProvider, texture(), sourceRect, destOffset); |
- } |
- |
- private: |
- ImageLayerTextureUpdater* textureUpdater() { return m_textureUpdater; } |
- |
- ImageLayerTextureUpdater* m_textureUpdater; |
- }; |
- |
- static PassRefPtr<ImageLayerTextureUpdater> create() |
- { |
- return adoptRef(new ImageLayerTextureUpdater()); |
- } |
- |
- virtual ~ImageLayerTextureUpdater() { } |
- |
- virtual PassOwnPtr<LayerTextureUpdater::Texture> createTexture( |
- CCPrioritizedTextureManager* manager) OVERRIDE |
- { |
- return adoptPtr(new Texture(this, CCPrioritizedTexture::create(manager))); |
- } |
- |
- virtual SampledTexelFormat sampledTexelFormat(GC3Denum textureFormat) OVERRIDE |
- { |
- return PlatformColor::sameComponentOrder(textureFormat) ? |
- LayerTextureUpdater::SampledTexelFormatRGBA : LayerTextureUpdater::SampledTexelFormatBGRA; |
- } |
- |
- void updateTextureRect(CCResourceProvider* resourceProvider, CCPrioritizedTexture* texture, const IntRect& sourceRect, const IntSize& destOffset) |
- { |
- // Source rect should never go outside the image pixels, even if this |
- // is requested because the texture extends outside the image. |
- IntRect clippedSourceRect = sourceRect; |
- IntRect imageRect = IntRect(0, 0, m_bitmap.width(), m_bitmap.height()); |
- clippedSourceRect.intersect(imageRect); |
- |
- IntSize clippedDestOffset = destOffset + IntSize(clippedSourceRect.location() - sourceRect.location()); |
- |
- SkAutoLockPixels lock(m_bitmap); |
- texture->upload(resourceProvider, static_cast<const uint8_t*>(m_bitmap.getPixels()), imageRect, clippedSourceRect, clippedDestOffset); |
- } |
- |
- void setBitmap(const SkBitmap& bitmap) |
- { |
- m_bitmap = bitmap; |
- } |
- |
-private: |
- ImageLayerTextureUpdater() { } |
- |
- SkBitmap m_bitmap; |
-}; |
- |
-scoped_refptr<ImageLayerChromium> ImageLayerChromium::create() |
-{ |
- return make_scoped_refptr(new ImageLayerChromium()); |
-} |
- |
-ImageLayerChromium::ImageLayerChromium() |
- : TiledLayerChromium() |
-{ |
-} |
- |
-ImageLayerChromium::~ImageLayerChromium() |
-{ |
-} |
- |
-void ImageLayerChromium::setBitmap(const SkBitmap& bitmap) |
-{ |
- // setBitmap() currently gets called whenever there is any |
- // style change that affects the layer even if that change doesn't |
- // affect the actual contents of the image (e.g. a CSS animation). |
- // With this check in place we avoid unecessary texture uploads. |
- if (bitmap.pixelRef() && bitmap.pixelRef() == m_bitmap.pixelRef()) |
- return; |
- |
- m_bitmap = bitmap; |
- setNeedsDisplay(); |
-} |
- |
-void ImageLayerChromium::setTexturePriorities(const CCPriorityCalculator& priorityCalc) |
-{ |
- // Update the tile data before creating all the layer's tiles. |
- updateTileSizeAndTilingOption(); |
- |
- TiledLayerChromium::setTexturePriorities(priorityCalc); |
-} |
- |
-void ImageLayerChromium::update(CCTextureUpdateQueue& queue, const CCOcclusionTracker* occlusion, CCRenderingStats& stats) |
-{ |
- createTextureUpdaterIfNeeded(); |
- if (m_needsDisplay) { |
- m_textureUpdater->setBitmap(m_bitmap); |
- updateTileSizeAndTilingOption(); |
- invalidateContentRect(IntRect(IntPoint(), contentBounds())); |
- m_needsDisplay = false; |
- } |
- TiledLayerChromium::update(queue, occlusion, stats); |
-} |
- |
-void ImageLayerChromium::createTextureUpdaterIfNeeded() |
-{ |
- if (m_textureUpdater) |
- return; |
- |
- m_textureUpdater = ImageLayerTextureUpdater::create(); |
- GC3Denum textureFormat = layerTreeHost()->rendererCapabilities().bestTextureFormat; |
- setTextureFormat(textureFormat); |
- setSampledTexelFormat(textureUpdater()->sampledTexelFormat(textureFormat)); |
-} |
- |
-LayerTextureUpdater* ImageLayerChromium::textureUpdater() const |
-{ |
- return m_textureUpdater.get(); |
-} |
- |
-IntSize ImageLayerChromium::contentBounds() const |
-{ |
- return IntSize(m_bitmap.width(), m_bitmap.height()); |
-} |
- |
-bool ImageLayerChromium::drawsContent() const |
-{ |
- return !m_bitmap.isNull() && TiledLayerChromium::drawsContent(); |
-} |
- |
-bool ImageLayerChromium::needsContentsScale() const |
-{ |
- // Contents scale is not need for image layer because this can be done in compositor more efficiently. |
- return false; |
-} |
- |
-} |
-#endif // USE(ACCELERATED_COMPOSITING) |