aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xtests/GLInterfaceValidation.cpp86
1 files changed, 16 insertions, 70 deletions
diff --git a/tests/GLInterfaceValidation.cpp b/tests/GLInterfaceValidation.cpp
index 966383f2a6..a4709ba104 100755
--- a/tests/GLInterfaceValidation.cpp
+++ b/tests/GLInterfaceValidation.cpp
@@ -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
-
-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()) {
+#include "GrContextFactory.h"
+
+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 @@ static void GLInterfaceValidationTest(skiatest::Reporter* reporter) {
#include "TestClassDef.h"
-DEFINE_TESTCLASS("GLInterfaceValidation",
- GLInterfaceValidationTestClass,
- GLInterfaceValidationTest)
+DEFINE_GPUTESTCLASS("GLInterfaceValidation",
+ GLInterfaceValidationTestClass,
+ GLInterfaceValidationTest)
#endif