是否可以在Mac上使用GLFW 3.2.1为OpenGL ES 2.0制作窗口?

时间:2017-01-23 11:34:44

标签: opengl-es glfw

我正努力在Mac上为OpenGL ES 2.0制作GLFW3.2.1窗口。 是否可以在macOS上创建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 个答案:

答案 0 :(得分: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/