OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 "GrAtlasTextBatch.h" | 8 #include "GrAtlasTextBatch.h" |
9 | 9 |
10 #include "GrBatchFlushState.h" | 10 #include "GrBatchFlushState.h" |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 | 254 |
255 // TODO just use class params | 255 // TODO just use class params |
256 // TODO trying to figure out why lcd is so whack | 256 // TODO trying to figure out why lcd is so whack |
257 GrGeometryProcessor* GrAtlasTextBatch::setupDfProcessor(const SkMatrix& viewMatr
ix, | 257 GrGeometryProcessor* GrAtlasTextBatch::setupDfProcessor(const SkMatrix& viewMatr
ix, |
258 SkColor filteredColor, | 258 SkColor filteredColor, |
259 GrColor color, GrTexture
* texture) const { | 259 GrColor color, GrTexture
* texture) const { |
260 GrTextureParams params(SkShader::kClamp_TileMode, GrTextureParams::kBilerp_F
ilterMode); | 260 GrTextureParams params(SkShader::kClamp_TileMode, GrTextureParams::kBilerp_F
ilterMode); |
261 bool isLCD = this->isLCD(); | 261 bool isLCD = this->isLCD(); |
262 // set up any flags | 262 // set up any flags |
263 uint32_t flags = viewMatrix.isSimilarity() ? kSimilarity_DistanceFieldEffect
Flag : 0; | 263 uint32_t flags = viewMatrix.isSimilarity() ? kSimilarity_DistanceFieldEffect
Flag : 0; |
| 264 flags |= viewMatrix.isScaleTranslate() ? kScaleOnly_DistanceFieldEffectFlag
: 0; |
264 | 265 |
265 // see if we need to create a new effect | 266 // see if we need to create a new effect |
266 if (isLCD) { | 267 if (isLCD) { |
267 flags |= kUseLCD_DistanceFieldEffectFlag; | 268 flags |= kUseLCD_DistanceFieldEffectFlag; |
268 flags |= viewMatrix.rectStaysRect() ? kRectToRect_DistanceFieldEffectFla
g : 0; | |
269 flags |= fUseBGR ? kBGR_DistanceFieldEffectFlag : 0; | 269 flags |= fUseBGR ? kBGR_DistanceFieldEffectFlag : 0; |
270 | 270 |
271 GrColor colorNoPreMul = skcolor_to_grcolor_nopremultiply(filteredColor); | 271 GrColor colorNoPreMul = skcolor_to_grcolor_nopremultiply(filteredColor); |
272 | 272 |
273 float redCorrection = | 273 float redCorrection = |
274 (*fDistanceAdjustTable)[GrColorUnpackR(colorNoPreMul) >> kDistanceAd
justLumShift]; | 274 (*fDistanceAdjustTable)[GrColorUnpackR(colorNoPreMul) >> kDistanceAd
justLumShift]; |
275 float greenCorrection = | 275 float greenCorrection = |
276 (*fDistanceAdjustTable)[GrColorUnpackG(colorNoPreMul) >> kDistanceAd
justLumShift]; | 276 (*fDistanceAdjustTable)[GrColorUnpackG(colorNoPreMul) >> kDistanceAd
justLumShift]; |
277 float blueCorrection = | 277 float blueCorrection = |
278 (*fDistanceAdjustTable)[GrColorUnpackB(colorNoPreMul) >> kDistanceAd
justLumShift]; | 278 (*fDistanceAdjustTable)[GrColorUnpackB(colorNoPreMul) >> kDistanceAd
justLumShift]; |
(...skipping 29 matching lines...) Expand all Loading... |
308 this->usesLocalCoords()); | 308 this->usesLocalCoords()); |
309 #endif | 309 #endif |
310 } | 310 } |
311 | 311 |
312 } | 312 } |
313 | 313 |
314 void GrBlobRegenHelper::flush() { | 314 void GrBlobRegenHelper::flush() { |
315 fBatch->flush(fTarget, fFlushInfo); | 315 fBatch->flush(fTarget, fFlushInfo); |
316 fTarget->initDraw(fGP, fBatch->pipeline()); | 316 fTarget->initDraw(fGP, fBatch->pipeline()); |
317 } | 317 } |
OLD | NEW |