基本上就是这样,为什么glBufferData需要一个指针而不是int?这个arg应该是缓冲区对象的大小,那为什么不用GLsizei呢?上glBufferData https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtmlglBufferData第二个参数是GLsizeiptr而不是GLsizei,为什么?
5
A
回答
10
当顶点缓冲器对象是introduced via the OpenGL extension mechanism,新型GLsizeiptrARB
创建和下面的理由
OpenGL的文档被提供:
什么类型应<偏移>和<大小>参数使用?
已解决:我们定义了可在64位 系统上运行良好的新类型,类似于C的“intptr_t”。当预计 值可能超过20亿时,应使用新类型“GLintptrARB” 来代替GLint。 只要预计 可能超过20亿,应使用新型“GLsizeiptrARB” 来代替GLsizei。这两种类型被定义为 有符号整数足以包含任何指针值。作为 的结果,它们自然会在具有64位甚至更大指针的系统 上扩展到更大数量的位。
在此扩展中引入的偏移量的类型为GLintptrARB, 与其他GL参数一致,但必须为非负数,但是算术性(不是uint),并且不是大小;例如,对于 示例,TexSubImage * D的xoffset参数的类型为GLint。 缓冲区大小键入GLsizeiptrARB。
考虑使这些类型无符号的想法,但是最终被拒绝的原因是支持缓冲区大于2 GB在32位系统上不被认为是重要的。
当此扩展被接受为核心的OpenGL,该类型的扩展兼容型GLsizeiptrARB
有一个规范的名称GLsizeiptr
您在函数签名今天所看到的。
相关问题
- 1. wordpress:add_action:为什么第二个参数是一个数组而不是函数名
- 2. OpenGL glBufferData - >为什么&vertices [0]而不是&vertices作为数据参数?
- 3. 什么是NSLocalizedString()的第二个参数?
- 4. 第二个参数是什么?
- 5. 什么把默认的第一个参数,而不是在Python中第二?
- 6. 为什么第二个参数必须是一个列表
- 7. 为什么BeautifulSoup工作第二次解析,而不是第
- 8. 在ruby中,CSV.open()的第二个参数/参数是什么?
- 9. 为什么第一种方法是promisifying工作而不是第二种?
- 10. date函数中的第二个参数是什么意思?
- 11. 为什么第二个参数不是基于第一个参数的标准进行过滤?
- 12. 为什么不是第一次验证第二个验证?
- 13. 为什么perl的unpack()认为第二个参数是一个字符串?
- 14. Angular指令的第二个参数,它为什么是一个函数?
- 15. Kaiser滤波器的第二个参数应该是什么?
- 16. 第二个lambda中的参数是做什么的?
- 17. Android,Drawable.createFromStream(is,srcname):第二个参数的含义是什么?
- 18. 什么是dataobjectmethod的第二个参数,asp.net BLL
- 19. ListView中的AddHeaderView中的第二个参数是做什么的?
- 20. $()的第二个参数是什么意思?
- 21. Ruby中TCPSocket.send的第二个参数是什么?
- 22. 茉莉花toBeClose什么是第二个参数?
- 23. bootstrap()的第二个参数究竟是什么?
- 24. getline中第二个参数的用途是什么?
- 25. splice方法的第二个参数是做什么的?
- 26. Rails动态查找器中的第二个参数是什么?
- 27. 警报方法的第二个参数是什么意思?
- 28. std :: vector.resize()中的第二个参数是什么意思?
- 29. savedInstanceState.getInt中的第二个参数是什么?
- 30. 在Python Flask中Session.pop方法的第二个参数是什么?
这不是一个指针。它是一个与指针相同大小的整数类型。 – 2014-11-05 13:20:18
@BenVoigt:这是一个答案,而不是评论:) – datenwolf 2014-11-05 13:35:17
@datenwolf:不,我没有解释为什么这个大小的整数比那个更受欢迎。 – 2014-11-05 13:38:43