检查gpu是否存在VBO

时间:2012-11-22 09:05:31

标签: c++ opengl opencl gpgpu

我得到了一个(预制的)Opengl顶点缓冲对象(VBO)
但我不知道在opencl中提交它是GLuint值。

是否有任何opengl库(如glew)检查给我现有的VBO及其当前在gpu上的相应GLuint(或类似的东西......我只知道数据输入是元素的数量数组和数组大小)

编辑: 为什么我不知道GLuint ...

它是cinema4d opengl api中的一个函数(必须使用这个函数来访问cinema4d VBO)..这个函数(或者我应该说很多类函数)会自动做这样的事情

allocSubBuffer ... with * pBuffer(面向对象的C ++) mapBuffer ..returns void * pData 然后将此* pData转换为向量* pvData 然后将数组值传递给* pvData 然后unmapbuffer ... 在此之后有一个叫做pFactory的东西......它会自动分配一个新的VBO ...

2 个答案:

答案 0 :(得分:0)

  

但我不知道它的GLuint值

那你如何使用OpenGL的VBO?你也必须在OpenGL中glBindBuffer。 OpenGL对象ID很珍贵,保持密切,并保证它们的安全。

创建OpenGL对象而不记住其名称就像分配一些内存newmalloc然后丢弃指针:浪费内存。

答案 1 :(得分:0)

也许glGetIntegerv(GL_ARRAY_BUFFER_BINDING,& buf)会为你做的伎俩。即你强制某种方式c​​inema4d绑定缓冲区,然后查询当前绑定的缓冲区ID。