在Mac OSX 10.8.4上具有GLFW3的现代OpenGL-缺少glGenVertexArrays()和glBindVertexArray()吗?

TATN

我正在尝试为Xcode 5(Mac OSX 10.8.4)上的OpenGL项目设置GLFW3。我已经成功安装了项目并将其链接到GLFW3,没有问题。我什至在项目中成功创建了一个窗口,并且能够通过该窗口检测到鼠标和键盘输入,因此我相信我正确连接了GLFW3(或者至少看起来如此)。

但是,当我尝试绘制对象时发生了问题。这是出现错误的代码片段:

#include <GLFW/glfw3.h>    

void LoadObject()
{
    glGenVertexArrays(1, &VAO_myObj); // ERROR : Use of undeclared identifier 'glGenVertexArrays'
    glBindVertexArray(VAO_myObj);     // ERROR : Use of undeclared identifier 'glBindVertexArray'


    glGenBuffers(1, &VBO_myObj);                // No error
    glBindBuffer(GL_ARRAY_BUFFER, VBO_myObj);   // No error

    glBufferData(blah blah blah);      // No error

    glEnableVertexAttribArray(0);      // No error
    glVertexAttribPointer(blah);       // No error


    glBindBuffer(GL_ARRAY_BUFFER, 0);  // No error
    glBindVertexArray(0);              // ERROR : Use of undeclared identifier 'glBindVertexArray'
}

因此,这使我相信GLFW3无法以某种方式链接到那些功能(?)。当我在Xcode中键入“ glGen ...”时,我在弹出窗口中仅看到以下4个函数:

void glGenBuffers(GLsizei n, GLuint * buffers)
GLuint glGenLists(GLsizei range)
void glGenQueries(GLsizei n, GLuint * ids)
void glGenTextures(GLsizei n, GLuint * textures)

因此,很可能确实在库中缺少glGenVertexArrays()。

与“ glBind ...”类似,当我将名称键入Xcode时,只有这些出现在弹出窗口中:

void glBindAttribLocation(GLuint program, GLuint index, const GLchar * name)
void glBindBuffer(GLenum target, GLuint buffer)
void glBindTexture(GLenum target, GLuint texture)

没有,我在列表中的哪里看到glBindVertexArray()。

因此,似乎缺少glGenVertexArrays()和glBindVertexArray()。但是他们怎么会错过如此重要的职能呢?因此,我自己很可能在这里错过了一些东西。

我只是想知道以前是否有人在Xcode 5的GLFW3上遇到过此问题?顺便说一句,我没有使用glew或任何其他OpenGL支持的东西。我只使用GLFW3。

对于此问题,我将不胜感激。

在旁注中,您推荐使用哪种工具(在glfw旁边)在Mac上打开一个现代的(基于着色器的)OpenGL项目的窗口?

预先感谢您的帮助。

安东·科尔曼

您需要包含<OpenGL/gl3.h>在OS X上才能使用OpenGL 3.2核心API调用。请注意,如果同时包含两者<OpenGL/gl.h>,则<OpenGL/gl3.h>可能会收到编译器警告,这是因为有gl3.h两个目的:

  1. 提供核心OpenGL 3.2的功能,枚举和typedef
  2. 消除了在核心OpenGL 3.2中无效的不推荐使用的函数,枚举和typedef


它们实际上是互斥的,正确的标头取决于您使用的上下文版本:

  • MacOS X 10.7 + :( OpenGL:2.1

    • #include <OpenGL/gl.h>


  • MacOS X 10.7 + :( OpenGL:3.2核心

    • #include <OpenGL/gl3.h>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mac OSX上的Crontab

来自分类Dev

Java 7和Java 8可以在OSX上共存吗

来自分类Dev

在Mac OSx上安装Android Studio时缺少平台工具

来自分类Dev

Mac OSX:使用dtruss吗?

来自分类Dev

Rad Studio 10 和 Mac OSX Sierra(虚拟机来宾)

来自分类Dev

在Mac OSX上安装pylab

来自分类Dev

外部HD上的Mac OSX VirtualBox和Windows 7 Guest

来自分类Dev

Mac Osx和rbenv上的Grunt Contrib Compass错误

来自分类Dev

在 Mac OSX 上安装 pymssql 和 cython 失败

来自分类Dev

在Mesa 10和GLFW3中使用OpenGL核心配置文件

来自分类Dev

在Mesa 10和GLFW3中使用OpenGL核心配置文件

来自分类Dev

带有LWJGL的Mac OSX El Capitan上的OpenGL 3.3

来自分类Dev

带有LWJGL的Mac OSX El Capitan上的OpenGL 3.3

来自分类Dev

使用g ++ mac包含GLEW,glfw3和glm

来自分类Dev

Mac OSX nslookup和resolveip之间的区别

来自分类Dev

Home brew Apache error_log child pid * exit signal mac osx 10.11 AMP 堆栈上的浮点异常 (8)

来自分类Dev

无法在Mac OSX上安装PG gem

来自分类Dev

无法在Mac OSX上安装Sonarqube

来自分类Dev

在Mac OSX 10.9.2上未链接libpng

来自分类Dev

使JOptionPane.showConfirmDialog()在Mac OSX上运行

来自分类Dev

.arangosh.rc不在Mac OSX上

来自分类Dev

Mac OSx上的OpenCL内核错误

来自分类Dev

无法在Mac OSX上设置Lucene

来自分类Dev

使用scons在Mac OSX 10.9上构建

来自分类Dev

在Mac OSX上找不到python模块

来自分类Dev

在Mac OSX上使用pypy安装numpy

来自分类Dev

Mac OSX上的C库安装

来自分类Dev

Mac / OSX上的Git非常慢

来自分类Dev

Mac OSX上的Intellij不显示javadoc