在我将应用程序覆盖到以前的应用程序之后,我回到之前的应用程序并遇到一些错误:
任何人都知道为什么会这样?
答案 0 :(得分:0)
我遇到了完全相同的问题(只有在调整大小后才能正确更新视图),除了我在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]..
}
像这样。
在这些更改之后,当窗口获得焦点时,它会自行重绘(没有任何调整大小的东西:))。
希望这有帮助!