Dav*_*son 15 opengl macos glew
我花了一天时间努力让我的简单引擎在Mac上运行.我有SDL工作,现在唯一给麻烦的是opengl.该引擎使用现代opengl(基于着色器),因此需要GLEW.我已经尝试了从fink到MacPorts的所有东西来安装它,但没有任何作用.
我所获得的最大成功是从源头构建它.首先我得到一个错误说,'GL/glu.h' no such file or directory found.所以我重命名了包含,OpenGL/glu.h并解决了这个问题.但是现在我得到了这个错误,ld: unknown option: -shared我完全陷入了困境.
如果有人知道如何做,那也是静态构建.
yih*_*gho 27
您可以使用Homebrew为您完成工作:
brew install glew
Run Code Online (Sandbox Code Playgroud)
dat*_*olf 13
该引擎使用现代opengl(基于着色器),因此需要GLEW
GLEW不是使用现代OpenGL功能的先决条件.它是一个加载扩展的功能,而不是方法的唯一的一个.你在MacOS X上,所以扩展系统对你来说没用,因为支持的OpenGL版本完全取决于操作系统和可用的框架.Apple自己开发OpenGL驱动程序,它们提供的扩展只是那些用于OpenGL规范中没有的功能(即特定于供应商和EXT)的扩展.您所需要的只是一个足够新的OpenGL框架版本.2006年之后发布的任何MacOS X都可以实现.
更新20180912-不要使用GLEW。只是不值得麻烦...
我已经使用以下来源安装了GLEW:
使GLEW_DEST =“ $ HOME / local” OPT =“-march = core2 -O2” install.all
您的优化和目的地可能会有所不同。这样会产生一个libGLEW.a,libGLEWmx.a及其对应的dylib $HOME/local/lib。本pkgconfig次目录也将包括glew.pc。GLEW也不总是与其他人一起玩。必须将全局变量设置glewExperimental为,并且需要注意其他标头的包含顺序:<OpenGL/gl3.h>或<glfw.h>,等等。
如果我可以提供一些建议,请不要为现代GL编程而使用SDL。如果您想在OS X上使用纯净的现代GL。-考虑类似:
#if defined (__APPLE_CC__)
#include <OpenGL/gl3.h>
#else
#include <GL/gl3.h> /* assert OpenGL 3.2 core profile available. */
#endif
#define GLFW_INCLUDE_GL3 /* don't drag in legacy GL headers. */
#define GLFW_NO_GLU /* don't drag in the old GLU lib - unless you must. */
#include <GL/glfw.h> /* simple and easy to use. omit legacy GL. */
Run Code Online (Sandbox Code Playgroud)
安装GLFW也非常容易:
> env PREFIX =“ $ HOME / local” CFLAGS =“-march = core2 -O2”使可可可可安装
同样,您的设置可能有所不同。
20160412:正如其他人指出的那样,我对SDL的评论已过时。特别是如果您正在开发另一个引擎。我认为glfw3是在OSX上制作现代OpenGL应用程序的简便方法。它是编写和维护得很好的代码,(正确地!)重点放在GL和事件处理上。显然,从“引擎”的角度来看,SDL2提供了可移植的扩展视频API,音频API,线程API等。尽管使用C11和C ++ 11,甚至线程API抽象层也可能是多余的。
GLEW的问题在于,如果没有大量用户干预,就无法处理多个上下文。对于OSX,这不是问题,因为OSX提供了核心配置文件API,并且不需要加载“功能点”。IIRC,X上的GL(DRI?)也有这个-但是我对此可能是错的。还有其他装载机。我仍在等待所有这些规则,以确保在必要时为多个上下文加载不同的函数指针,并使用线程局部(甚至是pthread键)进行正确的调度,这可以从最新的gl中生成Khronos的.xml,或其他任何人...
20180912
我认为目前最简单的方法是使用GLFW提供上下文,并使用GLAD解析GL函数指针。唯一的缺点是无法有效管理多个GL上下文。这就是GLFW当前在其演示中使用的...在这一点上,我将完全忘记GLEW。
| 归档时间: |
|
| 查看次数: |
35700 次 |
| 最近记录: |