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

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

Issue 2271683004: Revert of Support for custom primaries (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 3 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/color_transform_fuzzer.cc ('k') | ui/gfx/icc_profile.h » ('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) 2016 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2016 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 "base/logging.h" 5 #include "base/logging.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 #include "ui/gfx/color_space.h" 7 #include "ui/gfx/color_space.h"
8 #include "ui/gfx/color_transform.h" 8 #include "ui/gfx/color_transform.h"
9 #include "ui/gfx/icc_profile.h" 9 #include "ui/gfx/icc_profile.h"
10 #include "ui/gfx/transform.h" 10 #include "ui/gfx/transform.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 ColorSpace::MatrixID::YDZDX, 52 ColorSpace::MatrixID::YDZDX,
53 }; 53 };
54 54
55 ColorSpace::RangeID all_ranges[] = {ColorSpace::RangeID::FULL, 55 ColorSpace::RangeID all_ranges[] = {ColorSpace::RangeID::FULL,
56 ColorSpace::RangeID::LIMITED}; 56 ColorSpace::RangeID::LIMITED};
57 57
58 TEST(SimpleColorSpace, BT709toSRGB) { 58 TEST(SimpleColorSpace, BT709toSRGB) {
59 ColorSpace bt709 = ColorSpace::CreateREC709(); 59 ColorSpace bt709 = ColorSpace::CreateREC709();
60 ColorSpace sRGB = ColorSpace::CreateSRGB(); 60 ColorSpace sRGB = ColorSpace::CreateSRGB();
61 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform( 61 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform(
62 bt709, sRGB, ColorTransform::Intent::INTENT_ABSOLUTE)); 62 bt709, sRGB, ColorTransform::Intent::ABSOLUTE));
63 63
64 ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f); 64 ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f);
65 t->transform(&tmp, 1); 65 t->transform(&tmp, 1);
66 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f); 66 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f);
67 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f); 67 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f);
68 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f); 68 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f);
69 69
70 tmp = ColorTransform::TriStim(235.0f / 255.0f, 0.5f, 0.5f); 70 tmp = ColorTransform::TriStim(235.0f / 255.0f, 0.5f, 0.5f);
71 t->transform(&tmp, 1); 71 t->transform(&tmp, 1);
72 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f); 72 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f);
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 0x00, 0x00, 0x07, 0x94, 0x00, 0x00, 0xfd, 0x8f, 0xff, 0xff, 0xfb, 0xa1, 336 0x00, 0x00, 0x07, 0x94, 0x00, 0x00, 0xfd, 0x8f, 0xff, 0xff, 0xfb, 0xa1,
337 0xff, 0xff, 0xfd, 0xa2, 0x00, 0x00, 0x03, 0xdb, 0x00, 0x00, 0xc0, 0x75}; 337 0xff, 0xff, 0xfd, 0xa2, 0x00, 0x00, 0x03, 0xdb, 0x00, 0x00, 0xc0, 0x75};
338 338
339 TEST(SimpleColorSpace, BT709toSRGBICC) { 339 TEST(SimpleColorSpace, BT709toSRGBICC) {
340 ICCProfile srgb_icc = ICCProfile::FromData( 340 ICCProfile srgb_icc = ICCProfile::FromData(
341 reinterpret_cast<char*>(srgb_icc_data), arraysize(srgb_icc_data)); 341 reinterpret_cast<char*>(srgb_icc_data), arraysize(srgb_icc_data));
342 342
343 ColorSpace bt709 = ColorSpace::CreateREC709(); 343 ColorSpace bt709 = ColorSpace::CreateREC709();
344 ColorSpace sRGB = srgb_icc.GetColorSpace(); 344 ColorSpace sRGB = srgb_icc.GetColorSpace();
345 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform( 345 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform(
346 bt709, sRGB, ColorTransform::Intent::INTENT_ABSOLUTE)); 346 bt709, sRGB, ColorTransform::Intent::ABSOLUTE));
347 347
348 ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f); 348 ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f);
349 t->transform(&tmp, 1); 349 t->transform(&tmp, 1);
350 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f); 350 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f);
351 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f); 351 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f);
352 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f); 352 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f);
353 353
354 tmp = ColorTransform::TriStim(235.0f / 255.0f, 0.5f, 0.5f); 354 tmp = ColorTransform::TriStim(235.0f / 255.0f, 0.5f, 0.5f);
355 t->transform(&tmp, 1); 355 t->transform(&tmp, 1);
356 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f); 356 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f);
357 EXPECT_NEAR(tmp.y(), 1.0f, 0.001f); 357 EXPECT_NEAR(tmp.y(), 1.0f, 0.001f);
358 EXPECT_NEAR(tmp.z(), 1.0f, 0.001f); 358 EXPECT_NEAR(tmp.z(), 1.0f, 0.001f);
359 359
360 // Test a blue color 360 // Test a blue color
361 tmp = ColorTransform::TriStim(128.0f / 255.0f, 240.0f / 255.0f, 0.5f); 361 tmp = ColorTransform::TriStim(128.0f / 255.0f, 240.0f / 255.0f, 0.5f);
362 t->transform(&tmp, 1); 362 t->transform(&tmp, 1);
363 EXPECT_GT(tmp.z(), tmp.x()); 363 EXPECT_GT(tmp.z(), tmp.x());
364 EXPECT_GT(tmp.z(), tmp.y()); 364 EXPECT_GT(tmp.z(), tmp.y());
365 } 365 }
366 366
367 TEST(SimpleColorSpace, GetColorSpace) {
368 ICCProfile srgb_icc = ICCProfile::FromData(
369 reinterpret_cast<char*>(srgb_icc_data), arraysize(srgb_icc_data));
370 ColorSpace sRGB = srgb_icc.GetColorSpace();
371 ColorSpace sRGB2 = sRGB;
372
373 // Prevent sRGB2 from using a cached ICC profile.
374 sRGB2.icc_profile_id_ = 0;
375
376 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform(
377 sRGB, sRGB2, ColorTransform::Intent::INTENT_ABSOLUTE));
378
379 ColorTransform::TriStim tmp(1.0f, 1.0f, 1.0f);
380 t->transform(&tmp, 1);
381 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f);
382 EXPECT_NEAR(tmp.y(), 1.0f, 0.001f);
383 EXPECT_NEAR(tmp.z(), 1.0f, 0.001f);
384
385 tmp = ColorTransform::TriStim(1.0f, 0.0f, 0.0f);
386 t->transform(&tmp, 1);
387 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f);
388 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f);
389 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f);
390
391 tmp = ColorTransform::TriStim(0.0f, 1.0f, 0.0f);
392 t->transform(&tmp, 1);
393 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f);
394 EXPECT_NEAR(tmp.y(), 1.0f, 0.001f);
395 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f);
396
397 tmp = ColorTransform::TriStim(0.0f, 0.0f, 1.0f);
398 t->transform(&tmp, 1);
399 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f);
400 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f);
401 EXPECT_NEAR(tmp.z(), 1.0f, 0.001f);
402 }
403
404 TEST(SimpleColorSpace, UnknownToSRGB) { 367 TEST(SimpleColorSpace, UnknownToSRGB) {
405 ColorSpace unknown; 368 ColorSpace unknown;
406 ColorSpace sRGB = ColorSpace::CreateSRGB(); 369 ColorSpace sRGB = ColorSpace::CreateSRGB();
407 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform( 370 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform(
408 unknown, sRGB, ColorTransform::Intent::INTENT_PERCEPTUAL)); 371 unknown, sRGB, ColorTransform::Intent::PERCEPTUAL));
409 372
410 ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f); 373 ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f);
411 t->transform(&tmp, 1); 374 t->transform(&tmp, 1);
412 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f); 375 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f);
413 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f); 376 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f);
414 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f); 377 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f);
415 378
416 tmp = ColorTransform::TriStim(235.0f / 255.0f, 0.5f, 0.5f); 379 tmp = ColorTransform::TriStim(235.0f / 255.0f, 0.5f, 0.5f);
417 t->transform(&tmp, 1); 380 t->transform(&tmp, 1);
418 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f); 381 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 std::tr1::get<1>(GetParam()), 440 std::tr1::get<1>(GetParam()),
478 std::tr1::get<2>(GetParam()), 441 std::tr1::get<2>(GetParam()),
479 std::tr1::get<3>(GetParam())) {} 442 std::tr1::get<3>(GetParam())) {}
480 443
481 protected: 444 protected:
482 ColorSpace color_space_; 445 ColorSpace color_space_;
483 }; 446 };
484 447
485 TEST_P(ColorSpaceTest, testNullTransform) { 448 TEST_P(ColorSpaceTest, testNullTransform) {
486 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform( 449 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform(
487 color_space_, color_space_, ColorTransform::Intent::INTENT_ABSOLUTE)); 450 color_space_, color_space_, ColorTransform::Intent::ABSOLUTE));
488 ColorTransform::TriStim tristim(0.4f, 0.5f, 0.6f); 451 ColorTransform::TriStim tristim(0.4f, 0.5f, 0.6f);
489 t->transform(&tristim, 1); 452 t->transform(&tristim, 1);
490 EXPECT_NEAR(tristim.x(), 0.4f, 0.001f); 453 EXPECT_NEAR(tristim.x(), 0.4f, 0.001f);
491 EXPECT_NEAR(tristim.y(), 0.5f, 0.001f); 454 EXPECT_NEAR(tristim.y(), 0.5f, 0.001f);
492 EXPECT_NEAR(tristim.z(), 0.6f, 0.001f); 455 EXPECT_NEAR(tristim.z(), 0.6f, 0.001f);
493 } 456 }
494 457
495 TEST_P(ColorSpaceTest, toXYZandBack) { 458 TEST_P(ColorSpaceTest, toXYZandBack) {
496 std::unique_ptr<ColorTransform> t1(ColorTransform::NewColorTransform( 459 std::unique_ptr<ColorTransform> t1(ColorTransform::NewColorTransform(
497 color_space_, ColorSpace::CreateXYZD50(), 460 color_space_, ColorSpace::CreateXYZD50(),
498 ColorTransform::Intent::INTENT_ABSOLUTE)); 461 ColorTransform::Intent::ABSOLUTE));
499 std::unique_ptr<ColorTransform> t2(ColorTransform::NewColorTransform( 462 std::unique_ptr<ColorTransform> t2(ColorTransform::NewColorTransform(
500 ColorSpace::CreateXYZD50(), color_space_, 463 ColorSpace::CreateXYZD50(), color_space_,
501 ColorTransform::Intent::INTENT_ABSOLUTE)); 464 ColorTransform::Intent::ABSOLUTE));
502 ColorTransform::TriStim tristim(0.4f, 0.5f, 0.6f); 465 ColorTransform::TriStim tristim(0.4f, 0.5f, 0.6f);
503 t1->transform(&tristim, 1); 466 t1->transform(&tristim, 1);
504 t2->transform(&tristim, 1); 467 t2->transform(&tristim, 1);
505 EXPECT_NEAR(tristim.x(), 0.4f, 0.001f); 468 EXPECT_NEAR(tristim.x(), 0.4f, 0.001f);
506 EXPECT_NEAR(tristim.y(), 0.5f, 0.001f); 469 EXPECT_NEAR(tristim.y(), 0.5f, 0.001f);
507 EXPECT_NEAR(tristim.z(), 0.6f, 0.001f); 470 EXPECT_NEAR(tristim.z(), 0.6f, 0.001f);
508 } 471 }
509 472
510 INSTANTIATE_TEST_CASE_P( 473 INSTANTIATE_TEST_CASE_P(
511 A, 474 A,
(...skipping 12 matching lines...) Expand all
524 testing::ValuesIn(all_ranges))); 487 testing::ValuesIn(all_ranges)));
525 488
526 INSTANTIATE_TEST_CASE_P( 489 INSTANTIATE_TEST_CASE_P(
527 C, 490 C,
528 ColorSpaceTest, 491 ColorSpaceTest,
529 testing::Combine(testing::ValuesIn(all_primaries), 492 testing::Combine(testing::ValuesIn(all_primaries),
530 testing::Values(ColorSpace::TransferID::BT709), 493 testing::Values(ColorSpace::TransferID::BT709),
531 testing::ValuesIn(all_matrices), 494 testing::ValuesIn(all_matrices),
532 testing::ValuesIn(all_ranges))); 495 testing::ValuesIn(all_ranges)));
533 } // namespace 496 } // namespace
OLDNEW
« no previous file with comments | « ui/gfx/color_transform_fuzzer.cc ('k') | ui/gfx/icc_profile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698