基本上就是這樣,爲什麼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