我想要一个带有实用程序应用程序的OpenGL视图。
我做什么: 我创建了一个OpenGL ES应用程序模板和一个Utility Application模板。 我将文件EAGLView.m和h以及五个ES 渲染器。文件从Opengl项目复制到实用程序项目。
我将这些行从OpenGl项目复制到Utility项目:(在utilityAppDelegate.m中)
- (void)applicationDidFinishLaunching:(UIApplication *)application {
...
[glView startAnimation];
}
- (void) applicationWillResignActive:(UIApplication *)application
{
[glView stopAnimation];
}
- (void) applicationDidBecomeActive:(UIApplication *)application
{
[glView startAnimation];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
[glView stopAnimation];
}
- (void)dealloc {
...
[glView release];
...
}
在utilityAppDelegate.h中我添加:
@class EAGLView;
EAGLView *glView;
@property (nonatomic, retain) IBOutlet EAGLView *glView;
我转到视图的身份检查器,并将类标识更改为EAGLview。
我打开mainview.xib和mainwindow.xib并从mainwindow.xib拖动app_delegate,以便能够将glView插座连接到视图。 (不知道这是否是这样做的,但这是我可以将glView变量连接到视图的唯一方法)
当我构建并运行时,多色方块显示在屏幕上,但它没有动画!
当我调试时,applicationDidFinishLaunching中的glView变量为0,并且未调用startAnimation。我怀疑这与插座连接到视图的方式有关吗?可能没连接。 :-) 这个错误可能是显而易见的,但我在这个平台上只用了5个星期。
缺少什么?我做错了什么?
谢谢!
答案 0 :(得分:0)
我不知道您是否提供了足够的信息来确切地说出您的情况出了什么问题。但是,我建议您查看我的iPhone应用程序Molecules的源代码。
虽然它有点复杂,但应用程序基于这两个模板。它使用OpenGL ES主视图(其中显示了3-D分子渲染),以及翻转侧的表视图/导航控制器(用于切换分子结构,检查其属性和下载新属性)。您可以查看该示例,看看您可能做错了什么,甚至只是用您自己的代码替换我的渲染和查看代码。
答案 1 :(得分:0)
我在另一个论坛得到了解决方案: http://iphonedevbook.com/forum/viewtopic.php?f=25&t=3192&sid=9cf79468b81a8fd6c9d9020958d33388
基本上,只需将glView插座添加到MainViewController而不是AppDelegate。