Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(827)

Side by Side Diff: ui/gfx/color_space.cc

Issue 2755953005: color: Use SkColorSpaceXform instead of QCMS for LUTs (Closed)
Patch Set: Rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/gfx/DEPS ('k') | ui/gfx/color_transform.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/gfx/color_space.h" 5 #include "ui/gfx/color_space.h"
6 6
7 #include <map> 7 #include <map>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 return SkColorSpace::MakeSRGB(); 400 return SkColorSpace::MakeSRGB();
401 if (transfer_ == TransferID::LINEAR || transfer_ == TransferID::LINEAR_HDR) 401 if (transfer_ == TransferID::LINEAR || transfer_ == TransferID::LINEAR_HDR)
402 return SkColorSpace::MakeSRGBLinear(); 402 return SkColorSpace::MakeSRGBLinear();
403 } 403 }
404 404
405 SkMatrix44 to_xyz_d50; 405 SkMatrix44 to_xyz_d50;
406 GetPrimaryMatrix(&to_xyz_d50); 406 GetPrimaryMatrix(&to_xyz_d50);
407 407
408 // Use the named sRGB and linear transfer functions. 408 // Use the named sRGB and linear transfer functions.
409 if (transfer_ == TransferID::IEC61966_2_1) { 409 if (transfer_ == TransferID::IEC61966_2_1) {
410 return SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma,
411 to_xyz_d50);
412 }
413 if (transfer_ == TransferID::LINEAR || transfer_ == TransferID::LINEAR_HDR) {
410 return SkColorSpace::MakeRGB(SkColorSpace::kLinear_RenderTargetGamma, 414 return SkColorSpace::MakeRGB(SkColorSpace::kLinear_RenderTargetGamma,
411 to_xyz_d50); 415 to_xyz_d50);
412 } 416 }
413 if (transfer_ == TransferID::LINEAR || transfer_ == TransferID::LINEAR_HDR) {
414 return SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma,
415 to_xyz_d50);
416 }
417 417
418 // Use the parametric transfer function if no other option is available. 418 // Use the parametric transfer function if no other option is available.
419 SkColorSpaceTransferFn fn; 419 SkColorSpaceTransferFn fn;
420 if (!GetTransferFunction(&fn)) { 420 if (!GetTransferFunction(&fn)) {
421 DLOG(ERROR) << "Failed to parameterize transfer function for SkColorSpace"; 421 DLOG(ERROR) << "Failed to parameterize transfer function for SkColorSpace";
422 return nullptr; 422 return nullptr;
423 } 423 }
424 return SkColorSpace::MakeRGB(fn, to_xyz_d50); 424 return SkColorSpace::MakeRGB(fn, to_xyz_d50);
425 } 425 }
426 426
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 matrix->postTranslate(-16.0f/219.0f, -15.5f/224.0f, -15.5f/224.0f); 812 matrix->postTranslate(-16.0f/219.0f, -15.5f/224.0f, -15.5f/224.0f);
813 break; 813 break;
814 } 814 }
815 } 815 }
816 816
817 std::ostream& operator<<(std::ostream& out, const ColorSpace& color_space) { 817 std::ostream& operator<<(std::ostream& out, const ColorSpace& color_space) {
818 return out << color_space.ToString(); 818 return out << color_space.ToString();
819 } 819 }
820 820
821 } // namespace gfx 821 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/DEPS ('k') | ui/gfx/color_transform.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698