| OLD | NEW | 
|---|
| 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 | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 42 | 42 | 
| 43 /** | 43 /** | 
| 44  * The output color of this effect is a modulation of the input color and a samp
     le from a | 44  * The output color of this effect is a modulation of the input color and a samp
     le from a | 
| 45  * distance field texture (using a smoothed step function near 0.5). | 45  * distance field texture (using a smoothed step function near 0.5). | 
| 46  * It allows explicit specification of the filtering and wrap modes (GrTexturePa
     rams). The input | 46  * It allows explicit specification of the filtering and wrap modes (GrTexturePa
     rams). The input | 
| 47  * coords are a custom attribute. Gamma correction is handled via a texture LUT. | 47  * coords are a custom attribute. Gamma correction is handled via a texture LUT. | 
| 48  */ | 48  */ | 
| 49 class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor { | 49 class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor { | 
| 50 public: | 50 public: | 
| 51 #ifdef SK_GAMMA_APPLY_TO_A8 | 51 #ifdef SK_GAMMA_APPLY_TO_A8 | 
| 52     static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix
     , | 52     static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& viewMa
     trix, | 
| 53                                        GrTexture* tex, const GrTextureParams& pa
     rams, | 53                                            GrTexture* tex, const GrTextureParams
     & params, | 
| 54                                        float lum, uint32_t flags, bool usesLocal
     Coords) { | 54                                            float lum, uint32_t flags, bool usesL
     ocalCoords) { | 
| 55         return new GrDistanceFieldA8TextGeoProc(color, viewMatrix, tex, params, 
     lum, flags, | 55         return sk_sp<GrGeometryProcessor>( | 
| 56                                                 usesLocalCoords); | 56             new GrDistanceFieldA8TextGeoProc(color, viewMatrix, tex, params, lum
     , flags, | 
|  | 57                                              usesLocalCoords)); | 
| 57     } | 58     } | 
| 58 #else | 59 #else | 
| 59     static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix
     , | 60     static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& viewMa
     trix, | 
| 60                                        GrTexture* tex, const GrTextureParams& pa
     rams, | 61                                            GrTexture* tex, const GrTextureParams
     & params, | 
| 61                                        uint32_t flags, bool usesLocalCoords) { | 62                                            uint32_t flags, bool usesLocalCoords)
      { | 
| 62         return new GrDistanceFieldA8TextGeoProc(color, viewMatrix, tex, params, 
     flags, | 63         return sk_sp<GrGeometryProcessor>( | 
| 63                                                 usesLocalCoords); | 64             new GrDistanceFieldA8TextGeoProc(color, viewMatrix, tex, params, fla
     gs, | 
|  | 65                                              usesLocalCoords)); | 
| 64     } | 66     } | 
| 65 #endif | 67 #endif | 
| 66 | 68 | 
| 67     virtual ~GrDistanceFieldA8TextGeoProc() {} | 69     virtual ~GrDistanceFieldA8TextGeoProc() {} | 
| 68 | 70 | 
| 69     const char* name() const override { return "DistanceFieldTexture"; } | 71     const char* name() const override { return "DistanceFieldTexture"; } | 
| 70 | 72 | 
| 71     const Attribute* inPosition() const { return fInPosition; } | 73     const Attribute* inPosition() const { return fInPosition; } | 
| 72     const Attribute* inColor() const { return fInColor; } | 74     const Attribute* inColor() const { return fInColor; } | 
| 73     const Attribute* inTextureCoords() const { return fInTextureCoords; } | 75     const Attribute* inTextureCoords() const { return fInTextureCoords; } | 
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 111 | 113 | 
| 112 | 114 | 
| 113 /** | 115 /** | 
| 114 * The output color of this effect is a modulation of the input color and a sampl
     e from a | 116 * The output color of this effect is a modulation of the input color and a sampl
     e from a | 
| 115 * distance field texture (using a smoothed step function near 0.5). | 117 * distance field texture (using a smoothed step function near 0.5). | 
| 116 * It allows explicit specification of the filtering and wrap modes (GrTexturePar
     ams). The input | 118 * It allows explicit specification of the filtering and wrap modes (GrTexturePar
     ams). The input | 
| 117 * coords are a custom attribute. No gamma correct blending is applied. Used for 
     paths only. | 119 * coords are a custom attribute. No gamma correct blending is applied. Used for 
     paths only. | 
| 118 */ | 120 */ | 
| 119 class GrDistanceFieldPathGeoProc : public GrGeometryProcessor { | 121 class GrDistanceFieldPathGeoProc : public GrGeometryProcessor { | 
| 120 public: | 122 public: | 
| 121     static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix
     , GrTexture* tex, | 123     static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& viewMa
     trix, | 
| 122                                        const GrTextureParams& params, | 124                                            GrTexture* tex, const GrTextureParams
     & params, | 
| 123                                        uint32_t flags, bool usesLocalCoords) { | 125                                            uint32_t flags, bool usesLocalCoords)
      { | 
| 124         return new GrDistanceFieldPathGeoProc(color, viewMatrix, tex, params, fl
     ags, | 126         return sk_sp<GrGeometryProcessor>( | 
| 125                                               usesLocalCoords); | 127             new GrDistanceFieldPathGeoProc(color, viewMatrix, tex, params, flags
     , usesLocalCoords)); | 
| 126     } | 128     } | 
| 127 | 129 | 
| 128     virtual ~GrDistanceFieldPathGeoProc() {} | 130     virtual ~GrDistanceFieldPathGeoProc() {} | 
| 129 | 131 | 
| 130     const char* name() const override { return "DistanceFieldTexture"; } | 132     const char* name() const override { return "DistanceFieldTexture"; } | 
| 131 | 133 | 
| 132     const Attribute* inPosition() const { return fInPosition; } | 134     const Attribute* inPosition() const { return fInPosition; } | 
| 133     const Attribute* inColor() const { return fInColor; } | 135     const Attribute* inColor() const { return fInColor; } | 
| 134     const Attribute* inTextureCoords() const { return fInTextureCoords; } | 136     const Attribute* inTextureCoords() const { return fInTextureCoords; } | 
| 135     GrColor color() const { return fColor; } | 137     GrColor color() const { return fColor; } | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 177             return result; | 179             return result; | 
| 178         } | 180         } | 
| 179         bool operator==(const DistanceAdjust& wa) const { | 181         bool operator==(const DistanceAdjust& wa) const { | 
| 180             return (fR == wa.fR && fG == wa.fG && fB == wa.fB); | 182             return (fR == wa.fR && fG == wa.fG && fB == wa.fB); | 
| 181         } | 183         } | 
| 182         bool operator!=(const DistanceAdjust& wa) const { | 184         bool operator!=(const DistanceAdjust& wa) const { | 
| 183             return !(*this == wa); | 185             return !(*this == wa); | 
| 184         } | 186         } | 
| 185     }; | 187     }; | 
| 186 | 188 | 
| 187     static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix
     , | 189     static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& viewMa
     trix, | 
