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

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

Issue 2355583002: stop using (deprecated) setClipRegion, add flag for new clipop type (Closed)
Patch Set: rename to DrawRectWithColor 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 | « skia/config/SkUserConfig.h ('k') | no next file » | 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/skbitmap_operations.h" 5 #include "ui/gfx/skbitmap_operations.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "third_party/skia/include/core/SkBitmap.h" 10 #include "third_party/skia/include/core/SkBitmap.h"
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 EXPECT_EQ(2, result.height()); 499 EXPECT_EQ(2, result.height());
500 500
501 SkAutoLockPixels lock(result); 501 SkAutoLockPixels lock(result);
502 for (int x = 0; x < input.width(); ++x) { 502 for (int x = 0; x < input.width(); ++x) {
503 for (int y = 0; y < input.height(); ++y) { 503 for (int y = 0; y < input.height(); ++y) {
504 EXPECT_EQ(*input.getAddr32(x, y), *result.getAddr32(y, x)); 504 EXPECT_EQ(*input.getAddr32(x, y), *result.getAddr32(y, x));
505 } 505 }
506 } 506 }
507 } 507 }
508 508
509 void DrawRectWithColor(SkCanvas* canvas,
510 int left,
511 int top,
512 int right,
513 int bottom,
514 SkColor color) {
515 SkPaint paint;
516 paint.setColor(color);
517 paint.setXfermodeMode(SkXfermode::kSrc_Mode);
518 canvas->drawRect(
519 SkRect::MakeLTRB(SkIntToScalar(left), SkIntToScalar(top),
520 SkIntToScalar(right), SkIntToScalar(bottom)),
521 paint);
522 }
523
509 // Check that Rotate provides the desired results 524 // Check that Rotate provides the desired results
510 TEST(SkBitmapOperationsTest, RotateImage) { 525 TEST(SkBitmapOperationsTest, RotateImage) {
511 const int src_w = 6, src_h = 4; 526 const int src_w = 6, src_h = 4;
512 SkBitmap src; 527 SkBitmap src;
513 // Create a simple 4 color bitmap: 528 // Create a simple 4 color bitmap:
514 // RRRBBB 529 // RRRBBB
515 // RRRBBB 530 // RRRBBB
516 // GGGYYY 531 // GGGYYY
517 // GGGYYY 532 // GGGYYY
518 src.allocN32Pixels(src_w, src_h); 533 src.allocN32Pixels(src_w, src_h);
519 534
520 SkCanvas canvas(src); 535 SkCanvas canvas(src);
521 src.eraseARGB(0, 0, 0, 0); 536 src.eraseARGB(0, 0, 0, 0);
522 SkRegion region;
523 537
524 region.setRect(0, 0, src_w / 2, src_h / 2);
525 canvas.setClipRegion(region);
526 // This region is a semi-transparent red to test non-opaque pixels. 538 // This region is a semi-transparent red to test non-opaque pixels.
527 canvas.drawColor(0x1FFF0000, SkXfermode::kSrc_Mode); 539 DrawRectWithColor(&canvas, 0, 0, src_w / 2, src_h / 2, 0x1FFF0000);
528 region.setRect(src_w / 2, 0, src_w, src_h / 2); 540 DrawRectWithColor(&canvas, src_w / 2, 0, src_w, src_h / 2, SK_ColorBLUE);
529 canvas.setClipRegion(region); 541 DrawRectWithColor(&canvas, 0, src_h / 2, src_w / 2, src_h, SK_ColorGREEN);
530 canvas.drawColor(SK_ColorBLUE, SkXfermode::kSrc_Mode); 542 DrawRectWithColor(&canvas, src_w / 2, src_h / 2, src_w, src_h,
531 region.setRect(0, src_h / 2, src_w / 2, src_h); 543 SK_ColorYELLOW);
532 canvas.setClipRegion(region);
533 canvas.drawColor(SK_ColorGREEN, SkXfermode::kSrc_Mode);
534 region.setRect(src_w / 2, src_h / 2, src_w, src_h);
535 canvas.setClipRegion(region);
536 canvas.drawColor(SK_ColorYELLOW, SkXfermode::kSrc_Mode);
537 canvas.flush();
538 544
539 SkBitmap rotate90, rotate180, rotate270; 545 SkBitmap rotate90, rotate180, rotate270;
540 rotate90 = SkBitmapOperations::Rotate(src, 546 rotate90 = SkBitmapOperations::Rotate(src,
541 SkBitmapOperations::ROTATION_90_CW); 547 SkBitmapOperations::ROTATION_90_CW);
542 rotate180 = SkBitmapOperations::Rotate(src, 548 rotate180 = SkBitmapOperations::Rotate(src,
543 SkBitmapOperations::ROTATION_180_CW); 549 SkBitmapOperations::ROTATION_180_CW);
544 rotate270 = SkBitmapOperations::Rotate(src, 550 rotate270 = SkBitmapOperations::Rotate(src,
545 SkBitmapOperations::ROTATION_270_CW); 551 SkBitmapOperations::ROTATION_270_CW);
546 552
547 ASSERT_EQ(rotate90.width(), src.height()); 553 ASSERT_EQ(rotate90.width(), src.height());
(...skipping 10 matching lines...) Expand all
558 564
559 for (int x=0; x < src_w; ++x) { 565 for (int x=0; x < src_w; ++x) {
560 for (int y=0; y < src_h; ++y) { 566 for (int y=0; y < src_h; ++y) {
561 ASSERT_EQ(*src.getAddr32(x,y), *rotate90.getAddr32(src_h - (y+1),x)); 567 ASSERT_EQ(*src.getAddr32(x,y), *rotate90.getAddr32(src_h - (y+1),x));
562 ASSERT_EQ(*src.getAddr32(x,y), *rotate270.getAddr32(y, src_w - (x+1))); 568 ASSERT_EQ(*src.getAddr32(x,y), *rotate270.getAddr32(y, src_w - (x+1)));
563 ASSERT_EQ(*src.getAddr32(x,y), 569 ASSERT_EQ(*src.getAddr32(x,y),
564 *rotate180.getAddr32(src_w - (x+1), src_h - (y+1))); 570 *rotate180.getAddr32(src_w - (x+1), src_h - (y+1)));
565 } 571 }
566 } 572 }
567 } 573 }
OLDNEW
« no previous file with comments | « skia/config/SkUserConfig.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698