Fiddle: update to new GrGLAssembleInterface API
NOTRY=true
TBR=
Review URL: https://codereview.chromium.org/1849753003
diff --git a/experimental/fiddle/fiddle_main.cpp b/experimental/fiddle/fiddle_main.cpp
index c5561c0..51c9568 100644
--- a/experimental/fiddle/fiddle_main.cpp
+++ b/experimental/fiddle/fiddle_main.cpp
@@ -72,13 +72,24 @@
return osMesaContext;
}
-static GrContext* create_mesa_grcontext() {
- sk_sp<const GrGLInterface> mesa(GrGLCreateMesaInterface());
- intptr_t backend = reinterpret_cast<intptr_t>(mesa.get());
- return backend ? GrContext::Create(kOpenGL_GrBackend, backend) : nullptr;
+static sk_sp<GrContext> create_mesa_grcontext() {
+ if (nullptr == OSMesaGetCurrentContext()) {
+ return nullptr;
+ }
+ auto osmesa_get = [](void* ctx, const char name[]) {
+ SkASSERT(nullptr == ctx);
+ SkASSERT(OSMesaGetCurrentContext());
+ return OSMesaGetProcAddress(name);
+ };
+ sk_sp<const GrGLInterface> mesa(GrGLAssembleInterface(nullptr, osmesa_get));
+ if (!mesa) {
+ return nullptr;
+ }
+ return sk_sp<GrContext>(GrContext::Create(
+ kOpenGL_GrBackend,
+ reinterpret_cast<intptr_t>(mesa.get())));
}
-
int main() {
const DrawOptions options = GetDrawOptions();
if (options.source) {
@@ -105,7 +116,7 @@
}
if (options.gpu) {
OSMesaContext osMesaContext = create_osmesa_context();
- sk_sp<GrContext> grContext(create_mesa_grcontext());
+ auto grContext = create_mesa_grcontext();
if (!grContext) {
fputs("Unable to get Mesa GrContext.\n", stderr);
} else {