#include "components/viz/common/gpu/context_cache_controller.h"
#include <utility>
#include "base/check_op.h"
#include "base/functional/bind.h"
#include "base/memory/ptr_util.h"
#include "base/synchronization/lock.h"
#include "base/task/sequenced_task_runner.h"
#include "base/time/time.h"
#include "gpu/command_buffer/client/context_support.h"
#include "third_party/skia/include/gpu/GrDirectContext.h"
namespace viz {
namespace {
static const int kIdleCleanupDelaySeconds = …;
static const int kOldResourceCleanupDelaySeconds = …;
}
ContextCacheController::ScopedToken::ScopedToken() = default;
ContextCacheController::ScopedToken::~ScopedToken() { … }
void ContextCacheController::ScopedToken::Release() { … }
ContextCacheController::ContextCacheController(
gpu::ContextSupport* context_support,
scoped_refptr<base::SequencedTaskRunner> task_runner)
: … { … }
ContextCacheController::~ContextCacheController() { … }
void ContextCacheController::SetGrContext(GrDirectContext* gr_context) { … }
void ContextCacheController::SetLock(base::Lock* lock) { … }
std::unique_ptr<ContextCacheController::ScopedVisibility>
ContextCacheController::ClientBecameVisible() { … }
void ContextCacheController::ClientBecameNotVisible(
std::unique_ptr<ScopedVisibility> scoped_visibility) { … }
void ContextCacheController::ClientBecameNotVisibleDuringShutdown(
std::unique_ptr<ScopedVisibility> scoped_visibility) { … }
std::unique_ptr<ContextCacheController::ScopedBusy>
ContextCacheController::ClientBecameBusy() { … }
void ContextCacheController::ClientBecameNotBusy(
std::unique_ptr<ScopedBusy> scoped_busy) { … }
void ContextCacheController::SetNotifyAllClientsVisibilityChangedCb(
base::RepeatingCallback<void(bool)> on_clients_visibility_changed_cb) { … }
void ContextCacheController::PostIdleCallback(
uint32_t current_idle_generation) const { … }
void ContextCacheController::InvalidatePendingIdleCallbacks() { … }
void ContextCacheController::OnIdle(uint32_t idle_generation)
NO_THREAD_SAFETY_ANALYSIS { … }
}