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

Side by Side Diff: src/gpu/effects/GrDistanceFieldGeoProc.h

Issue 1512533003: Remove uniform color for GrDistanceFieldGeoProc (Closed) Base URL: https://skia.googlesource.com/skia.git@cleanuptext4
Patch Set: mac warnings Created 5 years 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 unified diff | Download patch
« no previous file with comments | « src/gpu/batches/GrAtlasTextBatch.cpp ('k') | src/gpu/effects/GrDistanceFieldGeoProc.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrDistanceFieldGeoProc_DEFINED 8 #ifndef GrDistanceFieldGeoProc_DEFINED
9 #define GrDistanceFieldGeoProc_DEFINED 9 #define GrDistanceFieldGeoProc_DEFINED
10 10
11 #include "GrProcessor.h" 11 #include "GrProcessor.h"
12 #include "GrGeometryProcessor.h" 12 #include "GrGeometryProcessor.h"
13 13
14 class GrGLDistanceFieldA8TextGeoProc; 14 class GrGLDistanceFieldA8TextGeoProc;
15 class GrGLDistanceFieldPathGeoProc; 15 class GrGLDistanceFieldPathGeoProc;
16 class GrGLDistanceFieldLCDTextGeoProc; 16 class GrGLDistanceFieldLCDTextGeoProc;
17 class GrInvariantOutput; 17 class GrInvariantOutput;
18 18
19 enum GrDistanceFieldEffectFlags { 19 enum GrDistanceFieldEffectFlags {
20 kSimilarity_DistanceFieldEffectFlag = 0x01, // ctm is similarity matrix 20 kSimilarity_DistanceFieldEffectFlag = 0x01, // ctm is similarity matrix
21 kRectToRect_DistanceFieldEffectFlag = 0x02, // ctm maps rects to rects 21 kRectToRect_DistanceFieldEffectFlag = 0x02, // ctm maps rects to rects
22 kUseLCD_DistanceFieldEffectFlag = 0x04, // use lcd text 22 kUseLCD_DistanceFieldEffectFlag = 0x04, // use lcd text
23 kBGR_DistanceFieldEffectFlag = 0x08, // lcd display has bgr order 23 kBGR_DistanceFieldEffectFlag = 0x08, // lcd display has bgr order
24 kPortrait_DistanceFieldEffectFlag = 0x10, // lcd display is in portrait mode (not used yet) 24 kPortrait_DistanceFieldEffectFlag = 0x10, // lcd display is in portrait mode (not used yet)
25 kColorAttr_DistanceFieldEffectFlag = 0x20, // color vertex attribute
26 25
27 kInvalid_DistanceFieldEffectFlag = 0x80, // invalid state (for initiali zation) 26 kInvalid_DistanceFieldEffectFlag = 0x80, // invalid state (for initiali zation)
28 27
29 kUniformScale_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag | 28 kUniformScale_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag |
30 kRectToRect_DistanceFieldEffectFlag, 29 kRectToRect_DistanceFieldEffectFlag,
31 // The subset of the flags relevant to GrDistanceFieldA8TextGeoProc 30 // The subset of the flags relevant to GrDistanceFieldA8TextGeoProc
32 kNonLCD_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag | 31 kNonLCD_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag,
33 kColorAttr_DistanceFieldEffectFlag,
34 // The subset of the flags relevant to GrDistanceFieldLCDTextGeoProc 32 // The subset of the flags relevant to GrDistanceFieldLCDTextGeoProc
35 kLCD_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag | 33 kLCD_DistanceFieldEffectMask = kSimilarity_DistanceFieldEffectFlag |
36 kRectToRect_DistanceFieldEffectFlag | 34 kRectToRect_DistanceFieldEffectFlag |
37 kUseLCD_DistanceFieldEffectFlag | 35 kUseLCD_DistanceFieldEffectFlag |
38 kBGR_DistanceFieldEffectFlag | 36 kBGR_DistanceFieldEffectFlag,
39 kColorAttr_DistanceFieldEffectFlag,
40 }; 37 };
41 38
42 /** 39 /**
43 * The output color of this effect is a modulation of the input color and a samp le from a 40 * The output color of this effect is a modulation of the input color and a samp le from a
44 * distance field texture (using a smoothed step function near 0.5). 41 * distance field texture (using a smoothed step function near 0.5).
45 * It allows explicit specification of the filtering and wrap modes (GrTexturePa rams). The input 42 * It allows explicit specification of the filtering and wrap modes (GrTexturePa rams). The input
46 * coords are a custom attribute. Gamma correction is handled via a texture LUT. 43 * coords are a custom attribute. Gamma correction is handled via a texture LUT.
47 */ 44 */
48 class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor { 45 class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor {
49 public: 46 public:
(...skipping 15 matching lines...) Expand all
65 62
66 virtual ~GrDistanceFieldA8TextGeoProc() {} 63 virtual ~GrDistanceFieldA8TextGeoProc() {}
67 64
68 const char* name() const override { return "DistanceFieldTexture"; } 65 const char* name() const override { return "DistanceFieldTexture"; }
69 66
70 const Attribute* inPosition() const { return fInPosition; } 67 const Attribute* inPosition() const { return fInPosition; }
71 const Attribute* inColor() const { return fInColor; } 68 const Attribute* inColor() const { return fInColor; }
72 const Attribute* inTextureCoords() const { return fInTextureCoords; } 69 const Attribute* inTextureCoords() const { return fInTextureCoords; }
73 GrColor color() const { return fColor; } 70 GrColor color() const { return fColor; }
74 bool colorIgnored() const { return GrColor_ILLEGAL == fColor; } 71 bool colorIgnored() const { return GrColor_ILLEGAL == fColor; }
75 bool hasVertexColor() const { return SkToBool(fInColor); }
76 const SkMatrix& viewMatrix() const { return fViewMatrix; } 72 const SkMatrix& viewMatrix() const { return fViewMatrix; }
77 bool usesLocalCoords() const { return fUsesLocalCoords; } 73 bool usesLocalCoords() const { return fUsesLocalCoords; }
78 #ifdef SK_GAMMA_APPLY_TO_A8 74 #ifdef SK_GAMMA_APPLY_TO_A8
79 float getDistanceAdjust() const { return fDistanceAdjust; } 75 float getDistanceAdjust() const { return fDistanceAdjust; }
80 #endif 76 #endif
81 uint32_t getFlags() const { return fFlags; } 77 uint32_t getFlags() const { return fFlags; }
82 78
83 void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) c onst override; 79 void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) c onst override;
84 80
85 GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const overri de; 81 GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const overri de;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 123
128 virtual ~GrDistanceFieldPathGeoProc() {} 124 virtual ~GrDistanceFieldPathGeoProc() {}
129 125
130 const char* name() const override { return "DistanceFieldTexture"; } 126 const char* name() const override { return "DistanceFieldTexture"; }
131 127
132 const Attribute* inPosition() const { return fInPosition; } 128 const Attribute* inPosition() const { return fInPosition; }
133 const Attribute* inColor() const { return fInColor; } 129 const Attribute* inColor() const { return fInColor; }
134 const Attribute* inTextureCoords() const { return fInTextureCoords; } 130 const Attribute* inTextureCoords() const { return fInTextureCoords; }
135 GrColor color() const { return fColor; } 131 GrColor color() const { return fColor; }
136 bool colorIgnored() const { return GrColor_ILLEGAL == fColor; } 132 bool colorIgnored() const { return GrColor_ILLEGAL == fColor; }
137 bool hasVertexColor() const { return SkToBool(fInColor); }
138 const SkMatrix& viewMatrix() const { return fViewMatrix; } 133 const SkMatrix& viewMatrix() const { return fViewMatrix; }
139 uint32_t getFlags() const { return fFlags; } 134 uint32_t getFlags() const { return fFlags; }
140 bool usesLocalCoords() const { return fUsesLocalCoords; } 135 bool usesLocalCoords() const { return fUsesLocalCoords; }
141 136
142 void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) c onst override; 137 void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) c onst override;
143 138
144 GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const overri de; 139 GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const overri de;
145 140
146 private: 141 private:
147 GrDistanceFieldPathGeoProc(GrColor, const SkMatrix& viewMatrix, GrTexture* t exture, 142 GrDistanceFieldPathGeoProc(GrColor, const SkMatrix& viewMatrix, GrTexture* t exture,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 virtual ~GrDistanceFieldLCDTextGeoProc() {} 191 virtual ~GrDistanceFieldLCDTextGeoProc() {}
197 192
198 const char* name() const override { return "DistanceFieldLCDTexture"; } 193 const char* name() const override { return "DistanceFieldLCDTexture"; }
199 194
200 const Attribute* inPosition() const { return fInPosition; } 195 const Attribute* inPosition() const { return fInPosition; }
201 const Attribute* inColor() const { return fInColor; } 196 const Attribute* inColor() const { return fInColor; }
202 const Attribute* inTextureCoords() const { return fInTextureCoords; } 197 const Attribute* inTextureCoords() const { return fInTextureCoords; }
203 DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; } 198 DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; }
204 GrColor color() const { return fColor; } 199 GrColor color() const { return fColor; }
205 bool colorIgnored() const { return GrColor_ILLEGAL == fColor; } 200 bool colorIgnored() const { return GrColor_ILLEGAL == fColor; }
206 bool hasVertexColor() const { return SkToBool(fInColor); }
207 const SkMatrix& viewMatrix() const { return fViewMatrix; } 201 const SkMatrix& viewMatrix() const { return fViewMatrix; }
208 uint32_t getFlags() const { return fFlags; } 202 uint32_t getFlags() const { return fFlags; }
209 bool usesLocalCoords() const { return fUsesLocalCoords; } 203 bool usesLocalCoords() const { return fUsesLocalCoords; }
210 204
211 void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) c onst override; 205 void getGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) c onst override;
212 206
213 GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const overri de; 207 GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps&) const overri de;
214 208
215 private: 209 private:
216 GrDistanceFieldLCDTextGeoProc(GrColor, const SkMatrix& viewMatrix, 210 GrDistanceFieldLCDTextGeoProc(GrColor, const SkMatrix& viewMatrix,
(...skipping 10 matching lines...) Expand all
227 const Attribute* fInColor; 221 const Attribute* fInColor;
228 const Attribute* fInTextureCoords; 222 const Attribute* fInTextureCoords;
229 bool fUsesLocalCoords; 223 bool fUsesLocalCoords;
230 224
231 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; 225 GR_DECLARE_GEOMETRY_PROCESSOR_TEST;
232 226
233 typedef GrGeometryProcessor INHERITED; 227 typedef GrGeometryProcessor INHERITED;
234 }; 228 };
235 229
236 #endif 230 #endif
OLDNEW
« no previous file with comments | « src/gpu/batches/GrAtlasTextBatch.cpp ('k') | src/gpu/effects/GrDistanceFieldGeoProc.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698