13724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 23724e574a744491b7cfb8187ac865a70ef3d4528bsalomon/* 33724e574a744491b7cfb8187ac865a70ef3d4528bsalomon * Copyright 2015 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#ifndef GLTestContext_command_buffer_DEFINED 10273c0f5e87397c40d22bb7e3ee078bb46a3f6860bsalomon#define GLTestContext_command_buffer_DEFINED 113724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 12273c0f5e87397c40d22bb7e3ee078bb46a3f6860bsalomon#include "gl/GLTestContext.h" 133724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 143724e574a744491b7cfb8187ac865a70ef3d4528bsalomonnamespace sk_gpu_test { 15273c0f5e87397c40d22bb7e3ee078bb46a3f6860bsalomonclass CommandBufferGLTestContext : public GLTestContext { 163724e574a744491b7cfb8187ac865a70ef3d4528bsalomonpublic: 17273c0f5e87397c40d22bb7e3ee078bb46a3f6860bsalomon ~CommandBufferGLTestContext() override; 183724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 1960c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian Osman static CommandBufferGLTestContext *Create(GLTestContext* shareContext) { 2060c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian Osman CommandBufferGLTestContext* cbShareContext = 2160c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian Osman reinterpret_cast<CommandBufferGLTestContext*>(shareContext); 2260c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian Osman CommandBufferGLTestContext *ctx = new CommandBufferGLTestContext(cbShareContext); 233724e574a744491b7cfb8187ac865a70ef3d4528bsalomon if (!ctx->isValid()) { 243724e574a744491b7cfb8187ac865a70ef3d4528bsalomon delete ctx; 253724e574a744491b7cfb8187ac865a70ef3d4528bsalomon return nullptr; 263724e574a744491b7cfb8187ac865a70ef3d4528bsalomon } 273724e574a744491b7cfb8187ac865a70ef3d4528bsalomon return ctx; 283724e574a744491b7cfb8187ac865a70ef3d4528bsalomon } 293724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 303724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void presentCommandBuffer(); 313724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 323724e574a744491b7cfb8187ac865a70ef3d4528bsalomon bool makeCurrent(); 333724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 343724e574a744491b7cfb8187ac865a70ef3d4528bsalomon int getStencilBits(); 353724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 363724e574a744491b7cfb8187ac865a70ef3d4528bsalomon int getSampleCount(); 373724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 383724e574a744491b7cfb8187ac865a70ef3d4528bsalomonprivate: 3960c774db3ec46f3eb85f6390ba31e38c8d29e2d4Brian Osman CommandBufferGLTestContext(CommandBufferGLTestContext* shareContext); 403724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 413724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void destroyGLContext(); 423724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 433724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void onPlatformMakeCurrent() const override; 443724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 453724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void onPlatformSwapBuffers() const override; 463724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 473724e574a744491b7cfb8187ac865a70ef3d4528bsalomon GrGLFuncPtr onPlatformGetProcAddress(const char *name) const override; 483724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 493724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void *fContext; 503724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void *fDisplay; 513724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void *fSurface; 523724e574a744491b7cfb8187ac865a70ef3d4528bsalomon void *fConfig; 533724e574a744491b7cfb8187ac865a70ef3d4528bsalomon}; 543724e574a744491b7cfb8187ac865a70ef3d4528bsalomon} // namespace sk_gpu_test 553724e574a744491b7cfb8187ac865a70ef3d4528bsalomon 563724e574a744491b7cfb8187ac865a70ef3d4528bsalomon#endif 57