| 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
 | 
| 
 |