| 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 #include "SkGrPriv.h" | 10 #include "SkGrPriv.h" |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 return kIndex_8_GrPixelConfig; | 446 return kIndex_8_GrPixelConfig; |
| 447 case kGray_8_SkColorType: | 447 case kGray_8_SkColorType: |
| 448 return kAlpha_8_GrPixelConfig; // TODO: gray8 support on gpu | 448 return kAlpha_8_GrPixelConfig; // TODO: gray8 support on gpu |
| 449 case kRGBA_F16_SkColorType: | 449 case kRGBA_F16_SkColorType: |
| 450 return kRGBA_half_GrPixelConfig; | 450 return kRGBA_half_GrPixelConfig; |
| 451 } | 451 } |
| 452 SkASSERT(0); // shouldn't get here | 452 SkASSERT(0); // shouldn't get here |
| 453 return kUnknown_GrPixelConfig; | 453 return kUnknown_GrPixelConfig; |
| 454 } | 454 } |
| 455 | 455 |
| 456 bool GrPixelConfigToColorAndColorSpace(GrPixelConfig config, SkColorType* ctOut, | 456 bool GrPixelConfig2ColorAndProfileType(GrPixelConfig config, SkColorType* ctOut, |
| 457 sk_sp<SkColorSpace>* csOut) { | 457 SkColorProfileType* ptOut) { |
| 458 SkColorType ct; | 458 SkColorType ct; |
| 459 sk_sp<SkColorSpace> cs = nullptr; | 459 SkColorProfileType pt = kLinear_SkColorProfileType; |
| 460 switch (config) { | 460 switch (config) { |
| 461 case kAlpha_8_GrPixelConfig: | 461 case kAlpha_8_GrPixelConfig: |
| 462 ct = kAlpha_8_SkColorType; | 462 ct = kAlpha_8_SkColorType; |
| 463 break; | 463 break; |
| 464 case kIndex_8_GrPixelConfig: | 464 case kIndex_8_GrPixelConfig: |
| 465 ct = kIndex_8_SkColorType; | 465 ct = kIndex_8_SkColorType; |
| 466 break; | 466 break; |
| 467 case kRGB_565_GrPixelConfig: | 467 case kRGB_565_GrPixelConfig: |
| 468 ct = kRGB_565_SkColorType; | 468 ct = kRGB_565_SkColorType; |
| 469 break; | 469 break; |
| 470 case kRGBA_4444_GrPixelConfig: | 470 case kRGBA_4444_GrPixelConfig: |
| 471 ct = kARGB_4444_SkColorType; | 471 ct = kARGB_4444_SkColorType; |
| 472 break; | 472 break; |
| 473 case kRGBA_8888_GrPixelConfig: | 473 case kRGBA_8888_GrPixelConfig: |
| 474 ct = kRGBA_8888_SkColorType; | 474 ct = kRGBA_8888_SkColorType; |
| 475 break; | 475 break; |
| 476 case kBGRA_8888_GrPixelConfig: | 476 case kBGRA_8888_GrPixelConfig: |
| 477 ct = kBGRA_8888_SkColorType; | 477 ct = kBGRA_8888_SkColorType; |
| 478 break; | 478 break; |
| 479 case kSRGBA_8888_GrPixelConfig: | 479 case kSRGBA_8888_GrPixelConfig: |
| 480 ct = kRGBA_8888_SkColorType; | 480 ct = kRGBA_8888_SkColorType; |
| 481 cs = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); | 481 pt = kSRGB_SkColorProfileType; |
| 482 break; | 482 break; |
| 483 case kSBGRA_8888_GrPixelConfig: | 483 case kSBGRA_8888_GrPixelConfig: |
| 484 ct = kBGRA_8888_SkColorType; | 484 ct = kBGRA_8888_SkColorType; |
| 485 cs = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); | 485 pt = kSRGB_SkColorProfileType; |
| 486 break; | 486 break; |
| 487 case kRGBA_half_GrPixelConfig: | 487 case kRGBA_half_GrPixelConfig: |
| 488 ct = kRGBA_F16_SkColorType; | 488 ct = kRGBA_F16_SkColorType; |
| 489 break; | 489 break; |
| 490 default: | 490 default: |
| 491 return false; | 491 return false; |
| 492 } | 492 } |
| 493 if (ctOut) { | 493 if (ctOut) { |
| 494 *ctOut = ct; | 494 *ctOut = ct; |
| 495 } | 495 } |
| 496 if (csOut) { | 496 if (ptOut) { |
| 497 *csOut = cs; | 497 *ptOut = pt; |
| 498 } | 498 } |
| 499 return true; | 499 return true; |
| 500 } | 500 } |
| 501 | 501 |
| 502 ////////////////////////////////////////////////////////////////////////////////
//////////////// | 502 ////////////////////////////////////////////////////////////////////////////////
//////////////// |
| 503 | 503 |
| 504 static inline bool blend_requires_shader(const SkXfermode::Mode mode, bool primi
tiveIsSrc) { | 504 static inline bool blend_requires_shader(const SkXfermode::Mode mode, bool primi
tiveIsSrc) { |
| 505 if (primitiveIsSrc) { | 505 if (primitiveIsSrc) { |
| 506 return SkXfermode::kSrc_Mode != mode; | 506 return SkXfermode::kSrc_Mode != mode; |
| 507 } else { | 507 } else { |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 717 | 717 |
| 718 ////////////////////////////////////////////////////////////////////////////////
//////////////// | 718 ////////////////////////////////////////////////////////////////////////////////
//////////////// |
| 719 | 719 |
| 720 SkImageInfo GrMakeInfoFromTexture(GrTexture* tex, int w, int h, bool isOpaque) { | 720 SkImageInfo GrMakeInfoFromTexture(GrTexture* tex, int w, int h, bool isOpaque) { |
| 721 #ifdef SK_DEBUG | 721 #ifdef SK_DEBUG |
| 722 const GrSurfaceDesc& desc = tex->desc(); | 722 const GrSurfaceDesc& desc = tex->desc(); |
| 723 SkASSERT(w <= desc.fWidth); | 723 SkASSERT(w <= desc.fWidth); |
| 724 SkASSERT(h <= desc.fHeight); | 724 SkASSERT(h <= desc.fHeight); |
| 725 #endif | 725 #endif |
| 726 const GrPixelConfig config = tex->config(); | 726 const GrPixelConfig config = tex->config(); |
| 727 SkColorType ct = kUnknown_SkColorType; | 727 SkColorType ct; |
| 728 SkAlphaType at = isOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType; | 728 SkAlphaType at = isOpaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType; |
| 729 if (!GrPixelConfigToColorAndColorSpace(config, &ct, nullptr)) { | 729 if (!GrPixelConfig2ColorAndProfileType(config, &ct, nullptr)) { |
| 730 ct = kUnknown_SkColorType; | 730 ct = kUnknown_SkColorType; |
| 731 } | 731 } |
| 732 return SkImageInfo::Make(w, h, ct, at); | 732 return SkImageInfo::Make(w, h, ct, at); |
| 733 } | 733 } |
| 734 | 734 |
| 735 | 735 |
| 736 void GrWrapTextureInBitmap(GrTexture* src, int w, int h, bool isOpaque, SkBitmap
* dst) { | 736 void GrWrapTextureInBitmap(GrTexture* src, int w, int h, bool isOpaque, SkBitmap
* dst) { |
| 737 const SkImageInfo info = GrMakeInfoFromTexture(src, w, h, isOpaque); | 737 const SkImageInfo info = GrMakeInfoFromTexture(src, w, h, isOpaque); |
| 738 dst->setInfo(info); | 738 dst->setInfo(info); |
| 739 dst->setPixelRef(new SkGrPixelRef(info, src))->unref(); | 739 dst->setPixelRef(new SkGrPixelRef(info, src))->unref(); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 773 SkErrorInternals::SetError( kInvalidPaint_SkError, | 773 SkErrorInternals::SetError( kInvalidPaint_SkError, |
| 774 "Sorry, I don't understand the filtering
" | 774 "Sorry, I don't understand the filtering
" |
| 775 "mode you asked for. Falling back to " | 775 "mode you asked for. Falling back to " |
| 776 "MIPMaps."); | 776 "MIPMaps."); |
| 777 textureFilterMode = GrTextureParams::kMipMap_FilterMode; | 777 textureFilterMode = GrTextureParams::kMipMap_FilterMode; |
| 778 break; | 778 break; |
| 779 | 779 |
| 780 } | 780 } |
| 781 return textureFilterMode; | 781 return textureFilterMode; |
| 782 } | 782 } |
| OLD | NEW |