Index: tests/GrSurfaceTest.cpp |
=================================================================== |
--- tests/GrSurfaceTest.cpp (revision 0) |
+++ tests/GrSurfaceTest.cpp (revision 0) |
@@ -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 |