1 /*
2  * Copyright 2016 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 
9 #include "gl/GrGLInterface.h"
10 #include "gl/GrGLAssembleInterface.h"
11 #include "gl/GrGLUtil.h"
12 
13 #include <GLFW/glfw3.h>
14 
glfw_get(void * ctx,const char name[])15 static GrGLFuncPtr glfw_get(void* ctx, const char name[]) {
16     SkASSERT(nullptr == ctx);
17     SkASSERT(glfwGetCurrentContext());
18     return glfwGetProcAddress(name);
19 }
20 
GrGLMakeNativeInterface()21 sk_sp<const GrGLInterface> GrGLMakeNativeInterface() {
22     if (nullptr == glfwGetCurrentContext()) {
23         return nullptr;
24     }
25 
26     return GrGLMakeAssembledInterface(nullptr, glfw_get);
27 }
28 
GrGLCreateNativeInterface()29 const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); }
30