aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2016-03-31 10:35:13 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-31 10:35:13 -0700
commita5598a40f82d69113fb4764dcb8de62151921807 (patch)
tree30a124eea6deaedd4cc9ca4f8f0d89b15d23f41e /experimental
parentca9206e10fbbee0e8f8d2df76743ffe3a38cef71 (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.cpp23
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 {