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 17namespace { 18class NullGLContext : public sk_gpu_test::GLTestContext { 19public: 20 NullGLContext(bool enableNVPR) { 21 this->init(sk_sp<const GrGLInterface>(GrGLCreateNullInterface(enableNVPR))); 22 } 23 ~NullGLContext() override { this->teardown(); } 24 25private: 26 void onPlatformMakeCurrent() const override {} 27 std::function<void()> onPlatformGetAutoContextRestore() const override { return nullptr; } 28 void onPlatformSwapBuffers() const override {} 29 GrGLFuncPtr onPlatformGetProcAddress(const char*) const override { return nullptr; } 30}; 31 32} // anonymous namespace 33 34namespace sk_gpu_test { 35GLTestContext* CreateNullGLTestContext(bool enableNVPR, GLTestContext* shareContext) { 36 if (shareContext) { 37 return nullptr; 38 } 39 GLTestContext* ctx = new NullGLContext(enableNVPR); 40 if (ctx->isValid()) { 41 return ctx; 42 } 43 delete ctx; 44 return nullptr; 45} 46} // namespace sk_gpu_test 47 48