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