Quale dovrebbe essere la differenza, in termini di scopo, tra questi due metodi nel mio ciclo di rendering?Differenza tra glkView: drawInRect: e glkViewControllerUpdate :? OpenGL ES 2 - iOS
Apple ha questo da dire ....
Chi update() Il controller di visualizzare le chiamate glkViewControllerUpdate dei suoi delegati: metodo. Il delegato dovrebbe aggiornare i dati del frame che non implicano il rendering dei risultati sullo schermo.
Circa drawInRect: l'oggetto GLKView fa il suo contesto OpenGL ES contesto attuale e si lega la sua framebuffer come destinazione per il rendering OpenGL ES comandi. Il tuo metodo delegato dovrebbe quindi disegnare i contenuti della vista.
Fondamentalmente, quando creo un GLKView nel mio controller di visualizzazione, quel controller diventa delato, quindi sto osservando questi metodi fianco a fianco.
Ho assunto che update() dovrebbe contenere trasformazioni o altra logica.
Vedo. Così, ad esempio, in Space Invaders, una nuova nave che entra nella vista del modello o il giocatore che esegue lo zoom su un pianeta sarebbe sotto la responsabilità dell'aggiornamento. Mentre drawInRect: proietta semplicemente la matrice, fino al frame rate desiderato, ma non sempre è in grado di tenere il passo a seconda del carico. –
Sì - qualsiasi logica che aggiorni lo stato del gioco farebbe parte dell'aggiornamento, sia che si aggiunga un nuovo modello o si muova la telecamera. – Tommy