skia2/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.h
Greg Daniel 02497d4016 Update nanobench and skpbench to use flush API for gpu syncing.
This also allows us to remove all the one off Fence code that we
implemented in all the backend TestContexts

Change-Id: I9ff7ba4690cf3f19a180f51fc510991a112bb62c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/272456
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-02-24 17:21:35 +00:00

58 lines
1.4 KiB
C++

/*
* Copyright 2015 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef GLTestContext_command_buffer_DEFINED
#define GLTestContext_command_buffer_DEFINED
#include "tools/gpu/gl/GLTestContext.h"
namespace sk_gpu_test {
class CommandBufferGLTestContext : public GLTestContext {
public:
~CommandBufferGLTestContext() override;
static CommandBufferGLTestContext *Create(GLTestContext* shareContext) {
CommandBufferGLTestContext* cbShareContext =
reinterpret_cast<CommandBufferGLTestContext*>(shareContext);
CommandBufferGLTestContext *ctx = new CommandBufferGLTestContext(cbShareContext);
if (!ctx->isValid()) {
delete ctx;
return nullptr;
}
return ctx;
}
void presentCommandBuffer();
bool makeCurrent();
int getStencilBits();
int getSampleCount();
private:
CommandBufferGLTestContext(CommandBufferGLTestContext* shareContext);
void destroyGLContext();
void onPlatformMakeNotCurrent() const override;
void onPlatformMakeCurrent() const override;
std::function<void()> onPlatformGetAutoContextRestore() const override;
GrGLFuncPtr onPlatformGetProcAddress(const char *name) const override;
void *fContext;
void *fDisplay;
void *fSurface;
void *fConfig;
};
} // namespace sk_gpu_test
#endif