mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 15:45:38 +00:00
45da52cee7
The app and app/internal/wm packages are tightly coupled, requiring quite a bit of forwarding types, values and constants from the internal package to export it. Further, no other package imports package wm. This change merges the two packages. While here, drop the pre-Go 1.14 SIGPIPE workaround. Signed-off-by: Elias Naur <mail@eliasnaur.com>
48 lines
1.2 KiB
Objective-C
48 lines
1.2 KiB
Objective-C
// 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);
|
|
}
|