Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(732)

Unified Diff: src/gpu/effects/GrEdgeEffect.h

Issue 13344002: Move edge GrEffects to locally defined classes (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: rebase to head revision Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/effects/GrCircleEdgeEffect.cpp ('k') | src/gpu/effects/GrEdgeEffect.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « src/gpu/effects/GrCircleEdgeEffect.cpp ('k') | src/gpu/effects/GrEdgeEffect.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698