github.com/cybriq/giocore@v0.0.7-0.20210703034601-cfb9cb5f3900/gpu/headless/headless_ios.m (about) 1 // SPDX-License-Identifier: Unlicense OR MIT 2 3 // +build darwin,ios 4 5 @import OpenGLES; 6 7 #include <CoreFoundation/CoreFoundation.h> 8 #include "_cgo_export.h" 9 10 void gio_headless_releaseContext(CFTypeRef ctxRef) { 11 CFBridgingRelease(ctxRef); 12 } 13 14 CFTypeRef gio_headless_newContext(void) { 15 EAGLContext *ctx = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3]; 16 if (ctx == nil) { 17 return nil; 18 } 19 return CFBridgingRetain(ctx); 20 } 21 22 void gio_headless_clearCurrentContext(CFTypeRef ctxRef) { 23 [EAGLContext setCurrentContext:nil]; 24 } 25 26 void gio_headless_makeCurrentContext(CFTypeRef ctxRef) { 27 EAGLContext *ctx = (__bridge EAGLContext *)ctxRef; 28 [EAGLContext setCurrentContext:ctx]; 29 }