| 188                                        GrTexture* tex, const GrTextureParams& pa
     rams, | 190                                            GrTexture* tex, const GrTextureParams
     & params, | 
| 189                                        DistanceAdjust distanceAdjust, uint32_t f
     lags, | 191                                            DistanceAdjust distanceAdjust, uint32
     _t flags, | 
| 190                                        bool usesLocalCoords) { | 192                                            bool usesLocalCoords) { | 
| 191         return new GrDistanceFieldLCDTextGeoProc(color, viewMatrix, tex, params,
      distanceAdjust, | 193         return sk_sp<GrGeometryProcessor>( | 
| 192                                                  flags, usesLocalCoords); | 194             new GrDistanceFieldLCDTextGeoProc(color, viewMatrix, tex, params, di
     stanceAdjust, | 
|  | 195                                               flags, usesLocalCoords)); | 
| 193     } | 196     } | 
| 194 | 197 | 
| 195     virtual ~GrDistanceFieldLCDTextGeoProc() {} | 198     virtual ~GrDistanceFieldLCDTextGeoProc() {} | 
| 196 | 199 | 
| 197     const char* name() const override { return "DistanceFieldLCDTexture"; } | 200     const char* name() const override { return "DistanceFieldLCDTexture"; } | 
| 198 | 201 | 
| 199     const Attribute* inPosition() const { return fInPosition; } | 202     const Attribute* inPosition() const { return fInPosition; } | 
| 200     const Attribute* inColor() const { return fInColor; } | 203     const Attribute* inColor() const { return fInColor; } | 
| 201     const Attribute* inTextureCoords() const { return fInTextureCoords; } | 204     const Attribute* inTextureCoords() const { return fInTextureCoords; } | 
| 202     DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; } | 205     DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; } | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 225     const Attribute* fInColor; | 228     const Attribute* fInColor; | 
| 226     const Attribute* fInTextureCoords; | 229     const Attribute* fInTextureCoords; | 
| 227     bool             fUsesLocalCoords; | 230     bool             fUsesLocalCoords; | 
| 228 | 231 | 
| 229     GR_DECLARE_GEOMETRY_PROCESSOR_TEST; | 232     GR_DECLARE_GEOMETRY_PROCESSOR_TEST; | 
| 230 | 233 | 
| 231     typedef GrGeometryProcessor INHERITED; | 234     typedef GrGeometryProcessor INHERITED; | 
| 232 }; | 235 }; | 
| 233 | 236 | 
| 234 #endif | 237 #endif | 
| OLD | NEW | 
|---|