質問

新しいプロジェクトを作成し、ほとんどコピーしました このガイド, 、しかし、OpenGL関数を呼び出すたびに、スポットマークが付けられます // Drawing code here それはクラッシュします。そこにこれがあります:

glViewport(0, 0, [self bounds].size.width, [self bounds].size.height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, [self bounds].size.width, [self bounds].size.height, 0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.375, 0.375, 0.0);

glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0, 0, 0);

glBegin(GL_LINES);
glVertex2f(10, 10);
glVertex2f(300, 300);
glEnd();

glFlush();

ただし、OpenGL 関数を 1 つ呼び出すだけでクラッシュし、レポートが表示されます。 GDB: Program received signal: "EXC_BAD_ACCESS". まず第一に、もしうまくいったとしたら、そのコードは良いものでしょうか?呼び出されるたびに、そのようなことをすべて上部で実行するのでしょうか?原点が左上にある 2D 用であるはずです。そしてなぜクラッシュするのでしょうか?CoreVideo と OpenGL をリンクしてインポートしました...ゲーム コードに集中できるように、OpenGL を使用するように Cocoa アプリケーションをセットアップしたいと考えています。

ありがとう。

役に立ちましたか?

解決

あなたがリンクした記事は、実際には完全なプロジェクトではありません。これは、CVDisplayLink を使用して描画ループを駆動する方法の単なる説明とサンプルです。おそらく Apple のものから始めたほうがうまくいくでしょう。 OpenGL プログラミング ガイド。

他のヒント

GLFullScreenのための

チェックMyOpenGLView.mで Appleのサンプルコードに。彼らは成功しCVDisplayLinkを使用しています。 「ドライビングOpenGLのレンダリングループ」に欠けているものは、あなたが同じOpenGLコンテキストにアクセスする二つのスレッドを避けるために、ミューテックスを追加する必要があるという事実である。

あなたはそれが問題の一部であるかどうかを確認するためにハードコードされた数字で「[自己を境界] .size.width」交換してみてください可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top