/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrStyledShape_DEFINED #define GrStyledShape_DEFINED #include "include/core/SkPath.h" #include "include/core/SkPathTypes.h" #include "include/core/SkRRect.h" #include "include/core/SkRect.h" #include "include/core/SkRefCnt.h" #include "include/core/SkScalar.h" #include "include/private/base/SkAssert.h" #include "include/private/base/SkTemplates.h" #include "src/base/SkTLazy.h" #include "src/core/SkPathEnums.h" #include "src/core/SkPathPriv.h" #include "src/gpu/ganesh/GrStyle.h" #include "src/gpu/ganesh/geometry/GrShape.h" #include <cstdint> struct SkArc; class SkIDChangeListener; class SkPaint; struct SkPoint; /** * Represents a geometric shape (rrect or path) and the GrStyle that it should be rendered with. * It is possible to apply the style to the GrStyledShape to produce a new GrStyledShape where the * geometry reflects the styling information (e.g. is stroked). It is also possible to apply just * the path effect from the style. In this case the resulting shape will include any remaining * stroking information that is to be applied after the path effect. * * Shapes can produce keys that represent only the geometry information, not the style. Note that * when styling information is applied to produce a new shape then the style has been converted * to geometric information and is included in the new shape's key. When the same style is applied * to two shapes that reflect the same underlying geometry the computed keys of the stylized shapes * will be the same. * * Currently this can only be constructed from a path, rect, or rrect though it can become a path * applying style to the geometry. The idea is to expand this to cover most or all of the geometries * that have fast paths in the GPU backend. */ class GrStyledShape { … }; #endif