rou*_*nak 2 iphone opengl-es ios glkit
我想用OpenGL做一些简单的图像处理,所以我开始使用GLKView.由于我不需要每隔几秒刷新一次视图,我没有使用GLKViewController和而是使用普通的UIViewController子类.
我的问题是,我只是将viewController的视图作为一个GLKView或者GLKView作为视图控制器视图的子视图添加.由于我UISlider也在视图中添加了一个,我认为后者似乎更好,但我不确定.我还需要setNeedsDisplay在某些情况下调用GLKView.
对于渲染,您应该在GLKViewController中使用GLKView.如果您担心不需要一直刷新,请在GLKViewController中使用self.paused = YES,这将停止渲染循环,当您需要再次渲染时,只需执行self.paused = NO.
如果你在另一个视图中有glkview,你应该用包含它来设置它.在你的情况下,你应该有一个普通的UIView与普通的UIViewController,然后添加UISlider和你的GLKViewController(与GLKView).
完成此操作后,您可以在父控制器中执行常规查看,并且您的opengl内容是您的glk控制器.
这是一个简单的例子,设置你的父节点,其中包含UISlider:
在父级的自定义UIViewController中
@interface ParentViewController () {
...
UISlider *_slider; // this is your slider
CustomGLKViewController *_myGlkViewController;
}
Run Code Online (Sandbox Code Playgroud)
然后在viewDidLoad里面:
// assuming you're using a storyboard
UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle:[NSBundle mainBundle]];
// setup the opengl controller
// first get an instance from storyboard
_myGlkViewController = [myStoryboard instantiateViewControllerWithIdentifier:@"idForGlkViewController"];
// then add the glkview as the subview of the parent view
[self.view addSubview:_myGlkViewController.view];
// add the glkViewController as the child of self
[self addChildViewController:_myGlkViewController];
[_myGlkViewController didMoveToParentViewController:self];
// if you want to set the glkView to the same size as the parent view,
// or you can do stuff like this inside myGlkViewController
_myGlkViewController.view.frame = self.view.bounds;
Run Code Online (Sandbox Code Playgroud)
但这只是一个帮助您入门的简单示例,您应该真正阅读有关ios5的UIViewController遏制和GLKit文档的Apple文档
| 归档时间: |
|
| 查看次数: |
6904 次 |
| 最近记录: |