// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_ #define GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_ #include <stdint.h> #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h" #include "base/task/sequenced_task_runner.h" #include "gpu/command_buffer/common/command_buffer_id.h" #include "gpu/gpu_export.h" #include "gpu/ipc/common/gpu_peak_memory.h" namespace base { class SequencedTaskRunner; } // namespace base namespace gpu { // A MemoryTracker is used to propagate per-ContextGroup memory usage // statistics to the global GpuMemoryManager. class GPU_EXPORT MemoryTracker { … }; // A MemoryTypeTracker tracks the use of a particular type of memory (buffer, // texture, or renderbuffer) and forward the result to a specified // MemoryTracker. MemoryTypeTracker is thread-safe, but it must not outlive the // MemoryTracker which will be notified on the sequence the MemoryTypeTracker // was created on (if base::SequencedTaskRunner::HasCurrentDefault()), or on the // task runner specified (for testing). class GPU_EXPORT MemoryTypeTracker { … }; } // namespace gpu #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_TRACKING_H_