Files
silver_pose/v2/vendor/gioui.org/app/metal_ios.go
T
ilaandClaude Opus 4.8 f58728cddd chore(v2): vendor dependencies for offline/China builds
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>
2026-07-23 16:35:01 +08:00

51 lines
1.1 KiB
Go

// SPDX-License-Identifier: Unlicense OR MIT
//go:build !nometal
package app
/*
#cgo CFLAGS: -Werror -xobjective-c -fmodules -fobjc-arc
@import UIKit;
@import QuartzCore.CAMetalLayer;
#include <CoreFoundation/CoreFoundation.h>
Class gio_layerClass(void) {
return [CAMetalLayer class];
}
static CFTypeRef getMetalLayer(CFTypeRef viewRef) {
@autoreleasepool {
UIView *view = (__bridge UIView *)viewRef;
CAMetalLayer *l = (CAMetalLayer *)view.layer;
l.needsDisplayOnBoundsChange = YES;
l.presentsWithTransaction = YES;
return CFBridgingRetain(l);
}
}
static void resizeDrawable(CFTypeRef viewRef, CFTypeRef layerRef) {
@autoreleasepool {
UIView *view = (__bridge UIView *)viewRef;
CAMetalLayer *layer = (__bridge CAMetalLayer *)layerRef;
layer.contentsScale = view.contentScaleFactor;
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)
}