13724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 23724e574a744491b7cfb8187ac865a70ef3d4528bsalomon/* 33724e574a744491b7cfb8187ac865a70ef3d4528bsalomon * Copyright 2011 Google Inc. 43724e574a744491b7cfb8187ac865a70ef3d4528bsalomon * 53724e574a744491b7cfb8187ac865a70ef3d4528bsalomon * Use of this source code is governed by a BSD-style license that can be 63724e574a744491b7cfb8187ac865a70ef3d4528bsalomon * found in the LICENSE file. 73724e574a744491b7cfb8187ac865a70ef3d4528bsalomon */ 83724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 9273c0f5e87397c40d22bb7e3ee078bb46a3f6860bsalomon#include "NullGLTestContext.h" 103724e574a744491b7cfb8187ac865a70ef3d4528bsalomon#include "gl/GrGLTestInterface.h" 113724e574a744491b7cfb8187ac865a70ef3d4528bsalomon#include "gl/GrGLDefines.h" 123724e574a744491b7cfb8187ac865a70ef3d4528bsalomon#include "gl/GrGLInterface.h" 133724e574a744491b7cfb8187ac865a70ef3d4528bsalomon#include "gl/GrGLTypes.h" 143724e574a744491b7cfb8187ac865a70ef3d4528bsalomon#include "SkMutex.h" 153724e574a744491b7cfb8187ac865a70ef3d4528bsalomon#include "SkTDArray.h" 163724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 173724e574a744491b7cfb8187ac865a70ef3d4528bsalomonnamespace { 18273c0f5e87397c40d22bb7e3ee078bb46a3f6860bsalomonclass NullGLContext : public sk_gpu_test::GLTestContext { 193724e574a744491b7cfb8187ac865a70ef3d4528bsalomonpublic: 20b988ecf639f1394ea5e821ac15b989e25e064534svaisanen NullGLContext(bool enableNVPR) { this->init(GrGLCreateNullInterface(enableNVPR)); } 213724e574a744491b7cfb8187ac865a70ef3d4528bsalomon ~NullGLContext() override { this->teardown(); } 223724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 23b988ecf639f1394ea5e821ac15b989e25e064534svaisanenprivate: 24fc6c37b981daeece7474ce61070c707c37eefa62Mike Klein void onPlatformMakeCurrent() const override {} 253724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void onPlatformSwapBuffers() const override {} 263724e574a744491b7cfb8187ac865a70ef3d4528bsalomon GrGLFuncPtr onPlatformGetProcAddress(const char*) const override { return nullptr; } 273724e574a744491b7cfb8187ac865a70ef3d4528bsalomon}; 282f538e91573ae3b263a5b7f61628c8485913ded1bsalomon 293724e574a744491b7cfb8187ac865a70ef3d4528bsalomon} // anonymous namespace 303724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 313724e574a744491b7cfb8187ac865a70ef3d4528bsalomonnamespace sk_gpu_test { 3260c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian OsmanGLTestContext* CreateNullGLTestContext(bool enableNVPR, GLTestContext* shareContext) { 3360c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian Osman if (shareContext) { 3460c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian Osman return nullptr; 3560c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian Osman } 36b988ecf639f1394ea5e821ac15b989e25e064534svaisanen GLTestContext* ctx = new NullGLContext(enableNVPR); 373724e574a744491b7cfb8187ac865a70ef3d4528bsalomon if (ctx->isValid()) { 383724e574a744491b7cfb8187ac865a70ef3d4528bsalomon return ctx; 393724e574a744491b7cfb8187ac865a70ef3d4528bsalomon } 403724e574a744491b7cfb8187ac865a70ef3d4528bsalomon delete ctx; 413724e574a744491b7cfb8187ac865a70ef3d4528bsalomon return nullptr; 423724e574a744491b7cfb8187ac865a70ef3d4528bsalomon} 433724e574a744491b7cfb8187ac865a70ef3d4528bsalomon} // namespace sk_gpu_test 443724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 45