OpenGL (GLFW) не показывает изображение на MacOS Mojave - PullRequest
0 голосов
/ 02 ноября 2018

Я обновил macOS до Mojave, и некоторые части моей программы работают неправильно. Я хочу показать кодовый шаблон в окне GLFW. Однако это ничего не показывает. До обновления этот код работает правильно. Код ниже мой код, который не работает. Есть ли какая-то часть, которую больше нельзя использовать? Или кто-нибудь знает об изменениях между Высшей Сьеррой и Мохаве?

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

1 Ответ

0 голосов
/ 02 ноября 2018

К сожалению, в Мохаве это ошибка. В соответствии с этим заиканием и черным экраном на macOS 10.14 и Xcode 10 это должно быть исправлено в 10.14.2.

До тех пор обходной путь должен быть собран с помощью macOS 10.13 SDK, который вы можете получить здесь

...