簡體   English   中英

OpenGL是否等效於GL_POINT_SIZE_ARRAY_OES?

[英]OpenGL equivalent to GL_POINT_SIZE_ARRAY_OES?

我正在嘗試在一個小型Mac應用程序中繪制點精靈。 我希望每個精靈都有自己的大小,並且我知道OpenGL ES的客戶端狀態為“ GL_POINT_SIZE_ARRAY_OES”。

我進行了一些谷歌搜索,發現有一個類似的值“ GL_POINT_SIZE_ARRAY_APPLE”(您會認為)應該執行相同的操作。 但是由於某種原因,它似乎沒有。 這是我的繪圖代碼:

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_POINT_SIZE_ARRAY_APPLE);

glVertexPointer(2, GL_FLOAT, sizeof(SpriteData), spriteVertices);
glPointSizePointerAPPLE(GL_FLOAT, sizeof(SpriteData), spriteVertices + sizeof(LocationF));

glDrawArrays(GL_POINTS, 0, spriteCount);

glDisableClientState(GL_POINT_SIZE_ARRAY_APPLE);
glDisableClientState(GL_VERTEX_ARRAY);

SpriteData是包含每個Sprite的頂點/大小數據的結構。 spriteVertices只是該結構的交錯數組。

頂點指針工作正常; 它正在繪制精靈,但似乎忽略了它們的大小值。 而是默認使用glPointSize()設置的值。

盡管該代碼編譯時沒有任何警告,但對我來說,谷歌搜索“ GL_POINT_SIZE_ARRAY_APPLE”似乎幾乎沒有任何結果,這讓我非常懷疑。 這是沒用的參數嗎? 如果是這樣,我還能如何實現我想要的?

沒有公開的GL_POINT_SIZE_ARRAY_APPLE擴展的官方OpenGL擴展。 這可能是Apple標題中的一些不利因素,但您不應該使用它。 只需使用通用頂點數組,然后將傳遞的值用作點大小即可。

如果需要跨平台代碼,則應避免使用與系統相關的標頭。 相反,請使用適當的OpenGL加載程序 ,該加載程序隨附跨平台標頭,其中不會包含與系統相關的非標准碎屑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM