• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
NullGLContext(bool enableNVPR)20     NullGLContext(bool enableNVPR) {
21         this->init(sk_sp<const GrGLInterface>(GrGLCreateNullInterface(enableNVPR)));
22     }
~NullGLContext()23     ~NullGLContext() override { this->teardown(); }
24 
25 private:
onPlatformMakeCurrent() const26     void onPlatformMakeCurrent() const override {}
onPlatformGetAutoContextRestore() const27     std::function<void()> onPlatformGetAutoContextRestore() const override { return nullptr; }
onPlatformSwapBuffers() const28     void onPlatformSwapBuffers() const override {}
onPlatformGetProcAddress(const char *) const29     GrGLFuncPtr onPlatformGetProcAddress(const char*) const override { return nullptr; }
30 };
31 
32 }  // anonymous namespace
33 
34 namespace sk_gpu_test {
CreateNullGLTestContext(bool enableNVPR,GLTestContext * shareContext)35 GLTestContext* 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