objective-c - 更新 NSOpenGLView 大小

标签 objective-c xcode macos cocoa opengl

我想在纹理大小更改时更新我的​​ 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 View 变黑,并且不再工作。

最佳答案

您可能需要调用[glcontext update]glViewport(0,0,oglWidth,oglHeight)来调整 View 大小的变化。

关于objective-c - 更新 NSOpenGLView 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577125/

相关文章:

git - 有人在 M1 CPU Mac 上成功运行 git-svn 吗?

iphone - 我遇到内存泄漏,负责的框架是 strdup。谁能给我一些线索?

xcode - Apple 的 OpenCL 基本编程示例无法在 GPU 上运行

ios - UILabel 重叠 UISwitch

iphone - Xcode 错误-线程 1 : signal SIGABRT

iphone - UITableView 搜索后应用程序崩溃

iOS 在运行时更改应用程序图标

macos - Mongorestore - 打开的文件太多 - mac os x

ios - 无法将自动布局约束添加到UITableViewCell中的元素

objective-c - 更改 UIImageView 的位置