| Index: src/gpu/effects/GrEdgeEffect.h
 | 
| ===================================================================
 | 
| --- src/gpu/effects/GrEdgeEffect.h	(revision 8491)
 | 
| +++ src/gpu/effects/GrEdgeEffect.h	(working copy)
 | 
| @@ -1,85 +0,0 @@
 | 
| -/*
 | 
| - * Copyright 2013 Google Inc.
 | 
| - *
 | 
| - * Use of this source code is governed by a BSD-style license that can be
 | 
| - * found in the LICENSE file.
 | 
| - */
 | 
| -
 | 
| -#ifndef GrEdgeEffect_DEFINED
 | 
| -#define GrEdgeEffect_DEFINED
 | 
| -
 | 
| -#include "GrEffect.h"
 | 
| -
 | 
| -class GrGLEdgeEffect;
 | 
| -
 | 
| -/**
 | 
| - * The output of this effect is one of three different edge types: hairlines, quads,
 | 
| - * and hairline quads.
 | 
| - */
 | 
| -
 | 
| -class GrEdgeEffect : public GrEffect {
 | 
| -public:
 | 
| -    enum EdgeType {
 | 
| -        /* 1-pixel wide line
 | 
| -           2D implicit device coord line eq (a*x + b*y +c = 0). 4th component unused. */
 | 
| -        kHairLine_EdgeType = 0,
 | 
| -        /* Quadratic specified by 0=u^2-v canonical coords. u and v are the first
 | 
| -           two components of the vertex attribute. Coverage is based on signed
 | 
| -           distance with negative being inside, positive outside. The edge is specified in
 | 
| -           window space (y-down). If either the third or fourth component of the interpolated
 | 
| -           vertex coord is > 0 then the pixel is considered outside the edge. This is used to
 | 
| -           attempt to trim to a portion of the infinite quad. Requires shader derivative
 | 
| -           instruction support. */
 | 
| -        kQuad_EdgeType,
 | 
| -        /* Similar to above but for hairline quadratics. Uses unsigned distance.
 | 
| -           Coverage is min(0, 1-distance). 3rd & 4th component unused. Requires
 | 
| -           shader derivative instruction support. */
 | 
| -        kHairQuad_EdgeType,
 | 
| -
 | 
| -        kLast_EdgeType = kHairQuad_EdgeType
 | 
| -    };
 | 
| -    static const int kEdgeTypeCount = kLast_EdgeType + 1;
 | 
| -
 | 
| -    static GrEffectRef* Create(EdgeType type) {
 | 
| -        // we go through this so we only have one copy of each effect
 | 
| -        static GrEffectRef* gEdgeEffectRef[kEdgeTypeCount] = {
 | 
| -            CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(GrEdgeEffect, (kHairLine_EdgeType)))),
 | 
| -            CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(GrEdgeEffect, (kQuad_EdgeType)))),
 | 
| -            CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(GrEdgeEffect, (kHairQuad_EdgeType)))),
 | 
| -        };
 | 
| -        static SkAutoTUnref<GrEffectRef> gUnref0(gEdgeEffectRef[0]);
 | 
| -        static SkAutoTUnref<GrEffectRef> gUnref1(gEdgeEffectRef[1]);
 | 
| -        static SkAutoTUnref<GrEffectRef> gUnref2(gEdgeEffectRef[2]);
 | 
| -
 | 
| -        gEdgeEffectRef[type]->ref();
 | 
| -        return gEdgeEffectRef[type];
 | 
| -    }
 | 
| -
 | 
| -    virtual ~GrEdgeEffect() {}
 | 
| -
 | 
| -    static const char* Name() { return "Edge"; }
 | 
| -
 | 
| -    virtual void getConstantColorComponents(GrColor* color, uint32_t* validFlags) const SK_OVERRIDE;
 | 
| -
 | 
| -    typedef GrGLEdgeEffect GLEffect;
 | 
| -
 | 
| -    virtual const GrBackendEffectFactory& getFactory() const SK_OVERRIDE;
 | 
| -
 | 
| -    EdgeType edgeType() const { return fEdgeType; }
 | 
| -
 | 
| -private:
 | 
| -    GrEdgeEffect(EdgeType edgeType);
 | 
| -
 | 
| -    virtual bool onIsEqual(const GrEffect& other) const SK_OVERRIDE {
 | 
| -        const GrEdgeEffect& qee = CastEffect<GrEdgeEffect>(other);
 | 
| -        return qee.fEdgeType == fEdgeType;
 | 
| -    }
 | 
| -
 | 
| -    EdgeType fEdgeType;
 | 
| -
 | 
| -    GR_DECLARE_EFFECT_TEST;
 | 
| -
 | 
| -    typedef GrEffect INHERITED;
 | 
| -};
 | 
| -
 | 
| -#endif
 | 
| 
 |