首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSGL:未能创建OpenGL像素格式

NSGL:未能创建OpenGL像素格式
EN

Stack Overflow用户
提问于 2014-12-08 19:08:11
回答 1查看 2.2K关注 0票数 2

我的代码在这里,这将返回一个错误: NSGL:未能创建OpenGL像素格式

错误回调是来自glfw的标准回调。

代码语言:javascript
复制
int main(int argc, const char * argv[]) {

glfwSetErrorCallback(error_callback);

if (!glfwInit ()) {
    fprintf (stderr, "ERROR: could not start GLFW3\n");
    return 1;
}
GLFWwindow* window = glfwCreateWindow (640, 480, "Hello Triangle", NULL, NULL);

glfwMakeContextCurrent (window);

if (!window) {
    fprintf (stderr, "\nERROR: could not open window with GLFW3\n");
    return -1;
}

// start GLEW extension handler
glewExperimental = GL_TRUE;
glewInit ();

// get version info
const GLubyte* renderer = glGetString (GL_RENDERER); // get renderer string
const GLubyte* version = glGetString (GL_VERSION); // version as a string
printf ("Renderer: %s\n", renderer);
printf ("OpenGL version supported %s\n", version);

// tell GL to only draw onto a pixel if the shape is closer to the viewer
glEnable (GL_DEPTH_TEST); // enable depth-testing
glDepthFunc (GL_LESS); // depth-testing interprets a smaller value as "closer"

/* OTHER STUFF GOES HERE NEXT */

// close GL context and any other GLFW resources
glfwTerminate();
return 0;
}

有人知道问题出在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-10 10:22:36

在我的OSX机器上,这个问题是由于模具缓冲深度设置,这是16位。OSX外观(或内置显卡)只能处理8位。由于我对OpenGL一点也不感兴趣,所以我还不能推理,但一旦我有了更深入的理解,我就会更新答案。

负责设置缓冲区深度的代码如下(更正版本):

代码语言:javascript
复制
glfwWindowHint(GLFW_STENCIL_BITS, 8);

在使用glfwCreateWindow(...)创建窗口之前执行

希望这会有所帮助:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27365099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档