iOSアプリでOpenGLの修正した際のメモ
iOS で OpenGL ES を修正する際に調べた事メモです。
iOSやAndroidの端末でのOpenGL
OpenGL ESを使用します。
OpenGL ESって?
OpenGL ES は OpenGLのサブセット版*1です。
OpenGL ESのバージョン
OpenGL ES 1.1
- 固定機能パイプライン機能*2がある
- iOSでは後方互換性を維持する為に搭載されている
- OpenGL ES 2.0以降との互換性は無い
- 保守の場合、GLKitフレームワークを使用して移行が推奨されている*3
- GLKitフレームワークには、OpenGL ES 1.1の固定機能パイプラインを、新しい版に移行するための支援機能があります。
OpenGL ES 2.0
- プログラマブルシェーダ機能*4がある
- OpenGL ES 3.0 とは後方互換性がある
- iPhone 3GSから対象となっており、Appleのサポート対象製品であれば使用可能*5
OpenGL ES 3.0
- iOS7から使用可能
- 多機能化*6
ソースコードがどのバージョンを使用してるか
importを見るのが一番早そう
- #import <OpenGLES/ES1/gl.h> // OpenGL ES 1.1を使用
- #import <OpenGLES/ES2/gl.h> // OpenGL ES 2.0を使用
- #import <OpenGLES/ES3/gl.h> // OpenGL ES 3.0を使用
どのバージョンを使用するのか
OpenGL ESを組み込んでiOSアプリケーションを構築するためのチェックリスト
OpenGL ES 3.0 か、iOS7以前をサポートするならOpenGL ES 2.0 が良さそうですね。
*1:OpenGLにある機能の一部を取り出して、特定用途に利用できるよう再構築したもの
*2:柔軟性の無いけど実装が楽な描画処理機能みたいなのらしい
*3:GLKitを使用したレンダラの開発 OpenGL ESおよびGLKitによる描画
*4:色々調節しやすいけど詳細な設定が必要な描画機能みたいなのらしい
*5:https://9to5mac.com/2017/05/27/apple-moving-macbook-pro-air-and-iphone-to-obsolete/