0

テクスチャサイズが変更されたときにNSOpenGLViewウィンドウを更新したい。それで大丈夫です。そのときにイベントを登録しますが、OpenGLViewのサイズを変更できません。値魔女が変更されているwhです。

-(void)initOpenGL {
NSSize size = {w, h};
[self setFrameSize:size];
NSOpenGLContext *glcontext;
glcontext = [self openGLContext];
[glcontext makeCurrentContext];
glMatrixMode(GL_PROJECTION);
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);               
glOrtho(0.0, h, 0.0, w, -1.0, 10.0); 
}

アプリケーションを起動すると正常に動作しますが[self initOpenGL]、これらのサイズのいずれかを変更した後で動作させると、OpenGLビューが黒くなり、動作しなくなります。

4

3 に答える 3

1

[glcontext update]ビューサイズの変更については、電話しglViewport(0,0,oglWidth,oglHeight)て調整する必要がある場合があります。

于 2012-07-20T10:09:06.163 に答える
1

NSOpenGLViewを使用している場合は、ビューの形状が変更reshapeされたときに呼び出されるメソッドがあります。そこで、それに応じてサイズを呼び出しglViewportて更新する必要があります。

于 2012-07-20T11:00:06.270 に答える
1

誰かがこの問題に遭遇する場合glLoadIdentity();は、OpenGLの初期化の最初に追加するだけです。

于 2012-08-03T13:59:43.650 に答える