我是 ios 上的 opengl 编程新手。所以我从 Xcode 中的 opegles 游戏模板开始。照原样工作。但是,我一直在努力并排设置两个 opengles 视图。这是我的实现。
In AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];
self.anotherViewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window addSubview:self.anotherViewController.view];
}
ViewController 派生自 GLKViewController。我目前正在使用一种非常粗糙的方式在 VC 中并排放置两个视图,如下所示:
- (void) viewDidLoad{
[super viewDidLoad];
self.context = [[[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2] autorelease];
if (!self.context) {
NSLog(@"Failed to create ES context");
}
static int staticX = 0;
self.view = [[GLKView alloc] initWithFrame:CGRectMake(100, 100, 50 * staticX, 50)];
GLKView *view = (GLKView *)self.view;
view.frame = CGRectMake(100, 100, 50 * staticX, 50);
view.context = self.context;
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
[self setupGL:self.context];
staticX++;
}
当我在 iPad 上运行此代码时,当调用 glkView:(GLKView*) drawInRect:(CGRect) 时出现此错误:OpenGLGame[1183:907] 无法制作完整的帧缓冲区对象 8cd6。
第一个视图正确显示,但全屏显示。
有人可以帮我弄清楚我在这里缺少什么吗?
谢谢