我正在使用GLKit的GLKViewController/GLKView进行基本的OpenGL绘制。
我想在ViewDidLoad方法中设置ViewPort。阅读了GLKView参考资料后,我认为应该可以这样做:
- (void)viewDidLoad
{
[super viewDidLoad];
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!self.context) {
NSLog(@"Failed to create ES context");
}
GLKView *view = (GLKView *)self.view;
view.context = self.context;
glViewport( 0, 0, view.DrawableWidth, view.DrawableHeight );
}
问题在于
DrawableWidth
和DrawableHeight
属性都为零。为什么会这样?当GLKView调用DrawInRect时,它们被设置并且它们的值是我所期望的。
view.frame.size
来设置它。 - Gabriel G. RoyviewDidLoad
不是使用view.frame.size
的好时机。https://dev59.com/8mkw5IYBdhLWcg3w9vF-#9540935 - rob mayoffUIScreen.mainScreen().bounds.width
和height
。 - GrumdrigviewDidLayoutSubviews
。 - rob mayoffUIScreen.mainScreen().bounds
。 (抱歉,在一个 ObjC 问题中使用了 Swift。) - Grumdrig