基本上就是這樣,爲什麼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. 第二個參數是什麼?
- 3. 什麼把默認的第一個參數,而不是在Python中第二?
- 4. 爲什麼第一種方法是promisifying工作而不是第二種?
- 5. date函數中的第二個參數是什麼意思?
- 6. 爲什麼不是第一次驗證第二個驗證?
- 7. getline中第二個參數的用途是什麼?
- 8. waitpid()的第二個參數是什麼意思?
- 9. 茉莉花toBeClose什麼是第二個參數?
- 10. 模型中的第二個參數是什麼(「pagemodel」,'pages')
- 11. 警報方法的第二個參數是什麼意思?
- 12. savedInstanceState.getInt中的第二個參數是什麼?
- 13. Ruby中TCPSocket.send的第二個參數是什麼?
- 14. Android,Drawable.createFromStream(is,srcname):第二個參數的含義是什麼?
- 15. ListView中的AddHeaderView中的第二個參數是做什麼的?
- 16. splice方法的第二個參數是做什麼的?
- 17. 什麼是ClassPathXmlApplicationContext中的第二個參數(String path,<?> clazz)
- 18. Kaiser濾波器的第二個參數應該是什麼?
- 19. woocommerce_account_menu_items過濾器的第二個參數是什麼?
- 20. WordPress wp_get_nav_menu_items - 第一個參數是什麼?
- 21. Firebase.Auth.GoogleAuthProvider.GetCredential的第一個參數是什麼?
- 22. 什麼是LLVMBlockAddress()第一個參數?
- 23. 爲什麼隱式轉換不適用於第二個參數?
- 24. 這是爲什麼這個工作第一次罰款,但不是第二次?
- 25. charAt(0)不返回第一個數字,而是第二個
- 26. 什麼是Angularjs $編譯功能,第二個和第三個參數
- 27. 什麼是第二範式?
- 28. Javascript--爲什麼它只出現在第一格而不是第二格?
- 29. CATCH塊不會第一次執行,而是第二次執行 - 爲什麼?
- 30. airflow trigger_dag execution_date是第二天,爲什麼?
這不是一個指針。它是一個與指針相同大小的整數類型。 – 2014-11-05 13:20:18
@BenVoigt:這是一個答案,而不是評論:) – datenwolf 2014-11-05 13:35:17
@datenwolf:不,我沒有解釋爲什麼這個大小的整數比那個更受歡迎。 – 2014-11-05 13:38:43