gpt4 book ai didi

ios - iOS 上的 SCNRenderer 分配时出现错误

转载 作者:行者123 更新时间:2023-11-29 02:29:23 26 4
gpt4 key购买 nike

我正在 iOS 上创建 SCNRenderer 以进行离屏渲染,我不知道为什么我会收到错误消息:

“线程 1:EXC_BAD_ACCESS(代码=1,地址=0x0)”

我的代码中唯一的事情就是创建这个“SCNRenderer”。这个函数在 viewDidAppear 中调用:

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)

openGLContext = EAGLContext(API: .OpenGLES2)
var renderer = SCNRenderer(context: &openGLContext, options: nil)

}

我检查了 openGLContext,它不是 nil

我也检查过,SCNRenderer 在 iOS 8 上可用

rendererWithContext:options:

context: An OpenGL rendering context: either a CGLContextObj reference (in OS X) or an EAGLContext object (in iOS).

您认为我为什么会收到此错误?

最佳答案

更新:这段代码要小得多,而且看起来效果很好:

let renderer = SCNRenderer(context: unsafeBitCast(eaglContext, UnsafeMutablePointer.self), options: nil)

--旧答案如下--

现在我只使用这个变通方法 Objective-C 类。

@import SceneKit;

@interface SCNRenderer (SwiftiOSWorkaround)
+ (instancetype)rendererWithContextObject:(EAGLContext *)eaglContext options:(NSDictionary *)options;
@end

@implementation SCNRenderer (SwiftiOSWorkaround)
+ (instancetype)rendererWithContextObject:(EAGLContext *)eaglContext options:(NSDictionary *)options;
{
return [self rendererWithContext:(__bridge void *)eaglContext options:options];
}
@end

然后您可以使用以下方法从 Swift 创建 SCNRenderer:

var renderer = SCNRenderer(contextObject: openGLContext, options: nil)

关于ios - iOS 上的 SCNRenderer 分配时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com