| Index: src/gpu/GrShape.h
|
| diff --git a/src/gpu/GrShape.h b/src/gpu/GrShape.h
|
| deleted file mode 100644
|
| index 3c3f9ecec7b661ecbee709b21a85d11b81a214c9..0000000000000000000000000000000000000000
|
| --- a/src/gpu/GrShape.h
|
| +++ /dev/null
|
| @@ -1,160 +0,0 @@
|
| -/*
|
| - * 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 GrShape_DEFINED
|
| -#define GrShape_DEFINED
|
| -
|
| -#include "GrStyle.h"
|
| -#include "SkPath.h"
|
| -#include "SkRRect.h"
|
| -#include "SkTemplates.h"
|
| -#include "SkTLazy.h"
|
| -
|
| -/**
|
| - * 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 GrShape to produce a new GrShape 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 rrect, though it can become a path by applying
|
| - * style to the geometry. The idea is to expand this to cover most or all of the geometries that
|
| - * have SkCanvas::draw APIs.
|
| - */
|
| -class GrShape {
|
| -public:
|
| - GrShape() : fType(Type::kEmpty) {}
|
| -
|
| - explicit GrShape(const SkRRect& rrect) : fType(Type::kRRect), fRRect(rrect) {}
|
| - explicit GrShape(const SkRect& rect) : fType(Type::kRRect), fRRect(SkRRect::MakeRect(rect)) {}
|
| -
|
| - GrShape(const SkRRect& rrect, const GrStyle& style)
|
| - : fType(Type::kRRect)
|
| - , fRRect(rrect)
|
| - , fStyle(style) {}
|
| -
|
| - GrShape(const SkRect& rect, const GrStyle& style)
|
| - : fType(Type::kRRect)
|
| - , fRRect(SkRRect::MakeRect(rect))
|
| - , fStyle(style) {}
|
| -
|
| - GrShape(const SkRRect& rrect, const SkPaint& paint)
|
| - : fType(Type::kRRect)
|
| - , fRRect(rrect)
|
| - , fStyle(paint) {}
|
| -
|
| - GrShape(const SkRect& rect, const SkPaint& paint)
|
| - : fType(Type::kRRect)
|
| - , fRRect(SkRRect::MakeRect(rect))
|
| - , fStyle(paint) {}
|
| -
|
| - GrShape(const GrShape&);
|
| - GrShape& operator=(const GrShape& that);
|
| -
|
| - ~GrShape() {
|
| - if (Type::kPath == fType) {
|
| - fPath.reset();
|
| - }
|
| - }
|
| -
|
| - const GrStyle& style() const { return fStyle; }
|
| -
|
| - /**
|
| - * Returns a GrShape where the shape's geometry fully reflects the original shape's GrStyle.
|
| - * The GrStyle of the returned shape will either be fill or hairline.
|
| - */
|
| - GrShape applyFullStyle() { return GrShape(*this, false); }
|
| -
|
| - /**
|
| - * Similar to above but applies only the path effect. Path effects take the original geometry
|
| - * and fill/stroking information and compute a new geometry and residual fill/stroking
|
| - * information to be applied. The path effect's output geometry and stroking will be captured
|
| - * in the returned GrShape.
|
| - */
|
| - GrShape applyPathEffect() { return GrShape(*this, true); }
|
| -
|
| - bool asRRect(SkRRect* rrect) const {
|
| - if (Type::kRRect != fType) {
|
| - return false;
|
| - }
|
| - if (rrect) {
|
| - *rrect = fRRect;
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - void asPath(SkPath* out) const {
|
| - switch (fType) {
|
| - case Type::kRRect:
|
| - out->reset();
|
| - out->addRRect(fRRect);
|
| - break;
|
| - case Type::kPath:
|
| - *out = *fPath.get();
|
| - break;
|
| - case Type::kEmpty:
|
| - out->reset();
|
| - break;
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Gets the size of the key for the shape represented by this GrShape (ignoring its styling).
|
| - * A negative value is returned if the shape has no key (shouldn't be cached).
|
| - */
|
| - int unstyledKeySize() const;
|
| -
|
| - /**
|
| - * Writes unstyledKeySize() bytes into the provided pointer. Assumes that there is enough
|
| - * space allocated for the key and that unstyledKeySize() does not return a negative value
|
| - * for this shape.
|
| - */
|
| - void writeUnstyledKey(uint32_t* key) const;
|
| -
|
| -private:
|
| - /**
|
| - * Computes the key length for a GrStyle. The return will be negative if it cannot be turned
|
| - * into a key.
|
| - */
|
| - static int StyleKeySize(const GrStyle& , bool stopAfterPE);
|
| -
|
| - /**
|
| - * Writes a unique key for the style into the provided buffer. This function assumes the buffer
|
| - * has room for at least StyleKeySize() values. It assumes that StyleKeySize() returns a
|
| - * positive value for the style and stopAfterPE param. This is written so that the key for just
|
| - * dash application followed by the key for the remaining SkStrokeRec is the same as the
|
| - * key for applying dashing and SkStrokeRec all at once.
|
| - */
|
| - static void StyleKey(uint32_t*, const GrStyle&, bool stopAfterPE);
|
| -
|
| - /** Constructor used by Apply* functions */
|
| - GrShape(const GrShape& parentShape, bool stopAfterPE);
|
| -
|
| - /**
|
| - * Determines the key we should inherit from the input shape's geometry and style when
|
| - * we are applying the style to create a new shape.
|
| - */
|
| - void setInheritedKey(const GrShape& parentShape, bool stopAfterPE);
|
| -
|
| - enum class Type {
|
| - kEmpty,
|
| - kRRect,
|
| - kPath,
|
| - } fType;
|
| -
|
| - SkRRect fRRect;
|
| - SkTLazy<SkPath> fPath;
|
| - GrStyle fStyle;
|
| - SkAutoSTArray<8, uint32_t> fInheritedKey;
|
| -};
|
| -#endif
|
|
|