// Copyright 2019 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_GPU_TASK_SCHEDULER_HELPER_H_ #define GPU_COMMAND_BUFFER_SERVICE_GPU_TASK_SCHEDULER_HELPER_H_ #include <vector> #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "gpu/command_buffer/common/sync_token.h" #include "gpu/command_buffer/service/sequence_id.h" #include "gpu/gpu_gles2_export.h" namespace base { class TimeTicks; } namespace viz { class DisplayCompositorMemoryAndTaskController; } namespace gpu { class CommandBufferTaskExecutor; class CommandBufferHelper; class GLInProcessContext; class SingleTaskSequence; class InProcessCommandBuffer; // This class is a wrapper around a |gpu::SingleTaskSequence|. When we have // SkiaRenderer enabled, this should behave exactly like a // |gpu::SingleTaskSequence|. When we have GLRenderer with CommandBuffer, we // need to initialize this class with a |CommandBufferHelper|. This is because // when this class is used outside of actual CommandBuffer, we would need to // make sure the order of post tasks still corresponds to the order that tasks // are posted to the CommandBuffer. // This class is per display compositor. When this is used with SkiaRenderer, it // is created on SkiaOutputSurfaceImpl. Each user of this class would hold a // reference. class GPU_GLES2_EXPORT GpuTaskSchedulerHelper { … }; } // namespace gpu #endif // GPU_COMMAND_BUFFER_SERVICE_GPU_TASK_SCHEDULER_HELPER_H_