| Index: cc/layer_texture_updater.h
|
| diff --git a/cc/layer_texture_updater.h b/cc/layer_texture_updater.h
|
| index 638cbb270ce9b24689d5095baf174ade4f4d1a13..89fc520475a64d1261bc27a0c7916b1745b55b05 100644
|
| --- a/cc/layer_texture_updater.h
|
| +++ b/cc/layer_texture_updater.h
|
| @@ -1,3 +1,69 @@
|
| -// Copyright 2012 The Chromium Authors. All rights reserved.
|
| +// Copyright 2011 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.
|
| +
|
| +
|
| +#ifndef LayerTextureUpdater_h
|
| +#define LayerTextureUpdater_h
|
| +
|
| +#if USE(ACCELERATED_COMPOSITING)
|
| +
|
| +#include "CCPrioritizedTexture.h"
|
| +#include "GraphicsTypes3D.h"
|
| +#include <wtf/RefCounted.h>
|
| +
|
| +namespace cc {
|
| +
|
| +class IntRect;
|
| +class IntSize;
|
| +class TextureManager;
|
| +struct CCRenderingStats;
|
| +
|
| +class LayerTextureUpdater : public RefCounted<LayerTextureUpdater> {
|
| +public:
|
| + // Allows texture uploaders to store per-tile resources.
|
| + class Texture {
|
| + public:
|
| + virtual ~Texture();
|
| +
|
| + CCPrioritizedTexture* texture() { return m_texture.get(); }
|
| + void swapTextureWith(scoped_ptr<CCPrioritizedTexture>& texture) { m_texture.swap(texture); }
|
| + virtual void prepareRect(const IntRect& /* sourceRect */, CCRenderingStats&) { }
|
| + virtual void updateRect(CCResourceProvider*, const IntRect& sourceRect, const IntSize& destOffset) = 0;
|
| + virtual bool backingResourceWasEvicted() const;
|
| + protected:
|
| + explicit Texture(scoped_ptr<CCPrioritizedTexture> texture);
|
| +
|
| + private:
|
| + scoped_ptr<CCPrioritizedTexture> m_texture;
|
| + };
|
| +
|
| + LayerTextureUpdater()
|
| + {
|
| + turnOffVerifier(); // In the component build we don't have WTF threading initialized in this DLL so the thread verifier explodes.
|
| + }
|
| +
|
| + virtual ~LayerTextureUpdater() { }
|
| +
|
| + enum SampledTexelFormat {
|
| + SampledTexelFormatRGBA,
|
| + SampledTexelFormatBGRA,
|
| + SampledTexelFormatInvalid,
|
| + };
|
| + virtual PassOwnPtr<Texture> createTexture(CCPrioritizedTextureManager*) = 0;
|
| + // Returns the format of the texel uploaded by this interface.
|
| + // This format should not be confused by texture internal format.
|
| + // This format specifies the component order in the sampled texel.
|
| + // If the format is TexelFormatBGRA, vec4.x is blue and vec4.z is red.
|
| + virtual SampledTexelFormat sampledTexelFormat(GC3Denum textureFormat) = 0;
|
| + // The |resultingOpaqueRect| gives back a region of the layer that was painted opaque. If the layer is marked opaque in the updater,
|
| + // then this region should be ignored in preference for the entire layer's area.
|
| + virtual void prepareToUpdate(const IntRect& contentRect, const IntSize& tileSize, float contentsWidthScale, float contentsHeightScale, IntRect& resultingOpaqueRect, CCRenderingStats&) { }
|
| +
|
| + // Set true by the layer when it is known that the entire output is going to be opaque.
|
| + virtual void setOpaque(bool) { }
|
| +};
|
| +
|
| +} // namespace cc
|
| +#endif // USE(ACCELERATED_COMPOSITING)
|
| +#endif // LayerTextureUpdater_h
|
|
|