- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我检查了文档,它说 OpenGL 版本必须至少为 1.5 才能使 glGenBuffers()
工作。用户的版本是1.5,但是函数调用会导致崩溃。这是文档中的错误,还是用户的驱动程序问题?
我正在为 VBO 使用这个 glGenBuffers()
,我如何检查用户是否支持这个?
编辑:我使用 glew 和 glewInit()
来初始化 VBO
Edit2: 我通过 glGenBuffersARB()
函数调用在用户身上工作。但我仍在寻找一种方法来确定何时应该使用 glGenBuffers()
以及何时应该使用 glGenBuffersARB()
以及如果没有 VBO 函数我应该何时使用 VertexArrays支持调用。
我还发现 if(GLEW_VERSION_1_5)
对用户返回 false,但是 GL_VERSION
给出 1.5.0,这没有任何意义!
最佳答案
我现在要告诉你远离 GLEW 或任何这些库,主要是因为它们没用,这就是我一直这样做的方式。
#ifndef STRINGIFY
#define STRINGIFY(x) #x
#endif
#ifdef WIN32
#include <windows.h>
#define glGetProcAddress(a) wglGetProcAddress(a)
#endif
#ifdef X11
#define glGetProcAddress(a) glXGetProcAddress ( \
reinterpret_cast<const unsigned char*>(a) \
)
#endif
#ifndef GetExtension
#define GetExtension(Type, ExtenName) \
ExtenName = (Type) \
glGetProcAddress(STRINGIFY(ExtenName)); \
if(!ExtenName) \
{ \
std:cout << "Your Computer Does Not " \
<< "Support GL Extension: " \
<< STRINGIFY(ExtenName) \
<< std::endl; \
exit(1); \
} \
else \
{ \
std::cout << "Loadded Extension: " \
<< STRINGIFY(ExtenName) \
<< std::endl; \
}
#endif
// then just use this :D
GetExtension(PFNGLGENBUFFERSARBPROC, glGenBuffersARB)
// after your done you can do this
#undef GetExtension
#undef glGetProcAddress
// you can then also undef the STRINGIFY macro
// though it does come in handy.
关于c++ - OpenGL:如何检查用户是否支持 glGenBuffers()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317062/
我目前正在将一个数组传递给一个函数,然后尝试将 glGenBuffers 与传递给该函数的数组一起使用。我想不出让 glGenBuffers 与我传递的数组一起工作的方法。我对指针的基础知识有很好的掌
事情是这样的:如果我将代码保留为 glGenBuffers(1, vertexBuffers),代码就会编译并运行。但是,我认为它应该是 2,因为 vertexBuffers 的大小为 2。 我错过了
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在使用 GLFW 和 GLEW。但是在我的对象初始化期间 glGenBuffers 抛出异常 void Character::init2D(glm::vec3 top, glm::vec3 bot
我认为这是不可能的,但我在我的软件中看到了它。我已经构建了一个包装器对象来管理我的缓冲区对象(我正在使用共享上下文,所以我不能使用 VAO),并且在我开始使用 IBO(glDrawElements()
glGenBuffers(1, &bufferID) 将 ID 分配到 bufferID 失败的原因是什么? #define GL_GLEXT_PROTOTYPES 1 #include #incl
当我使用 glGenBuffers 创建一个带有指向它的指针的 VBO 时,我(认为)正在分配内存。对 glGenBuffers 的后续调用应该返回不同的指针,但是之前分配的内存呢?在 Nehe 示例
我正在使用 Windows,我注意到很多函数都是灰色的,因为我猜想 #ifdef GL_GLEXT_PROTOTYPES 没有定义。其中之一是 VBO 扩展。我应该只定义 GL_GLEXT_PROTO
我一直在实现一个基于本教程的小型 opengl 应用程序: http://openglbook.com/the-book/chapter-4-entering-the-third-dimension/
我检查了文档,它说 OpenGL 版本必须至少为 1.5 才能使 glGenBuffers() 工作。用户的版本是1.5,但是函数调用会导致崩溃。这是文档中的错误,还是用户的驱动程序问题? 我正在为
我似乎找不到 glGenBuffer Qt5 中的函数,我的包含列表看起来像 #include #include #include #include #include #include #
好吧,我从 OpenGL 开始,通过阅读有关 glBindBuffer 的文档,我有点困惑。 "glBindBuffer binds a buffer object to the specified
鉴于我们使用的是 OpenGL 4.5 或支持 GL_ARB_direct_state_access扩展,我们有新功能 glCreateBuffers . 此函数与 glGenBuffers 具有相同
我在其他地方看到过与我类似的问题,但没有人回答或解决我的问题。 在创建Context之后、调用glfwMakeContextCurrent()之前,我已经正确启动了GLEW 启动后,我尝试使用 glG
所以,我有一个顶点数组和一堆属性(顶点位置、颜色、法线、uvs...)但是有没有办法发送没有属性的数据或每帧生成缓冲区?或者有更好的方法吗? (具体来说,我在做一个批量渲染系统) 最佳答案 分配一次缓
当我使用 opengl 3.3 时,glGenBuffers() 和 glBufferData() 等函数工作得很好,但现在我使用的是 4.3,我想使用这些函数的更新版本,例如 glCreateBuf
当我运行this code时test_rbm.py 位于名为 python-deepnets 的目录中。 我遇到错误。 OpenGL.error.NullFunctionError:尝试调用未定义的函
在关于 OpenGL 3.0+ 的教程中,我们以这种方式创建顶点数组对象和顶点缓冲区对象: GLuint VAO, VBO; glGenVertexArrays(1, &VAO); glGenBuff
我正在使用支持 OpenGL 模式的 Ogre3d 引擎。 我有一个名为 Chunk 的对象,它创建了一个 Ogre::ManualObject。因为 ManualObject 的创建需要一些时间,所
我试图避开 PyOpenGL 的缓慢和高开销的后期绑定(bind)前端,并专门使用原始后端实现... 我遇到的问题是我似乎无法弄清楚前端如何将后端函数 glGenBuffers( n, buffers
我是一名优秀的程序员,十分优秀!