1 /*
2  * Copyright 2014 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 #include "gl/GrGLInterface.h"
8 #include "gl/GrGLAssembleInterface.h"
9 #include "gl/GrGLUtil.h"
10 
11 #include <EGL/egl.h>
12 #include <GLES2/gl2.h>
13 
14 static GrGLFuncPtr egl_get_gl_proc(void* ctx, const char name[]) {
15     SkASSERT(nullptr == ctx);
16     GrGLFuncPtr ptr = eglGetProcAddress(name);
17     if (!ptr) {
18         if (0 == strcmp("eglQueryString", name)) {
19             return (GrGLFuncPtr)eglQueryString;
20         } else if (0 == strcmp("eglGetCurrentDisplay", name)) {
21             return (GrGLFuncPtr)eglGetCurrentDisplay;
22         }
23     }
24     return ptr;
25 }
26 
27 sk_sp<const GrGLInterface> GrGLMakeNativeInterface() {
28     return GrGLMakeAssembledInterface(nullptr, egl_get_gl_proc);
29 }
30 
31 const GrGLInterface* GrGLCreateNativeInterface() { return GrGLMakeNativeInterface().release(); }
32