| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2010 Google Inc. | 2 * Copyright 2010 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 | 8 |
| 9 #include "SkGr.h" | 9 #include "SkGr.h" |
| 10 | 10 |
| (...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 590 const SkPaint& skPaint, | 590 const SkPaint& skPaint, |
| 591 const SkMatrix& viewM, | 591 const SkMatrix& viewM, |
| 592 SkXfermode::Mode primColorMode, | 592 SkXfermode::Mode primColorMode, |
| 593 bool primitiveIsSrc, | 593 bool primitiveIsSrc, |
| 594 GrPaint* grPaint) { | 594 GrPaint* grPaint) { |
| 595 return skpaint_to_grpaint_impl(context, skPaint, viewM, nullptr, &primColorM
ode, primitiveIsSrc, | 595 return skpaint_to_grpaint_impl(context, skPaint, viewM, nullptr, &primColorM
ode, primitiveIsSrc, |
| 596 grPaint); | 596 grPaint); |
| 597 } | 597 } |
| 598 | 598 |
| 599 | 599 |
| 600 bool SkPaintToGrPaintWithTexture(GrContext* context, |
| 601 const SkPaint& paint, |
| 602 const SkMatrix& viewM, |
| 603 const GrFragmentProcessor* fp, |
| 604 bool textureIsAlphaOnly, |
| 605 GrPaint* grPaint) { |
| 606 SkAutoTUnref<const GrFragmentProcessor> shaderFP; |
| 607 if (textureIsAlphaOnly) { |
| 608 if (const SkShader* shader = paint.getShader()) { |
| 609 shaderFP.reset(shader->asFragmentProcessor(context, |
| 610 viewM, |
| 611 nullptr, |
| 612 paint.getFilterQuality())
); |
| 613 if (!shaderFP) { |
| 614 return false; |
| 615 } |
| 616 const GrFragmentProcessor* fpSeries[] = { shaderFP.get(), fp }; |
| 617 shaderFP.reset(GrFragmentProcessor::RunInSeries(fpSeries, 2)); |
| 618 } else { |
| 619 shaderFP.reset(GrFragmentProcessor::MulOutputByInputUnpremulColor(fp
)); |
| 620 } |
| 621 } else { |
| 622 shaderFP.reset(GrFragmentProcessor::MulOutputByInputAlpha(fp)); |
| 623 } |
| 624 |
| 625 return SkPaintToGrPaintReplaceShader(context, paint, shaderFP.get(), grPaint
); |
| 626 } |
| 627 |
| 628 |
| 600 ////////////////////////////////////////////////////////////////////////////////
//////////////// | 629 ////////////////////////////////////////////////////////////////////////////////
//////////////// |
| 601 | 630 |
| 602 SkImageInfo GrMakeInfoFromTexture(GrTexture* tex, int w, int h, bool isOpaque) { | 631 SkImageInfo GrMakeInfoFromTexture(GrTexture* tex, int w, int h, bool isOpaque) { |
| 603 #ifdef SK_DEBUG | 632 #ifdef SK_DEBUG |
| 604 const GrSurfaceDesc& desc = tex->desc(); | 633 const GrSurfaceDesc& desc = tex->desc(); |
| 605 SkASSERT(w <= desc.fWidth); | 634 SkASSERT(w <= desc.fWidth); |
| 606 SkASSERT(h <= desc.fHeight); | 635 SkASSERT(h <= desc.fHeight); |
| 607 #endif | 636 #endif |
| 608 const GrPixelConfig config = tex->config(); | 637 const GrPixelConfig config = tex->config(); |
| 609 SkColorType ct; | 638 SkColorType ct; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 SkErrorInternals::SetError( kInvalidPaint_SkError, | 684 SkErrorInternals::SetError( kInvalidPaint_SkError, |
| 656 "Sorry, I don't understand the filtering
" | 685 "Sorry, I don't understand the filtering
" |
| 657 "mode you asked for. Falling back to " | 686 "mode you asked for. Falling back to " |
| 658 "MIPMaps."); | 687 "MIPMaps."); |
| 659 textureFilterMode = GrTextureParams::kMipMap_FilterMode; | 688 textureFilterMode = GrTextureParams::kMipMap_FilterMode; |
| 660 break; | 689 break; |
| 661 | 690 |
| 662 } | 691 } |
| 663 return textureFilterMode; | 692 return textureFilterMode; |
| 664 } | 693 } |
| OLD | NEW |