diff options
author | piotaixr <piotaixr@chromium.org> | 2014-08-19 14:29:02 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-08-19 14:29:02 -0700 |
commit | d2a3522503ca0c39829f1bb41f01201d1affdaf6 (patch) | |
tree | 679b036538b2440e560b74105d19adcf7ace7b02 /tests | |
parent | 1d89ddc4a3aad153501cfdc93bc1d61eb49157f4 (diff) |
Add the method isOpaque() to SkImage
BUG=skia:2766
R=junov@chromium.org, halcanary@google.com, scroggo@google.com, reed@google.com, bsalomon@google.com
Author: piotaixr@chromium.org
Review URL: https://codereview.chromium.org/406673003
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ImageIsOpaqueTest.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/ImageIsOpaqueTest.cpp b/tests/ImageIsOpaqueTest.cpp new file mode 100644 index 0000000000..902e24d827 --- /dev/null +++ b/tests/ImageIsOpaqueTest.cpp @@ -0,0 +1,54 @@ +/* + * Copyright 2014 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkTypes.h" +#if SK_SUPPORT_GPU +#include "GrContextFactory.h" +#endif +#include "SkImage.h" +#include "SkSurface.h" + +#include "Test.h" + +DEF_TEST(ImageIsOpaqueTest, reporter) { + SkImageInfo infoTransparent = SkImageInfo::MakeN32Premul(5, 5); + SkAutoTUnref<SkSurface> surfaceTransparent(SkSurface::NewRaster(infoTransparent)); + REPORTER_ASSERT(reporter, !surfaceTransparent->newImageSnapshot()->isOpaque()); + + SkImageInfo infoOpaque = SkImageInfo::MakeN32(5, 5, kOpaque_SkAlphaType); + SkAutoTUnref<SkSurface> surfaceOpaque(SkSurface::NewRaster(infoOpaque)); + REPORTER_ASSERT(reporter, surfaceOpaque->newImageSnapshot()->isOpaque()); +} + +#if SK_SUPPORT_GPU + +DEF_GPUTEST(ImageIsOpaqueTest_GPU, reporter, factory) { + for (int i = 0; i < GrContextFactory::kGLContextTypeCnt; ++i) { + GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType) i; + + if (!GrContextFactory::IsRenderingGLContext(glCtxType)) { + continue; + } + + GrContext* context = factory->get(glCtxType); + + if (NULL == context) { + continue; + } + + SkImageInfo infoTransparent = SkImageInfo::MakeN32Premul(5, 5); + SkAutoTUnref<SkSurface> surfaceTransparent(SkSurface::NewRenderTarget(context, infoTransparent)); + REPORTER_ASSERT(reporter, !surfaceTransparent->newImageSnapshot()->isOpaque()); + + SkImageInfo infoOpaque = SkImageInfo::MakeN32(5, 5, kOpaque_SkAlphaType); + SkAutoTUnref<SkSurface> surfaceOpaque(SkSurface::NewRenderTarget(context, infoOpaque)); + REPORTER_ASSERT(reporter, !surfaceOpaque->newImageSnapshot()->isOpaque()); + + } +} + +#endif |