Apple の OpenGL ES Programming Guideによると、「[a] フレームバッファがユーザーに表示されることを意図している場合は、特別なコア アニメーション対応のレンダバッファを使用してください。」
このコア アニメーションをレンダーバッファに対応させるには、次のコードを使用して「UIView をサブクラス化して [the] iOS アプリケーション [および] layerClass をオーバーライドするための OpenGL ES ビューを作成する」必要があります。
+ (Class) layerClass
{
return [CAEAGLLayer class];
}
ただし、OpenGL をエンド ユーザーに表示するApple の GLCameraRipple の例を調べると、layerClass がオーバーライドされているようには見えません。layerClass または CAEAGLLayer をテキスト検索すると、それらが見つからないことがわかります。
ユーザーに直接表示するための他のアプローチを探す場合、Apple は他の 2 つの OpenGL アプローチを提供していますが、どちらもユーザーに直接表示するためではなく、オフスクリーン レンダリング用であることを暗示しているようです。(つまり、「フレーム バッファを使用してオフスクリーン イメージ処理を実行する場合は、レンダ バッファをアタッチします。フレーム バッファ イメージを後のレンダリング ステップへの入力として使用する場合は、テクスチャをアタッチします。」)
Core Animation 対応のレンダーバッファを使用する以外に、OpenGL コンテンツを表示する別の方法はありますか? または、Apple が何らかの方法でレイヤー クラスをオーバーライドしているため、OpenGL コンテンツは別の方法で Core Animation 対応になっていますか?