OLD | NEW |
1 | 1 |
2 #include "SkBitmap.h" | 2 #include "SkBitmap.h" |
3 #include "SkTableColorFilter.h" | 3 #include "SkTableColorFilter.h" |
4 #include "SkColorPriv.h" | 4 #include "SkColorPriv.h" |
5 #include "SkFlattenableBuffers.h" | 5 #include "SkFlattenableBuffers.h" |
6 #include "SkUnPreMultiply.h" | 6 #include "SkUnPreMultiply.h" |
7 #include "SkString.h" | 7 #include "SkString.h" |
8 | 8 |
9 class SkTable_ColorFilter : public SkColorFilter { | 9 class SkTable_ColorFilter : public SkColorFilter { |
10 public: | 10 public: |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 } else { | 305 } else { |
306 builder->fsCodeAppendf("\t\tfloat nonZeroAlpha = max(%s.a, .0001);\n", i
nputColor); | 306 builder->fsCodeAppendf("\t\tfloat nonZeroAlpha = max(%s.a, .0001);\n", i
nputColor); |
307 builder->fsCodeAppendf("\t\tvec4 coord = vec4(%s.rgb / nonZeroAlpha, non
ZeroAlpha);\n", inputColor); | 307 builder->fsCodeAppendf("\t\tvec4 coord = vec4(%s.rgb / nonZeroAlpha, non
ZeroAlpha);\n", inputColor); |
308 builder->fsCodeAppendf("\t\tcoord = coord * %f + vec4(%f, %f, %f, %f);\n
", | 308 builder->fsCodeAppendf("\t\tcoord = coord * %f + vec4(%f, %f, %f, %f);\n
", |
309 kColorScaleFactor, | 309 kColorScaleFactor, |
310 kColorOffsetFactor, kColorOffsetFactor, | 310 kColorOffsetFactor, kColorOffsetFactor, |
311 kColorOffsetFactor, kColorOffsetFactor); | 311 kColorOffsetFactor, kColorOffsetFactor); |
312 } | 312 } |
313 | 313 |
314 builder->fsCodeAppendf("\t\t%s.a = ", outputColor); | 314 builder->fsCodeAppendf("\t\t%s.a = ", outputColor); |
315 builder->appendTextureLookup(GrGLShaderBuilder::kFragment_ShaderType, sample
rs[0], "vec2(coord.a, 0.125)"); | 315 builder->fsAppendTextureLookup(samplers[0], "vec2(coord.a, 0.125)"); |
316 builder->fsCodeAppend(";\n"); | 316 builder->fsCodeAppend(";\n"); |
317 | 317 |
318 builder->fsCodeAppendf("\t\t%s.r = ", outputColor); | 318 builder->fsCodeAppendf("\t\t%s.r = ", outputColor); |
319 builder->appendTextureLookup(GrGLShaderBuilder::kFragment_ShaderType, sample
rs[0], "vec2(coord.r, 0.375)"); | 319 builder->fsAppendTextureLookup(samplers[0], "vec2(coord.r, 0.375)"); |
320 builder->fsCodeAppend(";\n"); | 320 builder->fsCodeAppend(";\n"); |
321 | 321 |
322 builder->fsCodeAppendf("\t\t%s.g = ", outputColor); | 322 builder->fsCodeAppendf("\t\t%s.g = ", outputColor); |
323 builder->appendTextureLookup(GrGLShaderBuilder::kFragment_ShaderType, sample
rs[0], "vec2(coord.g, 0.625)"); | 323 builder->fsAppendTextureLookup(samplers[0], "vec2(coord.g, 0.625)"); |
324 builder->fsCodeAppend(";\n"); | 324 builder->fsCodeAppend(";\n"); |
325 | 325 |
326 builder->fsCodeAppendf("\t\t%s.b = ", outputColor); | 326 builder->fsCodeAppendf("\t\t%s.b = ", outputColor); |
327 builder->appendTextureLookup(GrGLShaderBuilder::kFragment_ShaderType, sample
rs[0], "vec2(coord.b, 0.875)"); | 327 builder->fsAppendTextureLookup(samplers[0], "vec2(coord.b, 0.875)"); |
328 builder->fsCodeAppend(";\n"); | 328 builder->fsCodeAppend(";\n"); |
329 | 329 |
330 builder->fsCodeAppendf("\t\t%s.rgb *= %s.a;\n", outputColor, outputColor); | 330 builder->fsCodeAppendf("\t\t%s.rgb *= %s.a;\n", outputColor, outputColor); |
331 } | 331 } |
332 | 332 |
333 GrGLEffect::EffectKey GLColorTableEffect::GenKey(const GrDrawEffect&, const GrGL
Caps&) { | 333 GrGLEffect::EffectKey GLColorTableEffect::GenKey(const GrDrawEffect&, const GrGL
Caps&) { |
334 return 0; | 334 return 0; |
335 } | 335 } |
336 | 336 |
337 /////////////////////////////////////////////////////////////////////////////// | 337 /////////////////////////////////////////////////////////////////////////////// |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256], | 422 SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256], |
423 const uint8_t tableR[256], | 423 const uint8_t tableR[256], |
424 const uint8_t tableG[256], | 424 const uint8_t tableG[256], |
425 const uint8_t tableB[256]) { | 425 const uint8_t tableB[256]) { |
426 return SkNEW_ARGS(SkTable_ColorFilter, (tableA, tableR, tableG, tableB)); | 426 return SkNEW_ARGS(SkTable_ColorFilter, (tableA, tableR, tableG, tableB)); |
427 } | 427 } |
428 | 428 |
429 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter) | 429 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter) |
430 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTable_ColorFilter) | 430 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTable_ColorFilter) |
431 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 431 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
OLD | NEW |