go mod vendor pins onnxruntime_go v1.12.1, Gio and the rest into v2/vendor so go run/build work without hitting proxy.golang.org (blocked/slow in China). Verified: CGO_ENABLED=1 go build -mod=vendor ./internal/spike and GOOS=windows go build -mod=vendor ./internal/ui both pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
// SPDX-License-Identifier: Unlicense OR MIT
|
|
|
|
//go:build darwin && !ios && !nometal
|
|
// +build darwin,!ios,!nometal
|
|
|
|
package app
|
|
|
|
/*
|
|
#cgo CFLAGS: -Werror -xobjective-c -fobjc-arc
|
|
|
|
#import <AppKit/AppKit.h>
|
|
#import <QuartzCore/CAMetalLayer.h>
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
|
|
CALayer *gio_layerFactory(BOOL presentWithTrans) {
|
|
@autoreleasepool {
|
|
CAMetalLayer *l = [CAMetalLayer layer];
|
|
l.autoresizingMask = kCALayerHeightSizable|kCALayerWidthSizable;
|
|
l.needsDisplayOnBoundsChange = YES;
|
|
l.presentsWithTransaction = presentWithTrans;
|
|
return l;
|
|
}
|
|
}
|
|
|
|
static CFTypeRef getMetalLayer(CFTypeRef viewRef) {
|
|
@autoreleasepool {
|
|
NSView *view = (__bridge NSView *)viewRef;
|
|
return CFBridgingRetain(view.layer);
|
|
}
|
|
}
|
|
|
|
static void resizeDrawable(CFTypeRef viewRef, CFTypeRef layerRef) {
|
|
@autoreleasepool {
|
|
NSView *view = (__bridge NSView *)viewRef;
|
|
CAMetalLayer *layer = (__bridge CAMetalLayer *)layerRef;
|
|
CGSize size = layer.bounds.size;
|
|
size.width *= layer.contentsScale;
|
|
size.height *= layer.contentsScale;
|
|
layer.drawableSize = size;
|
|
}
|
|
}
|
|
*/
|
|
import "C"
|
|
|
|
func getMetalLayer(view C.CFTypeRef) C.CFTypeRef {
|
|
return C.getMetalLayer(view)
|
|
}
|
|
|
|
func resizeDrawable(view, layer C.CFTypeRef) {
|
|
C.resizeDrawable(view, layer)
|
|
}
|