gpt4 book ai didi

ios - iOS 上的实际风景 OpenGL View

转载 作者:可可西里 更新时间:2023-11-01 05:38:55 24 4
gpt4 key购买 nike

我正在将基于 C++ 的引擎从 Android 移植到 iOS,我对 iOS 设备上的横向模式如何工作有一些疑问。

我可以在横向模式下成功启动我的设备,但无论我如何旋转(或强制旋转)我的帧缓冲区都保持纵向模式。例如,我希望分辨率为 960x640 而不是默认的 320x480。

我一直在研究它,我看到有人这样做但明确使用 OpenGL 旋转场景,这意味着实际的轴不处于横向模式,这对我来说是一个丑陋的解决方法。

最佳答案

确保您的 OpenGL UIView 附加到 UIViewController 而不是直接插入到 UIWindow 中。为此,创建一个自定义 View Controller :

@interface MyViewController : UIViewController
@end

@implementation MyViewController
- (void)loadView {
// Create your EAGL view
MyEAGLView *eaglView = [[MyEAGLView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
self.view = eaglView;
[eaglView release];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
@end

然后通过 AppDelegate 将其添加到您应用的窗口中:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
MyViewController *viewController = [[MyViewController alloc] init];
[self.window setRootViewController:viewController];
[viewController release];
[self.window makeKeyAndVisible];
}

self.window 只是应用程序的 UIWindow,如果您将窗口存储在其他地方,您可能需要更改它。

之后,UIViewController 会在设备转动时负责旋转和调整 View 大小,您可以覆盖 MyEAGLView 对象中的 layoutSubviews 方法来处理调整 OpenGL 上下文的大小。您可能还想查看 Apple 的 OpenGL 应用程序示例代码,因为它可以正确处理这些内容。

关于ios - iOS 上的实际风景 OpenGL View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539369/

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