diff options
Diffstat (limited to 'Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.h')
-rw-r--r-- | Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.h b/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.h index 3c70b2b2a..019c45cf4 100644 --- a/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.h +++ b/Source/WebCore/platform/graphics/chromium/cc/CCPrioritizedTextureManager.h @@ -27,10 +27,10 @@ #include "CCPrioritizedTexture.h" #include "CCPriorityCalculator.h" +#include "CCTexture.h" #include "GraphicsContext3D.h" #include "IntRect.h" #include "IntSize.h" -#include "TextureManager.h" namespace WebCore { @@ -50,18 +50,25 @@ public: } ~CCPrioritizedTextureManager(); + // FIXME (http://crbug.com/137094): This 64MB default is a straggler from the + // old texture manager and is just to give us a default memory allocation before + // we get a callback from the GPU memory manager. We should probaby either: + // - wait for the callback before rendering anything instead + // - push this into the GPU memory manager somehow. + static size_t defaultMemoryAllocationLimit() { return 64 * 1024 * 1024; } + // memoryUseBytes() describes the number of bytes used by existing allocated textures. // memoryAboveCutoffBytes() describes the number of bytes that would be used if all // textures that are above the cutoff were allocated. // memoryUseBytes() <= memoryAboveCutoffBytes() should always be true. size_t memoryUseBytes() const { return m_memoryUseBytes; } size_t memoryAboveCutoffBytes() const { return m_memoryAboveCutoffBytes; } - size_t memoryForRenderSurfacesBytes() const { return m_maxMemoryLimitBytes - m_memoryAvailableBytes; } + size_t memoryForSelfManagedTextures() const { return m_maxMemoryLimitBytes - m_memoryAvailableBytes; } void setMaxMemoryLimitBytes(size_t bytes) { m_maxMemoryLimitBytes = bytes; } size_t maxMemoryLimitBytes() const { return m_maxMemoryLimitBytes; } - void prioritizeTextures(size_t renderSurfacesMemoryBytes); + void prioritizeTextures(); void clearPriorities(); bool requestLate(CCPrioritizedTexture*); @@ -91,8 +98,8 @@ private: // Compare backings. Lowest priority first. static inline bool compareBackings(CCPrioritizedTexture::Backing* a, CCPrioritizedTexture::Backing* b) { - int priorityA = a->currentTexture() ? a->currentTexture()->requestPriority() : CCPriorityCalculator::lowestPriority(); - int priorityB = b->currentTexture() ? b->currentTexture()->requestPriority() : CCPriorityCalculator::lowestPriority(); + int priorityA = a->owner() ? a->owner()->requestPriority() : CCPriorityCalculator::lowestPriority(); + int priorityB = b->owner() ? b->owner()->requestPriority() : CCPriorityCalculator::lowestPriority(); if (priorityA == priorityB) return a < b; return CCPriorityCalculator::priorityIsLower(priorityA, priorityB); @@ -102,9 +109,6 @@ private: void reduceMemory(size_t limit, TextureAllocator*); - void link(CCPrioritizedTexture*, CCPrioritizedTexture::Backing*); - void unlink(CCPrioritizedTexture*, CCPrioritizedTexture::Backing*); - CCPrioritizedTexture::Backing* createBacking(IntSize, GC3Denum format, TextureAllocator*); void destroyBacking(CCPrioritizedTexture::Backing*, TextureAllocator*); |