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