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