我正努力在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;
}
...
我总是无法制作窗户......欢迎任何提示!
答案 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库,但到目前为止还没有运气。