小さな 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 は、各スプライトの頂点/サイズ データを含む構造体です。spriteVertices は、その構造体の単なるインターリーブ配列です。
頂点ポインターは正常に機能しています。スプライトを描画していますが、サイズの値を無視しているようです。代わりに、glPointSize() によって設定された値にデフォルト設定されます。
このコードは警告なしでコンパイルされるという事実にもかかわらず、「GL_POINT_SIZE_ARRAY_APPLE」をグーグル検索してもほとんど結果が得られないことは非常に疑わしいと思われます。これは役に立たないパラメーターですか?もしそうなら、他にどうすれば私が望むものを達成できますか?