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 #include "GrBitmapTextGeoProc.h" | 8 #include "GrBitmapTextGeoProc.h" |
9 #include "GrInvariantOutput.h" | 9 #include "GrInvariantOutput.h" |
10 #include "GrTexture.h" | 10 #include "GrTexture.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 fsBuilder->appendTextureLookupAndModulate(args.fOutputColor, | 62 fsBuilder->appendTextureLookupAndModulate(args.fOutputColor, |
63 args.fSamplers[0], | 63 args.fSamplers[0], |
64 v.fsIn(), | 64 v.fsIn(), |
65 kVec2f_GrSLType); | 65 kVec2f_GrSLType); |
66 fsBuilder->codeAppend(";"); | 66 fsBuilder->codeAppend(";"); |
67 fsBuilder->codeAppendf("%s = vec4(1);", args.fOutputCoverage); | 67 fsBuilder->codeAppendf("%s = vec4(1);", args.fOutputCoverage); |
68 } else { | 68 } else { |
69 fsBuilder->codeAppendf("%s = ", args.fOutputCoverage); | 69 fsBuilder->codeAppendf("%s = ", args.fOutputCoverage); |
70 fsBuilder->appendTextureLookup(args.fSamplers[0], v.fsIn(), kVec2f_G
rSLType); | 70 fsBuilder->appendTextureLookup(args.fSamplers[0], v.fsIn(), kVec2f_G
rSLType); |
71 fsBuilder->codeAppend(";"); | 71 fsBuilder->codeAppend(";"); |
| 72 if (cte.maskFormat() == kA565_GrMaskFormat) { |
| 73 // set alpha to be max of rgb coverage |
| 74 fsBuilder->codeAppendf("%s.a = max(max(%s.r, %s.g), %s.b);", |
| 75 args.fOutputCoverage, args.fOutputCoverag
e, |
| 76 args.fOutputCoverage, args.fOutputCoverag
e); |
| 77 } |
72 } | 78 } |
73 } | 79 } |
74 | 80 |
75 void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor
& gp) override { | 81 void setData(const GrGLProgramDataManager& pdman, const GrPrimitiveProcessor
& gp) override { |
76 const GrBitmapTextGeoProc& btgp = gp.cast<GrBitmapTextGeoProc>(); | 82 const GrBitmapTextGeoProc& btgp = gp.cast<GrBitmapTextGeoProc>(); |
77 if (btgp.color() != fColor && !btgp.hasVertexColor()) { | 83 if (btgp.color() != fColor && !btgp.hasVertexColor()) { |
78 GrGLfloat c[4]; | 84 GrGLfloat c[4]; |
79 GrColorToRGBAFloat(btgp.color(), c); | 85 GrColorToRGBAFloat(btgp.color(), c); |
80 pdman.set4fv(fColorUniform, 1, c); | 86 pdman.set4fv(fColorUniform, 1, c); |
81 fColor = btgp.color(); | 87 fColor = btgp.color(); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 break; | 182 break; |
177 case 2: | 183 case 2: |
178 format = kARGB_GrMaskFormat; | 184 format = kARGB_GrMaskFormat; |
179 break; | 185 break; |
180 } | 186 } |
181 | 187 |
182 return GrBitmapTextGeoProc::Create(GrRandomColor(d->fRandom), d->fTextures[t
exIdx], params, | 188 return GrBitmapTextGeoProc::Create(GrRandomColor(d->fRandom), d->fTextures[t
exIdx], params, |
183 format, GrTest::TestMatrix(d->fRandom), | 189 format, GrTest::TestMatrix(d->fRandom), |
184 d->fRandom->nextBool()); | 190 d->fRandom->nextBool()); |
185 } | 191 } |
OLD | NEW |