1c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein/* 2c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein * Copyright 2017 Google Inc. 3c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein * 4c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein * Use of this source code is governed by a BSD-style license that can be 5c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein * found in the LICENSE file. 6c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein */ 7c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein 8c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein#include "SkColorSpace.h" 9c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein#include "SkToSRGBColorFilter.h" 10c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein#include "Test.h" 11c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein 12c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein 13c9bc81434adc0c0ea6012167fbda0e131548e683Mike KleinDEF_TEST(SkToSRGBColorFilter, r) { 14c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein 15c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein // sRGB -> sRGB is a no-op. 16c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein REPORTER_ASSERT(r, nullptr == SkToSRGBColorFilter::Make(SkColorSpace::MakeSRGB())); 17c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein 18c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein // The transfer function matters just as much as the gamut. 19c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein REPORTER_ASSERT(r, nullptr != SkToSRGBColorFilter::Make(SkColorSpace::MakeSRGBLinear())); 20c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein 21c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein // We generally interpret nullptr source spaces as sRGB. See also chromium:787718. 22c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein REPORTER_ASSERT(r, nullptr == SkToSRGBColorFilter::Make(nullptr)); 23c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein 24c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein // Here's a realistic conversion. 25c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein auto dci_p3 = SkColorSpace::MakeRGB(SkColorSpace::kLinear_RenderTargetGamma, 26c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein SkColorSpace::kDCIP3_D65_Gamut); 27c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein REPORTER_ASSERT(r, nullptr != SkToSRGBColorFilter::Make(dci_p3)); 28c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein 29c9bc81434adc0c0ea6012167fbda0e131548e683Mike Klein} 30