2017-01-23 100 views
0

我很努力在Mac上爲OpenGL ES 2.0製作GLFW3.2.1窗口.. 是否有可能在macOS上製作OpenGL ES 2.0窗口?是否可以在Mac上用GLFW 3.2.1製作OpenGL ES 2.0的窗口?

顯卡正在使用Iris Pro或Radeon Pro 455,它們具有GL_ARB_ES2_compatibility。

的代碼如下圖所示:

#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,你的窗口永遠是零。

我目前正在尋找一種解決方法,包括在MoltenGL上找到的OpenGL ES 2.0庫,但目前爲止還沒有運氣。

https://moltengl.com/downloads/