我正在尝试在OS X Yosemite上构建并运行以下项目来玩ray ray&着色器:
https://github.com/lightbits/ray-march/blob/master/raymarch-dev.md
我不太熟悉OS X上的编译,也不熟悉openGL。
错误:
我得到了要编译的项目,但«glfwOpenWindow»失败了,
glfwOpenWindow(
width, height,
8, 8, 8, 0,
24, 8,
false )
我没有收到任何错误消息,也不知道失败的原因。我认为问题来自于我为构建代码库所做的工作。
我做了什么:
外部包括:
#include <glload/gl_3_1_comp.h> // OpenGL version 3.1, compatability profile
#include <glload/gll.hpp> // The C-style loading interface
#include <GL/glfw.h> // Context
#include <glm/glm.hpp> // OpenGL mathematics
#include <glm/gtc/type_ptr.hpp> // for value_ptr(matrix)
#include <string>
我在“opengl.h”中替换了
#include <glload/gl_3_1_comp.h> // OpenGL version 3.1, compatability profile
#include <glload/gll.hpp> // The C-style loading interface
用,
`#include <OpenGL/gl3.h>`
我在“opengl.cpp”中删除了。
if(glload::LoadFunctions() == glload::LS_LOAD_FAILED)
return false;
我当前的编译命令是:
g++ main.cpp fileio.cpp opengl.cpp -I /usr/local/include/GL/ -L /usr/local/lib/ -framework OpenGL -lGLFW
答案 0 :(得分:0)
从链接的代码中,我们{/ 3}}与
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, 0); // 0 lets the system choose the profile
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, OPENGL_VERSION_MAJOR);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, OPENGL_VERSION_MINOR);
glfwOpenWindowHint(GLFW_FSAA_SAMPLES, fsaa);
glfwOpenWindowHint(GLFW_WINDOW_NO_RESIZE, GL_TRUE);
一起使用
const int OPENGL_VERSION_MAJOR = 3;
const int OPENGL_VERSION_MINOR = 1;
所以这是请求一个OpenGL 3.1上下文_在OSX上从不支持? OSX onlz支持高达GL 2.1的legacz上下文,或者以GL 3.2开头的GL核心配置文件上下文。 GLFW当然无法创建GL上下文。
我没有检查其余的代码,但你可能会明确地要求GL 3.2核心配置文件。