/* * Copyright 2023 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_PathAtlas_DEFINED #define skgpu_graphite_PathAtlas_DEFINED #include "include/core/SkStrokeRec.h" #include "src/base/SkTInternalLList.h" #include "src/core/SkTHash.h" #include "src/gpu/AtlasTypes.h" #include "src/gpu/ResourceKey.h" #include "src/gpu/graphite/DrawAtlas.h" #include "src/gpu/graphite/geom/CoverageMaskShape.h" namespace skgpu::graphite { class Caps; class DrawContext; class Recorder; class Rect; class Renderer; class Shape; class TextureProxy; class Transform; /** * PathAtlas manages one or more atlas textures that store coverage masks for path rendering. * * The contents of a PathAtlas are intended to be transient: atlas regions are considered valid only * for the scope of the render passes that sample them. Unlike DrawAtlas, PathAtlas does not * necessarily support partial eviction and reuse of subregions. In most subclasses, once an atlas * texture is filled up all of its sub-allocations must be invalidated before it can be reused. * * PathAtlas does not prescribe how atlas contents get uploaded to the GPU. The specific task * mechanism is defined by subclasses. */ class PathAtlas { … }; } // namespace skgpu::graphite #endif // skgpu_graphite_PathAtlas_DEFINED