简体   繁体   English

OpenGL (GLFW) 在 macOS Mojave 上不显示图像

[英]OpenGL (GLFW) does not show image on macOS Mojave

I updated macOS to Mojave, and some parts of my program does not work correctly.我将 macOS 更新为 Mojave,但我的程序的某些部分无法正常运行。 I want show coded pattern on GLFW window.我想在 GLFW 窗口上显示编码模式。 However, it does not show anything.但是,它没有显示任何内容。 Before updating this code works correctly.在更新此代码之前可以正常工作。 The code below is my code which does not work.下面的代码是我的代码,它不起作用。 Is there any part which cannot be use anymore?有没有不能再使用的部分? Or does anyone know about changes between High Sierra to Mojave?或者有人知道 High Sierra 到 Mojave 之间的变化吗?

void showPattern(float cr, float cg, float cb, int num, int p){
unsigned char *pat;
pat=(unsigned char *)malloc(sizeof(unsigned char)*pxsize*pysize*3);
int i, j, len;
int pt = 0;
len = (_patwidth)<pxsize?(_patwidth):pxsize;
glfwMakeContextCurrent(codewin);
for(i=0;i<pysize;i++){
    for(j=0;j<len;j++){
        if(p==POSITIVE){
            pat[pt+0] = cr * pattern[num].posi[4*j];
            pat[pt+1] = cg * pattern[num].posi[4*j];
            pat[pt+2] = cb * pattern[num].posi[4*j];
        }
        else{
            pat[pt+0] = cr * pattern[num].nega[4*j];
            pat[pt+1] = cg * pattern[num].nega[4*j];
            pat[pt+2] = cb * pattern[num].nega[4*j];
        }
        pt+=3;
    }
}

glfwMakeContextCurrent(codewin);
glColor4d(1.0, 1.0, 1.0, 0.0);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, pxsize, pysize, GL_RGB, GL_UNSIGNED_BYTE, pat);


glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f);
glVertex2f(-1.0f, 1.0f);
glTexCoord2f(1.0f, 0.0f);
glVertex2f(1.0f, 1.0f);
glTexCoord2f(1.0f, 1.0f);
glVertex2f(1.0f, -1.0f);
glTexCoord2f(0.0f, 1.0f);
glVertex2f(-1.0f, -1.0f);
glEnd();

glFlush();
glfwSwapBuffers(codewin);
free(pat);
}
  • macOS: 10.14 macOS:10.14
  • Xcode: 10.1代码:10.1
  • OpenGL: 2.1 OpenGL:2.1
  • GLFW: 3.3.0 GLFW:3.3.0
  • GLEW: 2.1发光:2.1

It's a bug in Mojave unfortunately.不幸的是,这是 Mojave 中的一个错误。 According to this Stuttering movement and black screen on macOS 10.14 & Xcode 10 it should be fixed in 10.14.2.根据此macOS 10.14 和 Xcode 10 上的口吃运动和黑屏,它应该在 10.14.2 中修复。

Until then a workaround is to build with the macOS 10.13 SDK which you can get here在此之前,解决方法是使用 macOS 10.13 SDK 进行构建,您可以在此处获取

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM