Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Unified Diff: cc/prioritized_resource.cc

Issue 12471007: Part 8 of cc/ directory shuffles: resources (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/prioritized_resource.h ('k') | cc/prioritized_resource_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « cc/prioritized_resource.h ('k') | cc/prioritized_resource_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698