更新到 MacOs Mojave 10.14 后是否有 OpenGL 黑屏和伽玛校正?

2024-04-09

我不小心更新了我的 Mac,OpenGL 现在在最新的 MacOS Mojave 中已被弃用。我正在使用 OpenGL + GLUT(我知道这很旧,但我只需要一个简单的程序)并在终端上运行(不使用 Xcode)。使用在 Sierra 中完美运行的相同程序,我在 Mojave 中收到了很多 OpenGL 已弃用的警告,并设法使用以下命令抑制所有警告-Wno-deprecated-declarations,但现在我只看到黑屏。

Mojave 更新后,我在 OpenGL 上读到了很多与黑屏相同的问题,例如OpenGL 上黑屏 https://stackoverflow.com/questions/52657002/black-screen-on-opengl , and Mac 莫哈维 + opengl 问问题 https://stackoverflow.com/questions/52509427/mac-mojave-opengl。但到目前为止,他们都没有接受答案,并且提供的答案对我不起作用。

这是我的主循环:

Code :

static void mainLoop(void)
{    glClearColor(0,0,0,0);
    glClear(GL_COLOR_BUFFER_BIT);
    //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_FRAMEBUFFER_SRGB);

    argDrawMode2D(vp);                      //draw to the screen

    char string[256];
    glColor3f(1,1,1);
    sprintf(string, "Some strings", string1 );
    argDrawStringsByIdealPos( string, 10.0, 25.0 );

    argSwapBuffers();   //clear the buffer
    glFlush();
}

我有 2 个问题:

  1. 您对如何解决黑屏问题有什么建议吗?我已经尝试过但仍然出现黑屏:

    • Change glFlush() into glutSwapBuffers()无需打电话即可冲水

    • 更改glClear(GL_COLOR_BUFFER_BIT) into glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)(这会引起更多警告)。我也尝试将颜色设置为glClearColor(255,255,255,0)(白色),但清除颜色缓冲区后,只有黑屏。所以 glClear 不起作用。

    • 尝试使用 reshape 来调整窗口大小。

    • 将终端的 Xcode 编译器更新到最新版本(Beta)

  2. 我正在使用 OpenGL 的伽玛校正glEnable(GL_FRAMEBUFFER_SRGB),在莫哈韦沙漠之后我面临着这个

    “断言失败:(值 >= 0.0f && 值

    openGL gamma 校正不再起作用了吗?

有什么建议吗?

[更新1]

上面的步骤 3:尝试使用 reshape 来调整窗口大小。

在我更改为全屏后,这个似乎可以工作一点,如下莫哈韦“黑客” http://people.bath.ac.uk/abscjkw/ComputerPrograms/C++programs/OpenGL/MojaveOpenGL.cpp来自巴斯大学,将窗口大小调整为初始大小以外的其他尺寸。当我设置为另一个尺寸(更小/更大)时它失败了,但是当我使用设置为全屏时它失败了glutFullScreen();,我的屏幕已渲染,到目前为止,帧过渡并不平滑,我仍在处理它。

另外,我将 fps 设置为 60fps 并将其打印出来。在这次黑客攻击之后,尽管我的 Mac 刷新率只有 90Hz,但我在这里获得了 100-200 fps 的随机 fps。这是因为resize命令,当我注释掉resize命令时,我得到了黑屏,但终端中打印的fps是正确的(大约60fps)。我意识到这个黑客在未来也是不可靠的。因此,这里仍然需要建议,或其他解决方案,而不是调整大小。

[更新2]

我尝试使用 GLFW 更改我的整个项目。即使使用 GLFW,仍然存在同样的黑屏问题。因此这不是 API 问题。

[更新3]

尝试彻底卸载 XCode 10(随 Mojave 更新一起提供)。然后安装 XCode 9.41 (Sierra) 和 Command Tools 9.41。截至目前,GLFW 有效,而 GLUT 仍然不起作用。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新到 MacOs Mojave 10.14 后是否有 OpenGL 黑屏和伽玛校正? 的相关文章

随机推荐