2017-01-23 6 views
0

Я изо всех сил стараюсь сделать окно с GLFW3.2.1 на Mac для OpenGL ES 2.0 .. Возможно ли создать окно OpenGL ES 2.0 на macOS?Можно ли создать окно для OpenGL ES 2.0 с GLFW 3.2.1 на Mac?

Графическая карта использует Iris Pro или Radeon Pro 455, у них есть GL_ARB_ES2_совместимость.

код, как показано ниже:

#include <GL/glew.h> 
#include <GLFW/glfw3.h> 

int main(int argc, char *argv[]) { 

    if (!glfwInit()) { 
     fprintf(stderr, "Failed to initialize GLFW\n"); 
     getchar(); 
     return -1; 
    } 

    glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2); 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); 
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 

    GLFWmonitor *monitor = glfwGetPrimaryMonitor(); 
    const GLFWvidmode *mode = glfwGetVideoMode(monitor); 

    window = glfwCreateWindow(mode->width, mode->height, "Window", NULL, NULL); 

    if (window == NULL) { 
     fprintf(stderr, 
       "Failed to open GLFW window.\n"); 
     getchar(); 
     glfwTerminate(); 
     return -1; 
    } 
    ... 

Я всегда не в состоянии сделать окно ... Любые намеки приветствуются!

ответ

1

tl; dr: Нет, это невозможно.

Я борюсь с тем же. В настоящее время это связано с внутренней проверкой в ​​GLFW 3.2.1, которая мешает вам создавать контекст OpenGL ES. Посмотрите nsgl_context.m:

if (ctxconfig->client == GLFW_OPENGL_ES_API) 
{ 
    _glfwInputError(GLFW_API_UNAVAILABLE, 
        "NSGL: OpenGL ES is not available on OS X"); 
    return GLFW_FALSE; 
} 

В принципе, если вы запрашиваете GLFW_OPENGL_ES_API, ваше окно всегда будет нулевым.

В настоящее время я ищу способ обойти это, включая библиотеки OpenGL ES 2.0, найденные на MoltenGL, но пока не повезло.

https://moltengl.com/downloads/