1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // SPDX-License-Identifier: Unlicense OR MIT
- // +build darwin,ios,nometal
- @import UIKit;
- @import OpenGLES;
- #include "_cgo_export.h"
- Class gio_layerClass(void) {
- return [CAEAGLLayer class];
- }
- int gio_renderbufferStorage(CFTypeRef ctxRef, CFTypeRef layerRef, GLenum buffer) {
- EAGLContext *ctx = (__bridge EAGLContext *)ctxRef;
- CAEAGLLayer *layer = (__bridge CAEAGLLayer *)layerRef;
- return (int)[ctx renderbufferStorage:buffer fromDrawable:layer];
- }
- int gio_presentRenderbuffer(CFTypeRef ctxRef, GLenum buffer) {
- EAGLContext *ctx = (__bridge EAGLContext *)ctxRef;
- return (int)[ctx presentRenderbuffer:buffer];
- }
- int gio_makeCurrent(CFTypeRef ctxRef) {
- EAGLContext *ctx = (__bridge EAGLContext *)ctxRef;
- return (int)[EAGLContext setCurrentContext:ctx];
- }
- CFTypeRef gio_createContext(void) {
- EAGLContext *ctx = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
- if (ctx == nil) {
- return nil;
- }
- return CFBridgingRetain(ctx);
- }
- CFTypeRef gio_createGLLayer(void) {
- CAEAGLLayer *layer = [[CAEAGLLayer layer] init];
- if (layer == nil) {
- return nil;
- }
- layer.drawableProperties = @{kEAGLDrawablePropertyColorFormat: kEAGLColorFormatSRGBA8};
- layer.opaque = YES;
- layer.anchorPoint = CGPointMake(0, 0);
- return CFBridgingRetain(layer);
- }
|