| OLD | NEW |
| 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 // TODO(awalker): clean up the const/non-const reference handling in this test | 5 // TODO(awalker): clean up the const/non-const reference handling in this test |
| 6 | 6 |
| 7 #include "skia/ext/platform_canvas.h" | 7 #include "skia/ext/platform_canvas.h" |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 390 #endif | 390 #endif |
| 391 } | 391 } |
| 392 canvas->restore(); | 392 canvas->restore(); |
| 393 EXPECT_TRUE(VerifyRoundedRect(*canvas, SK_ColorWHITE, SK_ColorBLACK, | 393 EXPECT_TRUE(VerifyRoundedRect(*canvas, SK_ColorWHITE, SK_ColorBLACK, |
| 394 kInnerX + 1, kInnerY + 1, kInnerW, kInnerH)); | 394 kInnerX + 1, kInnerY + 1, kInnerW, kInnerH)); |
| 395 #endif | 395 #endif |
| 396 } | 396 } |
| 397 | 397 |
| 398 #endif // #if !defined(USE_AURA) | 398 #endif // #if !defined(USE_AURA) |
| 399 | 399 |
| 400 TEST(PlatformBitmapTest, PlatformBitmap) { | |
| 401 const int kWidth = 400; | |
| 402 const int kHeight = 300; | |
| 403 scoped_ptr<PlatformBitmap> platform_bitmap(new PlatformBitmap); | |
| 404 | |
| 405 EXPECT_TRUE(0 == platform_bitmap->GetSurface()); | |
| 406 EXPECT_TRUE(platform_bitmap->GetBitmap().empty()); | |
| 407 EXPECT_TRUE(platform_bitmap->GetBitmap().isNull()); | |
| 408 | |
| 409 EXPECT_TRUE(platform_bitmap->Allocate(kWidth, kHeight, /*is_opaque=*/false)); | |
| 410 | |
| 411 EXPECT_TRUE(0 != platform_bitmap->GetSurface()); | |
| 412 EXPECT_FALSE(platform_bitmap->GetBitmap().empty()); | |
| 413 EXPECT_FALSE(platform_bitmap->GetBitmap().isNull()); | |
| 414 EXPECT_EQ(kWidth, platform_bitmap->GetBitmap().width()); | |
| 415 EXPECT_EQ(kHeight, platform_bitmap->GetBitmap().height()); | |
| 416 EXPECT_LE(static_cast<size_t>(platform_bitmap->GetBitmap().width()*4), | |
| 417 platform_bitmap->GetBitmap().rowBytes()); | |
| 418 EXPECT_EQ(kN32_SkColorType, // Same for all platforms. | |
| 419 platform_bitmap->GetBitmap().colorType()); | |
| 420 EXPECT_TRUE(platform_bitmap->GetBitmap().lockPixelsAreWritable()); | |
| 421 #if defined(SK_DEBUG) | |
| 422 EXPECT_TRUE(platform_bitmap->GetBitmap().pixelRef()->isLocked()); | |
| 423 #endif | |
| 424 EXPECT_TRUE(platform_bitmap->GetBitmap().pixelRef()->unique()); | |
| 425 | |
| 426 *(platform_bitmap->GetBitmap().getAddr32(10, 20)) = 0xDEED1020; | |
| 427 *(platform_bitmap->GetBitmap().getAddr32(20, 30)) = 0xDEED2030; | |
| 428 | |
| 429 SkBitmap sk_bitmap = platform_bitmap->GetBitmap(); | |
| 430 sk_bitmap.lockPixels(); | |
| 431 | |
| 432 EXPECT_FALSE(platform_bitmap->GetBitmap().pixelRef()->unique()); | |
| 433 EXPECT_FALSE(sk_bitmap.pixelRef()->unique()); | |
| 434 | |
| 435 EXPECT_EQ(0xDEED1020, *sk_bitmap.getAddr32(10, 20)); | |
| 436 EXPECT_EQ(0xDEED2030, *sk_bitmap.getAddr32(20, 30)); | |
| 437 | |
| 438 *(platform_bitmap->GetBitmap().getAddr32(30, 40)) = 0xDEED3040; | |
| 439 | |
| 440 // The SkBitmaps derived from a PlatformBitmap must be capable of outliving | |
| 441 // the PlatformBitmap. | |
| 442 platform_bitmap.reset(); | |
| 443 | |
| 444 EXPECT_TRUE(sk_bitmap.pixelRef()->unique()); | |
| 445 | |
| 446 EXPECT_EQ(0xDEED1020, *sk_bitmap.getAddr32(10, 20)); | |
| 447 EXPECT_EQ(0xDEED2030, *sk_bitmap.getAddr32(20, 30)); | |
| 448 EXPECT_EQ(0xDEED3040, *sk_bitmap.getAddr32(30, 40)); | |
| 449 sk_bitmap.unlockPixels(); | |
| 450 | |
| 451 EXPECT_EQ(NULL, sk_bitmap.getPixels()); | |
| 452 | |
| 453 sk_bitmap.lockPixels(); | |
| 454 EXPECT_EQ(0xDEED1020, *sk_bitmap.getAddr32(10, 20)); | |
| 455 EXPECT_EQ(0xDEED2030, *sk_bitmap.getAddr32(20, 30)); | |
| 456 EXPECT_EQ(0xDEED3040, *sk_bitmap.getAddr32(30, 40)); | |
| 457 sk_bitmap.unlockPixels(); | |
| 458 } | |
| 459 | |
| 460 | |
| 461 } // namespace skia | 400 } // namespace skia |
| OLD | NEW |