diff options
author | halcanary <halcanary@google.com> | 2016-03-24 09:18:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-24 09:18:14 -0700 |
commit | 8d3ad5a1223551927a34f72b35f9dbf5c1f5bc93 (patch) | |
tree | efe547f16b283246cf15ca940620e876836755fb /tests/image-bitmap.cpp | |
parent | d98120e44703814c29fc76c732a2db8faae9774b (diff) |
images with offset bitmap don't share genid
BUG=skia:5096
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813793002
Review URL: https://codereview.chromium.org/1813793002
Diffstat (limited to 'tests/image-bitmap.cpp')
-rw-r--r-- | tests/image-bitmap.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/image-bitmap.cpp b/tests/image-bitmap.cpp new file mode 100644 index 0000000000..59ab3f72be --- /dev/null +++ b/tests/image-bitmap.cpp @@ -0,0 +1,34 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "Test.h" + +#include "SkBitmap.h" +#include "SkImage.h" + +// https://bug.skia.org/5096 +// Test that when we make an image from a subset of a bitmap, that it +// has a diff (ID, dimensions) from an image made from the entire +// bitmap or a different subset of the image. +DEF_TEST(ImageBitmapIdentity, r) { + SkBitmap bm, a, b; + bm.allocN32Pixels(32, 64); + bm.eraseColor(SK_ColorBLACK); + bm.setImmutable(); + (void)bm.extractSubset(&a, SkIRect::MakeXYWH(0, 0, 32, 32)); + (void)bm.extractSubset(&b, SkIRect::MakeXYWH(0, 32, 32, 32)); + REPORTER_ASSERT(r, a.getGenerationID() == b.getGenerationID()); + auto img = SkImage::MakeFromBitmap(bm); + auto imgA = SkImage::MakeFromBitmap(a); + auto imgB = SkImage::MakeFromBitmap(b); + REPORTER_ASSERT(r, img->uniqueID() == bm.getGenerationID()); + REPORTER_ASSERT(r, img->uniqueID() != imgA->uniqueID()); + REPORTER_ASSERT(r, img->uniqueID() != imgB->uniqueID()); + REPORTER_ASSERT(r, imgA->uniqueID() != imgB->uniqueID()); + REPORTER_ASSERT(r, imgA->uniqueID() != a.getGenerationID()); + REPORTER_ASSERT(r, imgB->uniqueID() != b.getGenerationID()); +} |