1 2 /* 3 * Copyright 2011 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 #include "NullGLTestContext.h" 10 #include "gl/GrGLTestInterface.h" 11 #include "gl/GrGLDefines.h" 12 #include "gl/GrGLInterface.h" 13 #include "gl/GrGLTypes.h" 14 #include "SkMutex.h" 15 #include "SkTDArray.h" 16 17 namespace { 18 class NullGLContext : public sk_gpu_test::GLTestContext { 19 public: 20 NullGLContext(bool enableNVPR) { this->init(GrGLCreateNullInterface(enableNVPR)); } 21 ~NullGLContext() override { this->teardown(); } 22 23 private: 24 void onPlatformMakeCurrent() const override {} 25 void onPlatformSwapBuffers() const override {} 26 GrGLFuncPtr onPlatformGetProcAddress(const char*) const override { return nullptr; } 27 }; 28 29 } // anonymous namespace 30 31 namespace sk_gpu_test { 32 GLTestContext* CreateNullGLTestContext(bool enableNVPR, GLTestContext* shareContext) { 33 if (shareContext) { 34 return nullptr; 35 } 36 GLTestContext* ctx = new NullGLContext(enableNVPR); 37 if (ctx->isValid()) { 38 return ctx; 39 } 40 delete ctx; 41 return nullptr; 42 } 43 } // namespace sk_gpu_test 44 45