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) { this->init(GrGLCreateNullInterface(enableNVPR)); }
21   ~NullGLContext() override { this->teardown(); }
22
23private:
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
31namespace sk_gpu_test {
32GLTestContext* 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