Index: cc/CCPrioritizedTexture.h |
diff --git a/cc/CCPrioritizedTexture.h b/cc/CCPrioritizedTexture.h |
index 3196867064abce966502f6cf012896d3e9770025..19fdca209a3985e281631a55de27147737a40e46 100644 |
--- a/cc/CCPrioritizedTexture.h |
+++ b/cc/CCPrioritizedTexture.h |
@@ -2,141 +2,5 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CCPrioritizedTexture_h |
-#define CCPrioritizedTexture_h |
- |
-#include "base/basictypes.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "CCPriorityCalculator.h" |
-#include "CCResourceProvider.h" |
-#include "CCTexture.h" |
-#include "GraphicsContext3D.h" |
-#include "IntRect.h" |
-#include "IntSize.h" |
- |
-namespace cc { |
- |
-class CCPrioritizedTextureManager; |
- |
-class CCPrioritizedTexture { |
-public: |
- static scoped_ptr<CCPrioritizedTexture> create(CCPrioritizedTextureManager* manager, IntSize size, GC3Denum format) |
- { |
- return make_scoped_ptr(new CCPrioritizedTexture(manager, size, format)); |
- } |
- static scoped_ptr<CCPrioritizedTexture> create(CCPrioritizedTextureManager* manager) |
- { |
- return make_scoped_ptr(new CCPrioritizedTexture(manager, IntSize(), 0)); |
- } |
- ~CCPrioritizedTexture(); |
- |
- // Texture properties. Changing these causes the backing texture to be lost. |
- // Setting these to the same value is a no-op. |
- void setTextureManager(CCPrioritizedTextureManager*); |
- CCPrioritizedTextureManager* textureManager() { return m_manager; } |
- void setDimensions(IntSize, GC3Denum format); |
- GC3Denum format() const { return m_format; } |
- IntSize size() const { return m_size; } |
- size_t bytes() const { return m_bytes; } |
- |
- // Set priority for the requested texture. |
- void setRequestPriority(int priority) { m_priority = priority; } |
- int requestPriority() const { return m_priority; } |
- |
- // After CCPrioritizedTexture::prioritizeTextures() is called, this returns |
- // if the the request succeeded and this texture can be acquired for use. |
- bool canAcquireBackingTexture() const { return m_isAbovePriorityCutoff; } |
- |
- // This returns whether we still have a backing texture. This can continue |
- // to be true even after canAcquireBackingTexture() becomes false. In this |
- // case the texture can be used but shouldn't be updated since it will get |
- // taken away "soon". |
- bool haveBackingTexture() const { return !!backing(); } |
- |
- bool backingResourceWasEvicted() const; |
- |
- // If canAcquireBackingTexture() is true acquireBackingTexture() will acquire |
- // a backing texture for use. Call this whenever the texture is actually needed. |
- void acquireBackingTexture(CCResourceProvider*); |
- |
- // FIXME: Request late is really a hack for when we are totally out of memory |
- // (all textures are visible) but we can still squeeze into the limit |
- // by not painting occluded textures. In this case the manager |
- // refuses all visible textures and requestLate() will enable |
- // canAcquireBackingTexture() on a call-order basis. We might want to |
- // just remove this in the future (carefully) and just make sure we don't |
- // regress OOMs situations. |
- bool requestLate(); |
- |
- // Uploads pixels into the backing resource. This functions will aquire the backing if needed. |
- void upload(CCResourceProvider*, const uint8_t* image, const IntRect& imageRect, const IntRect& sourceRect, const IntSize& destOffset); |
- |
- CCResourceProvider::ResourceId resourceId() const; |
- |
- // Self-managed textures are accounted for when prioritizing other textures, |
- // but they are not allocated/recycled/deleted, so this needs to be done |
- // externally. canAcquireBackingTexture() indicates if the texture would have |
- // been allowed given its priority. |
- void setIsSelfManaged(bool isSelfManaged) { m_isSelfManaged = isSelfManaged; } |
- bool isSelfManaged() { return m_isSelfManaged; } |
- void setToSelfManagedMemoryPlaceholder(size_t bytes); |
- |
-private: |
- friend class CCPrioritizedTextureManager; |
- friend class CCPrioritizedTextureTest; |
- |
- class Backing : public CCTexture { |
- public: |
- Backing(unsigned id, CCResourceProvider*, IntSize, GC3Denum format); |
- ~Backing(); |
- void updatePriority(); |
- |
- CCPrioritizedTexture* owner() { return m_owner; } |
- bool hadOwnerAtLastPriorityUpdate() const { return m_ownerExistedAtLastPriorityUpdate; } |
- int requestPriorityAtLastPriorityUpdate() const { return m_priorityAtLastPriorityUpdate; } |
- bool wasAbovePriorityCutoffAtLastPriorityUpdate() const { return m_wasAbovePriorityCutoffAtLastPriorityUpdate; } |
- |
- void deleteResource(CCResourceProvider*); |
- bool resourceHasBeenDeleted() const; |
- |
- private: |
- friend class CCPrioritizedTexture; |
- CCPrioritizedTexture* m_owner; |
- int m_priorityAtLastPriorityUpdate; |
- bool m_ownerExistedAtLastPriorityUpdate; |
- bool m_wasAbovePriorityCutoffAtLastPriorityUpdate; |
- bool m_resourceHasBeenDeleted; |
-#ifndef NDEBUG |
- CCResourceProvider* m_resourceProvider; |
-#endif |
- |
- DISALLOW_COPY_AND_ASSIGN(Backing); |
- }; |
- |
- CCPrioritizedTexture(CCPrioritizedTextureManager*, IntSize, GC3Denum format); |
- |
- bool isAbovePriorityCutoff() { return m_isAbovePriorityCutoff; } |
- void setAbovePriorityCutoff(bool isAbovePriorityCutoff) { m_isAbovePriorityCutoff = isAbovePriorityCutoff; } |
- void setManagerInternal(CCPrioritizedTextureManager* manager) { m_manager = manager; } |
- |
- Backing* backing() const { return m_backing; } |
- void link(Backing*); |
- void unlink(); |
- |
- IntSize m_size; |
- GC3Denum m_format; |
- size_t m_bytes; |
- |
- int m_priority; |
- bool m_isAbovePriorityCutoff; |
- bool m_isSelfManaged; |
- |
- Backing* m_backing; |
- CCPrioritizedTextureManager* m_manager; |
- |
- DISALLOW_COPY_AND_ASSIGN(CCPrioritizedTexture); |
-}; |
- |
-} // namespace cc |
- |
-#endif |
+// Temporary forwarding header |
+#include "cc/prioritized_texture.h" |