У меня возникли проблемы с поиском правильного места для настройки шейдера для приложения OpenGLES с использованием GLKView и GLKViewController.Правильное место для настройки шейдеров для GLKView?
Кажется, что viewDidLoad - это естественное место для этого, но создание шейдера терпит неудачу, когда я пытаюсь сделать это здесь. Моя установка что-то вроде этого:
//shader helper method
int setupShaders(const char* vShader, const char* fShader); //returns a program handle
//inside GLKViewController subclass
static int program;
-(void)viewDidLoad{
[super viewDidLoad];
program = setupShaders(vsh, fsh); //program will be zero indicating setup failure
}
Я знаю, что код установки работает, потому что это удастся, если я называю это внутри - (Недействительными) glkView: (GLKView *) вид drawInRect: (CGRect) Прямоугольник.
Так что я предполагаю, что OpenGL не полностью инициализирован, когда вызывается (void) viewDidLoad, или что-то нужно сделать, чтобы установить правильный контекст OpenGL для настройки, которую я пытаюсь сделать, t найти документацию о том, где и как правильно выполнить настройку.