以前のアプリケーションにアプリケーションを重ねた後、以前のアプリケーションに戻ると、いくつかのエラーが発生します。
- 特定のコンポーネントが消えた
- コンポーネントを表示する唯一の方法は、ウィンドウのサイズを変更することです
- キャンバス全体を再描画するようです。
- 奇妙なことは、欠落しているコンポーネントと描画された画像がいくつかしかないことです
- いつもではありませんが、数回だけです
- 問題を再現する確実な方法が見つかりませんでした。
なぜこれが起こっているのか誰にも考えがありますか?
以前のアプリケーションにアプリケーションを重ねた後、以前のアプリケーションに戻ると、いくつかのエラーが発生します。
なぜこれが起こっているのか誰にも考えがありますか?
OSXゲームでOpenGL描画を使用したことを除いて、まったく同じ問題が発生しました(サイズ変更後にのみビューが正しく更新されました)。
これを追加することで私の問題は解決しました:
GLint vblSynch = 1;
[[self openGLContext] setValues:&vblSynch forParameter:NSOpenGLCPSwapInterval];
私のカスタム NSOpenGLView init メソッドで。それから私は実装しました:
- (void)drawRect:(NSRect)rect
{
[self destroyFramebuffer]; // glDeleteFramebuffers..
[self createFramebuffer]; // [super prepareOpenGl], glGenFrame(Render)Buffers, bind buffers, etc
[self drawView]; // [[self openGLContext] makeCurrentContext], make some drawing, [[self openGLContext] flushBuffer]..
}
このような。
これらの変更の後、ウィンドウがフォーカスされると、ウィンドウ自体が再描画されます(サイズ変更なし:))。
お役に立てれば!