の上に描画するにはどうすれば(通常のdrawRectメソッドで行われるよう)「通常の」バックグラウンドで実行されているOpenGLのアニメーションの上に描画実装していますか?私のアプリは、デフォルトのXcodeゲームアプリテンプレートであるOpenGLアプリです。 GLKViewControllerにはdrawRectメソッドがありません。追加すると、決して呼び出されません。 drawInRectメソッド(存在する)に描画コードを実装しようとしましたが、実行時エラーが発生します。 は、「正規」のOpenGL層
だから要約する:私はOpenGLを使用しますが、通常のクオーツプリミティブを使用していない(何でも、ライン、パス)のものを描き、既存の3Dレンダリングの上にこれを表示したいと思います。
0
A
答えて
0
確認drawRect
が呼び出されるようにするには、おそらく他のルートを行く必要があります。それに描画を開始、その後、[CAEAGLLayer class]
を返すために、メインビューの+ (Class)layerClass
方法を変更し、標準のCocoa Touchのプロジェクトを作成します。 CAEAGLLayer
documentationは、特にあなたが何をしたいのかやっに対して警告していることに注意してください:
CAEAGLLayerオブジェクトの上に他の層を描画することは避けてください。他の非OpenGLコンテンツを描画する必要がある場合は、GLコンテンツの上に透明な2Dコンテンツを配置し、OpenGLコンテンツが不透明であり、変換されていないことを確認すると、
チェックアウト(PaintingView.m
中)layerClass
オーバーライドを示す簡単なのOpenGL ESプロジェクトのGLPaint
プロジェクト。彼らはlayoutSubviews
とtouchesBegan/Moved/Ended
を使用して図面を作成します。
関連する問題
- 1. OpenGL正多角形
ありがとうございました。実際の描画は、[context presentRenderbuffer:GL_RENDERBUFFER_OES]呼び出しでrenderLineFromPointで行われることがわかります。しかし、どのように私はこのGL層の上のレイヤーに通常の石英の描画コマンドを組み込むでしょうか?私はGL層と同じ "文脈"を使用することはできないと思いますか? –
Interface Builderまたはコードで、追加の 'UIView'をメインビューのサブビューとして定義します。それぞれの 'UIView'は内部の' CALayer'を持っていますので、それ自身を描画するように要求されたときには、そのレイヤのコンテキストを使用します。その時点でのGLコンテキストは無関係です。 – darvids0n
[このSOの質問](http://stackoverflow.com/questions/4500708/marrying-core-animation-with-opengl-es)が役立ちます。 – darvids0n