gpt4 book ai didi

Cocoa OpenGLView 与 VAO

转载 作者:行者123 更新时间:2023-12-03 17:05:00 30 4
gpt4 key购买 nike

我希望在 Cocoa 上制作一个自定义的 NSOpenGL View 。但是,我在使用 VAO 时遇到了问题。特别是,运行时,这个虚拟测试 View :

/// OpenGLTestView.h:
@interface OpenGLTestView : NSOpenGLView

- (void)prepareOpenGL;

@end

/// OpenGLTestView.m:
#import <OpenGL/gl3.h>

@implementation OpenGLTestView

- (void)prepareOpenGL {
GLenum error;
GLuint vertex_array;
glGenVertexArrays(1, &vertex_array);
error = glGetError();
switch (error) {
case GL_NO_ERROR:
printf("GL_NO_ERROR\n");
break;
case GL_INVALID_ENUM:
printf("GL_INVALID_ENUM\n");
break;
case GL_INVALID_VALUE:
printf("GL_INVALID_VALUE\n");
break;
case GL_INVALID_OPERATION:
printf("GL_INVALID_OPERATION\n");
break;
case GL_INVALID_FRAMEBUFFER_OPERATION:
printf("GL_INVALID_FRAMEBUFFER_OPERATION\n");
break;
case GL_OUT_OF_MEMORY:
printf("GL_OUT_OF_MEMORY\n");
break;
default:
printf("Unknown error\n");
break;
}
}

@end

在输出中打印此内容:

GL_INVALID_OPERATION

Apple 对 cocoa VAO 做了什么特别的事情吗?或者我遗漏了一些初始化步骤?

最佳答案

问题是我没有创建 OpenGL 3.2 上下文(而是在其上调用 3.2 函数)。使用设置为 NSOpenGLProfileVersion3_2Core 的 NSOpenGLPFAOpenGLProfile 属性来创建新上下文,然后使用新上下文在 NSOpenGLView 上调用 - (void)setOpenGLContext:(NSOpenGLContext *)context 可以解决问题。

关于Cocoa OpenGLView 与 VAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11422798/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com