/* * Copyright 2024 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef skgpu_graphite_ComputePathAtlas_DEFINED #define skgpu_graphite_ComputePathAtlas_DEFINED #include "src/gpu/graphite/PathAtlas.h" #include "src/base/SkTInternalLList.h" #include "src/core/SkTHash.h" #include "src/gpu/AtlasTypes.h" #include "src/gpu/RectanizerSkyline.h" #include "src/gpu/ResourceKey.h" #include "src/gpu/graphite/DrawAtlas.h" #include "src/gpu/graphite/task/ComputeTask.h" #ifdef SK_ENABLE_VELLO_SHADERS #include "src/gpu/graphite/compute/VelloRenderer.h" #endif #include <memory> namespace skgpu::graphite { class DispatchGroup; /** * Base class for PathAtlas implementations that rasterize coverage masks on the GPU using compute * shaders. * * When a new shape gets added, it gets tracked as input to a series of GPU compute passes. This * data is recorded by `recordDispatches()` into a DispatchGroup which can be added to a * ComputeTask. * * After a successful call to `recordDispatches()`, the client is free to call `reset()` and start * adding new shapes for a future atlas render. */ class ComputePathAtlas : public PathAtlas { … }; } // namespace skgpu::graphite #endif // skgpu_graphite_ComputePathAtlas_DEFINED