Какая разница между GLKView и EAGLView?

Я видел как EAGLView, так и GLKView, используемые в приложениях iOS. Какая разница между ними?

Ответы

Ответ 1

Оба эти класса связаны с OpenGL ES, но только один из них фактически предоставляется Apple как часть SDK iOS.

EAGLView не является классом, снабженным Cocoa Touch framework. В шаблонах Apple OpenGL ES и образце кода они создали классы с этим именем, в которых размещается контент OpenGL ES. Другие скопировали и вставили эти классы в учебники, которые они написали о предмете. Как правило, у одного элемента все классы с этим именем имеют общее значение, так как они переопределяют метод +layerClass для возврата [CAEAGLLayer class], указывая, что эти представления будут размещать содержимое OpenGL ES в пределах своего слоя поддержки.

GLKView является новым в iOS 5.0 как часть структуры GLKit. GLKit стремится упростить некоторые настройки, необходимые для отображения материала OpenGL ES, предоставляя вспомогательные классы, такие как GLKView. GLKView обрабатывает настройку фреймбуферов и буферов рендеринга для вас, а также некоторые другие задачи, для которых обычно приходится писать код.

Возможно, вы не увидите, что этот класс много используется в учебниках, учитывая, что многие из них были написаны до iOS 5.0, но это удобный вспомогательный класс, который может упростить рендеринг IOS OpenGL ES.