diff options
author | 2016-03-31 10:35:13 -0700 | |
---|---|---|
committer | 2016-03-31 10:35:13 -0700 | |
commit | a5598a40f82d69113fb4764dcb8de62151921807 (patch) | |
tree | 30a124eea6deaedd4cc9ca4f8f0d89b15d23f41e /experimental | |
parent | ca9206e10fbbee0e8f8d2df76743ffe3a38cef71 (diff) |
Fiddle: update to new GrGLAssembleInterface API
NOTRY=true
TBR=
Review URL: https://codereview.chromium.org/1849753003
Diffstat (limited to 'experimental')
-rw-r--r-- | experimental/fiddle/fiddle_main.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/experimental/fiddle/fiddle_main.cpp b/experimental/fiddle/fiddle_main.cpp index c5561c0c6f..51c956842b 100644 --- a/experimental/fiddle/fiddle_main.cpp +++ b/experimental/fiddle/fiddle_main.cpp @@ -72,13 +72,24 @@ static OSMesaContext create_osmesa_context() { 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 @@ int main() { } 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 { |