Index: tests/GLInterfaceValidation.cpp |
=================================================================== |
--- tests/GLInterfaceValidation.cpp (revision 8049) |
+++ tests/GLInterfaceValidation.cpp (working copy) |
@@ -12,76 +12,22 @@ |
// This is a GPU-backend specific test |
#if SK_SUPPORT_GPU |
-#if SK_ANGLE |
-#include "gl/SkANGLEGLContext.h" |
-#endif |
-#include "gl/SkNativeGLContext.h" |
-#if SK_MESA |
-#include "gl/SkMesaGLContext.h" |
-#endif |
+#include "GrContextFactory.h" |
-static void GLInterfaceValidationTest(skiatest::Reporter* reporter) { |
- typedef const GrGLInterface* (*interfaceFactory)(); |
- struct { |
- interfaceFactory fFactory; |
- const char* fName; |
- } interfaceFactories[] = { |
-#if SK_ANGLE |
- {GrGLCreateANGLEInterface, "ANGLE"}, |
-#endif |
- {GrGLCreateNativeInterface, "Native"}, |
-#if SK_MESA |
- {GrGLCreateMesaInterface, "Mesa"}, |
-#endif |
- {GrGLCreateDebugInterface, "Debug"}, |
- {GrGLCreateNullInterface, "Null"}, |
- }; |
- |
- static const int kBogusSize = 16; |
- |
-#if SK_ANGLE |
- SkANGLEGLContext::AutoContextRestore angleACR; |
- SkANGLEGLContext angleContext; |
- bool angleContextInit = angleContext.init(kBogusSize, kBogusSize); |
- REPORTER_ASSERT(reporter, angleContextInit); |
- if (!angleContextInit) { |
- return; |
- } |
-#endif |
- |
- // On some platforms GrGLCreateNativeInterface will fail unless an OpenGL |
- // context has been created. Also, preserve the current context that may |
- // be in use by outer test harness. |
- SkNativeGLContext::AutoContextRestore nglACR; |
- SkNativeGLContext nglctx; |
- bool nativeContextInit = nglctx.init(kBogusSize, kBogusSize); |
- REPORTER_ASSERT(reporter, nativeContextInit); |
- if (!nativeContextInit) { |
- return; |
- } |
- |
-#if SK_MESA |
- // We must have a current OSMesa context to initialize an OSMesa |
- // GrGLInterface |
- SkMesaGLContext::AutoContextRestore mglACR; |
- SkMesaGLContext mglctx; |
- bool mesaContextInit = mglctx.init(kBogusSize, kBogusSize); |
- REPORTER_ASSERT(reporter, mesaContextInit); |
- if(!mesaContextInit) { |
- return; |
- } |
-#endif |
- |
- SkAutoTUnref<const GrGLInterface> iface; |
- for (size_t i = 0; i < SK_ARRAY_COUNT(interfaceFactories); ++i) { |
- iface.reset(interfaceFactories[i].fFactory()); |
- REPORTER_ASSERT(reporter, NULL != iface.get()); |
- if (iface.get()) { |
+static void GLInterfaceValidationTest(skiatest::Reporter* reporter, GrContextFactory* factory) { |
+ for (int i = 0; i <= GrContextFactory::kLastGLContextType; ++i) { |
+ GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType)i; |
+ // this forces the factory to make the context if it hasn't yet |
+ factory->get(glCtxType); |
+ SkGLContextHelper* glCtxHelper = factory->getGLContext(glCtxType); |
+ REPORTER_ASSERT(reporter, NULL != glCtxHelper); |
+ if (NULL != glCtxHelper) { |
+ const GrGLInterface* interface = glCtxHelper->gl(); |
for (GrGLBinding binding = kFirstGrGLBinding; |
binding <= kLastGrGLBinding; |
binding = static_cast<GrGLBinding>(binding << 1)) { |
- if (iface.get()->fBindingsExported & binding) { |
- REPORTER_ASSERT(reporter, iface.get()->validate(binding)); |
+ if (interface->fBindingsExported & binding) { |
+ REPORTER_ASSERT(reporter, interface->validate(binding)); |
} |
} |
} |
@@ -90,8 +36,8 @@ |
#include "TestClassDef.h" |
-DEFINE_TESTCLASS("GLInterfaceValidation", |
- GLInterfaceValidationTestClass, |
- GLInterfaceValidationTest) |
+DEFINE_GPUTESTCLASS("GLInterfaceValidation", |
+ GLInterfaceValidationTestClass, |
+ GLInterfaceValidationTest) |
#endif |