繁体   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