86 if (proc_resolver ==
nullptr) {
87#if defined(FML_OS_ANDROID)
88 return GrGLInterfaces::MakeEGL();
89#elif defined(FML_OS_LINUX)
91 return GrGLInterfaces::MakeGLX();
95#elif defined(FML_OS_IOS)
96 return GrGLInterfaces::MakeIOS();
97#elif defined(FML_OS_MACOSX)
98 return GrGLInterfaces::MakeMac();
103 return GrGLMakeNativeInterface();
107 struct ProcResolverContext {
111 ProcResolverContext context = {proc_resolver};
113 GrGLGetProc gl_get_proc = [](
void* context,
114 const char gl_proc_name[]) -> GrGLFuncPtr {
115 auto proc_resolver_context =
116 reinterpret_cast<ProcResolverContext*
>(context);
117 return reinterpret_cast<GrGLFuncPtr
>(
118 proc_resolver_context->resolver(gl_proc_name));
123 return GrGLMakeAssembledGLESInterface(&context, gl_get_proc);
127 if (
auto interface = GrGLMakeAssembledGLInterface(&context, gl_get_proc)) {
131 FML_LOG(ERROR) <<
"Could not create a valid GL interface.";