From d02e8803e910b762e47a955162292c8b5eee15dc Mon Sep 17 00:00:00 2001 From: "bsalomon@google.com" Date: Wed, 3 Apr 2013 19:49:13 +0000 Subject: Remove GrTexture::releaseRenderTarget() and add GrSurface::isSameAs(). Review URL: https://codereview.chromium.org/13414006 git-svn-id: http://skia.googlecode.com/svn/trunk@8525 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tests/GrSurfaceTest.cpp | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tests/GrSurfaceTest.cpp (limited to 'tests/GrSurfaceTest.cpp') diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp new file mode 100644 index 0000000000..3fe071ca0f --- /dev/null +++ b/tests/GrSurfaceTest.cpp @@ -0,0 +1,68 @@ + +/* + * Copyright 2013 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +// This is a GPU-backend specific test. + +#include "SkTypes.h" + +#if SK_SUPPORT_GPU + +#include "Test.h" +#include "GrContext.h" +#include "GrContextFactory.h" +#include "GrRenderTarget.h" +#include "GrTexture.h" + +static void GrSurfaceIsSameTest(skiatest::Reporter* reporter, GrContextFactory* factory) { + GrContext* context = factory->get(GrContextFactory::kNull_GLContextType); + if (NULL != context) { + GrTextureDesc desc; + desc.fConfig = kSkia8888_GrPixelConfig; + desc.fFlags = kRenderTarget_GrTextureFlagBit; + desc.fWidth = 256; + desc.fHeight = 256; + desc.fSampleCnt = 0; + GrSurface* texRT1 = context->createUncachedTexture(desc, NULL, 0); + GrSurface* texRT2 = context->createUncachedTexture(desc, NULL, 0); + desc.fFlags = kNone_GrTextureFlags; + GrSurface* tex1 = context->createUncachedTexture(desc, NULL, 0); + + REPORTER_ASSERT(reporter, texRT1->isSameAs(texRT1)); + REPORTER_ASSERT(reporter, texRT1->isSameAs(texRT1->asRenderTarget())); + REPORTER_ASSERT(reporter, texRT1->asRenderTarget()->isSameAs(texRT1)); + REPORTER_ASSERT(reporter, !texRT2->isSameAs(texRT1)); + REPORTER_ASSERT(reporter, !texRT2->asRenderTarget()->isSameAs(texRT1)); + REPORTER_ASSERT(reporter, !texRT2->isSameAs(texRT1->asRenderTarget())); + REPORTER_ASSERT(reporter, !texRT2->isSameAs(tex1)); + REPORTER_ASSERT(reporter, !texRT2->asRenderTarget()->isSameAs(tex1)); + + GrBackendTextureDesc backendDesc; + backendDesc.fConfig = kSkia8888_GrPixelConfig; + backendDesc.fFlags = kRenderTarget_GrBackendTextureFlag; + backendDesc.fWidth = 256; + backendDesc.fHeight = 256; + backendDesc.fSampleCnt = 0; + backendDesc.fTextureHandle = 5; + GrSurface* externalTexRT = context->wrapBackendTexture(backendDesc); + REPORTER_ASSERT(reporter, externalTexRT->isSameAs(externalTexRT)); + REPORTER_ASSERT(reporter, externalTexRT->isSameAs(externalTexRT->asRenderTarget())); + REPORTER_ASSERT(reporter, externalTexRT->asRenderTarget()->isSameAs(externalTexRT)); + REPORTER_ASSERT(reporter, !externalTexRT->isSameAs(texRT1)); + REPORTER_ASSERT(reporter, !externalTexRT->asRenderTarget()->isSameAs(texRT1)); + + texRT1->unref(); + texRT2->unref(); + tex1->unref(); + externalTexRT->unref(); + } +} + +#include "TestClassDef.h" +DEFINE_GPUTESTCLASS("GrSurfaceIsSame", GrSurfaceIsSameTestClass, GrSurfaceIsSameTest) + +#endif -- cgit v1.2.3