const GrGLInterface* GrGLCreateNativeInterface() { GrGLGetStringiProc getStringi = (GrGLGetStringiProc) eglGetProcAddress("glGetStringi"); const char* verStr = reinterpret_cast<const char*>(glGetString(GR_GL_VERSION)); GrGLVersion version = GrGLGetVersionFromString(verStr); GrGLStandard standard = GrGLGetStandardInUseFromString(verStr); GrGLExtensions extensions; if (!extensions.init(standard, glGetString, getStringi, glGetIntegerv)) { return NULL; } GrGLInterface* interface = NULL; if (kGLES_GrGLStandard == standard) { interface = create_es_interface(version, &extensions); } else if (kGL_GrGLStandard == standard) { interface = create_desktop_interface(version, extensions); } if (NULL != interface) { interface->fExtensions.swap(&extensions); } return interface; }
const GrGLInterface* GrGLCreateNativeInterface() { GrGLGetStringiProc getStringi = (GrGLGetStringiProc) eglGetProcAddress("glGetStringi"); const char* verStr = reinterpret_cast<const char*>(glGetString(GR_GL_VERSION)); GrGLVersion version = GrGLGetVersionFromString(verStr); GrGLBinding binding = GrGLGetBindingInUseFromString(verStr); GrGLExtensions extensions; if (!extensions.init(binding, glGetString, getStringi, glGetIntegerv)) { return NULL; } if (kES_GrGLBinding == binding) { return create_es_interface(version, extensions); } else if (kDesktop_GrGLBinding == binding) { return create_desktop_interface(version, extensions); } else { return NULL; } }