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
8#include "include/gpu/gl/GrGLInterface.h"
9
10typedef GrGLFuncPtr (*GrGLGetProc)(void* ctx, const char name[]);
11
12/**
13 * Generic function for creating a GrGLInterface for an either OpenGL or GLES. It calls
14 * get() to get each function address. ctx is a generic ptr passed to and interpreted by get().
15 */
16SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledInterface(void *ctx, GrGLGetProc get);
17
18/**
19 * Generic function for creating a GrGLInterface for an OpenGL (but not GLES) context. It calls
20 * get() to get each function address. ctx is a generic ptr passed to and interpreted by get().
21 */
22SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledGLInterface(void *ctx, GrGLGetProc get);
23
24/**
25 * Generic function for creating a GrGLInterface for an OpenGL ES (but not Open GL) context. It
26 * calls get() to get each function address. ctx is a generic ptr passed to and interpreted by
27 * get().
28 */
29SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledGLESInterface(void *ctx, GrGLGetProc get);
30
31/**
32 * Generic function for creating a GrGLInterface for a WebGL (similar to OpenGL ES) context. It
33 * calls get() to get each function address. ctx is a generic ptr passed to and interpreted by
34 * get().
35 */
36SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetProc get);
37
38/** Deprecated version of GrGLMakeAssembledInterface() that returns a bare pointer. */
39SK_API const GrGLInterface* GrGLAssembleInterface(void *ctx, GrGLGetProc get);
40