diff options
Diffstat (limited to 'samplecode/SampleApp.cpp')
| -rw-r--r-- | samplecode/SampleApp.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp index 40ead7482f..b80ea44d30 100644 --- a/samplecode/SampleApp.cpp +++ b/samplecode/SampleApp.cpp @@ -48,17 +48,18 @@ class GrContext; const struct { SkColorType fColorType; - SkColorProfileType fProfileType; + bool fSRGB; const char* fName; } gConfig[] = { - { kN32_SkColorType, kLinear_SkColorProfileType, "L32" }, - { kN32_SkColorType, kSRGB_SkColorProfileType, "S32" }, - { kRGBA_F16_SkColorType, kLinear_SkColorProfileType, "F16" }, + { kN32_SkColorType, false, "L32" }, + { kN32_SkColorType, true, "S32" }, + { kRGBA_F16_SkColorType, false, "F16" }, }; static const char* find_config_name(const SkImageInfo& info) { for (const auto& config : gConfig) { - if (config.fColorType == info.colorType() && config.fProfileType == info.profileType()) { + if (config.fColorType == info.colorType() && + config.fSRGB == (info.colorSpace() != nullptr)) { return config.fName; } } @@ -1532,7 +1533,9 @@ bool SampleWindow::onEvent(const SkEvent& evt) { return true; } if (SkOSMenu::FindListIndex(evt, "ColorType", &selected)) { - this->setDeviceColorType(gConfig[selected].fColorType, gConfig[selected].fProfileType); + auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); + this->setDeviceColorType(gConfig[selected].fColorType, + gConfig[selected].fSRGB ? srgbColorSpace : nullptr); return true; } if (SkOSMenu::FindSwitchState(evt, "Slide Show", nullptr)) { @@ -1747,8 +1750,8 @@ void SampleWindow::setDeviceType(DeviceType type) { this->inval(nullptr); } -void SampleWindow::setDeviceColorType(SkColorType ct, SkColorProfileType pt) { - this->setColorType(ct, pt); +void SampleWindow::setDeviceColorType(SkColorType ct, sk_sp<SkColorSpace> cs) { + this->setColorType(ct, std::move(cs)); fDevManager->tearDownBackend(this); fDevManager->setUpBackend(this, fMSAASampleCount, fDeepColor); |
