Я использую GLKViewController/GLKView GLKit, чтобы сделать базовый рисунок OpenGL.
Я хотел бы настроить ViewPort в методе ViewDidLoad. Прочитав справку по 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
для его настройки. 04.03.2012viewDidLoad
тоже не лучшее время для использованияview.frame.size
. stackoverflow.com/a/9540935/77567 04.03.2012UIScreen.mainScreen().bounds.width
иheight
. 09.01.2016UIScreen.mainScreen().bounds
. (Простите мой Swift в вопросе ObjC.) 09.01.2016