【问题标题】:OpenGL (GLFW) does not show image on macOS MojaveOpenGL (GLFW) 在 macOS Mojave 上不显示图像
【发布时间】:2018-11-02 22:42:01
【问题描述】:

我将 macOS 更新为 Mojave,但我的程序的某些部分无法正常运行。我想在 GLFW 窗口上显示编码模式。但是,它没有显示任何内容。在更新此代码之前可以正常工作。下面的代码是我的代码,它不起作用。有没有不能再使用的部分?或者有人知道 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
  • Xcode: 10.1
  • OpenGL:2.1
  • GLFW:3.3.0
  • GLEW:2.1

【问题讨论】:

    标签: c xcode opengl glfw macos-mojave


    【解决方案1】:

    不幸的是,这是 Mojave 的一个错误。 根据Stuttering movement and black screen on macOS 10.14 & Xcode 10,它应该在 10.14.2 中修复。

    在此之前,一种解决方法是使用 macOS 10.13 SDK 进行构建,您可以获得 here

    【讨论】:

    • 我尝试了macOS 10.14.2 Beta版,但我的程序仍然没有显示任何内容...有人猜到原因了吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 2019-02-22
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    相关资源
    最近更新 更多