Index: cc/prioritized_resource.cc |
diff --git a/cc/prioritized_resource.cc b/cc/prioritized_resource.cc |
deleted file mode 100644 |
index ccc2f66ddff0903b0c643996962543bc524ce50b..0000000000000000000000000000000000000000 |
--- a/cc/prioritized_resource.cc |
+++ /dev/null |
@@ -1,210 +0,0 @@ |
-// Copyright 2012 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 "cc/prioritized_resource.h" |
- |
-#include <algorithm> |
- |
-#include "cc/platform_color.h" |
-#include "cc/prioritized_resource_manager.h" |
-#include "cc/priority_calculator.h" |
-#include "cc/trees/proxy.h" |
- |
-namespace cc { |
- |
-PrioritizedResource::PrioritizedResource(PrioritizedResourceManager* manager, gfx::Size size, GLenum format) |
- : m_size(size) |
- , m_format(format) |
- , m_bytes(0) |
- , m_contentsSwizzled(false) |
- , m_priority(PriorityCalculator::LowestPriority()) |
- , m_isAbovePriorityCutoff(false) |
- , m_isSelfManaged(false) |
- , m_backing(0) |
- , m_manager(0) |
-{ |
- // m_manager is set in registerTexture() so validity can be checked. |
- DCHECK(format || size.IsEmpty()); |
- if (format) |
- m_bytes = Resource::MemorySizeBytes(size, format); |
- if (manager) |
- manager->registerTexture(this); |
-} |
- |
-PrioritizedResource::~PrioritizedResource() |
-{ |
- if (m_manager) |
- m_manager->unregisterTexture(this); |
-} |
- |
-void PrioritizedResource::setTextureManager(PrioritizedResourceManager* manager) |
-{ |
- if (m_manager == manager) |
- return; |
- if (m_manager) |
- m_manager->unregisterTexture(this); |
- if (manager) |
- manager->registerTexture(this); |
-} |
- |
-void PrioritizedResource::setDimensions(gfx::Size size, GLenum format) |
-{ |
- if (m_format != format || m_size != size) { |
- m_isAbovePriorityCutoff = false; |
- m_format = format; |
- m_size = size; |
- m_bytes = Resource::MemorySizeBytes(size, format); |
- DCHECK(m_manager || !m_backing); |
- if (m_manager) |
- m_manager->returnBackingTexture(this); |
- } |
-} |
- |
-bool PrioritizedResource::requestLate() |
-{ |
- if (!m_manager) |
- return false; |
- return m_manager->requestLate(this); |
-} |
- |
-bool PrioritizedResource::backingResourceWasEvicted() const |
-{ |
- return m_backing ? m_backing->resourceHasBeenDeleted() : false; |
-} |
- |
-void PrioritizedResource::acquireBackingTexture(ResourceProvider* resourceProvider) |
-{ |
- DCHECK(m_isAbovePriorityCutoff); |
- if (m_isAbovePriorityCutoff) |
- m_manager->acquireBackingTextureIfNeeded(this, resourceProvider); |
-} |
- |
-ResourceProvider::ResourceId PrioritizedResource::resourceId() const |
-{ |
- if (m_backing) |
- return m_backing->id(); |
- return 0; |
-} |
- |
-void PrioritizedResource::setPixels(ResourceProvider* resourceProvider, |
- const uint8_t* image, const gfx::Rect& imageRect, |
- const gfx::Rect& sourceRect, const gfx::Vector2d& destOffset) |
-{ |
- DCHECK(m_isAbovePriorityCutoff); |
- if (m_isAbovePriorityCutoff) |
- acquireBackingTexture(resourceProvider); |
- DCHECK(m_backing); |
- resourceProvider->SetPixels(resourceId(), image, imageRect, sourceRect, destOffset); |
- |
- // The component order may be bgra if we uploaded bgra pixels to rgba |
- // texture. Mark contents as swizzled if image component order is |
- // different than texture format. |
- m_contentsSwizzled = !PlatformColor::SameComponentOrder(m_format); |
-} |
- |
-void PrioritizedResource::link(Backing* backing) |
-{ |
- DCHECK(backing); |
- DCHECK(!backing->m_owner); |
- DCHECK(!m_backing); |
- |
- m_backing = backing; |
- m_backing->m_owner = this; |
-} |
- |
-void PrioritizedResource::unlink() |
-{ |
- DCHECK(m_backing); |
- DCHECK(m_backing->m_owner == this); |
- |
- m_backing->m_owner = 0; |
- m_backing = 0; |
-} |
- |
-void PrioritizedResource::setToSelfManagedMemoryPlaceholder(size_t bytes) |
-{ |
- setDimensions(gfx::Size(), GL_RGBA); |
- setIsSelfManaged(true); |
- m_bytes = bytes; |
-} |
- |
-PrioritizedResource::Backing::Backing(unsigned id, ResourceProvider* resourceProvider, gfx::Size size, GLenum format) |
- : Resource(id, size, format) |
- , m_owner(0) |
- , m_priorityAtLastPriorityUpdate(PriorityCalculator::LowestPriority()) |
- , m_wasAbovePriorityCutoffAtLastPriorityUpdate(false) |
- , m_inDrawingImplTree(false) |
- , m_resourceHasBeenDeleted(false) |
-#ifndef NDEBUG |
- , m_resourceProvider(resourceProvider) |
-#endif |
-{ |
-} |
- |
-PrioritizedResource::Backing::~Backing() |
-{ |
- DCHECK(!m_owner); |
- DCHECK(m_resourceHasBeenDeleted); |
-} |
- |
-void PrioritizedResource::Backing::deleteResource(ResourceProvider* resourceProvider) |
-{ |
- DCHECK(!proxy() || proxy()->IsImplThread()); |
- DCHECK(!m_resourceHasBeenDeleted); |
-#ifndef NDEBUG |
- DCHECK(resourceProvider == m_resourceProvider); |
-#endif |
- |
- resourceProvider->DeleteResource(id()); |
- set_id(0); |
- m_resourceHasBeenDeleted = true; |
-} |
- |
-bool PrioritizedResource::Backing::resourceHasBeenDeleted() const |
-{ |
- DCHECK(!proxy() || proxy()->IsImplThread()); |
- return m_resourceHasBeenDeleted; |
-} |
- |
-bool PrioritizedResource::Backing::canBeRecycled() const |
-{ |
- DCHECK(!proxy() || proxy()->IsImplThread()); |
- return !m_wasAbovePriorityCutoffAtLastPriorityUpdate && !m_inDrawingImplTree; |
-} |
- |
-void PrioritizedResource::Backing::updatePriority() |
-{ |
- DCHECK(!proxy() || proxy()->IsImplThread() && proxy()->IsMainThreadBlocked()); |
- if (m_owner) { |
- m_priorityAtLastPriorityUpdate = m_owner->requestPriority(); |
- m_wasAbovePriorityCutoffAtLastPriorityUpdate = m_owner->isAbovePriorityCutoff(); |
- } else { |
- m_priorityAtLastPriorityUpdate = PriorityCalculator::LowestPriority(); |
- m_wasAbovePriorityCutoffAtLastPriorityUpdate = false; |
- } |
-} |
- |
-void PrioritizedResource::Backing::updateInDrawingImplTree() |
-{ |
- DCHECK(!proxy() || proxy()->IsImplThread() && proxy()->IsMainThreadBlocked()); |
- m_inDrawingImplTree = !!owner(); |
- if (!m_inDrawingImplTree) |
- DCHECK_EQ(m_priorityAtLastPriorityUpdate, PriorityCalculator::LowestPriority()); |
-} |
- |
-void PrioritizedResource::returnBackingTexture() |
-{ |
- DCHECK(m_manager || !m_backing); |
- if (m_manager) |
- m_manager->returnBackingTexture(this); |
-} |
- |
-const Proxy* PrioritizedResource::Backing::proxy() const |
-{ |
- if (!m_owner || !m_owner->resourceManager()) |
- return 0; |
- return m_owner->resourceManager()->proxyForDebug(); |
-} |
- |
-} // namespace cc |