glGenTextures GLuint还是Array?

时间:2011-02-17 10:25:28

标签: flash actionscript-3 api opengl port

首先,我对C / C ++知之甚少,所以我的知识可能有一个黑点,但我目前正试图将OpenGL的一些功能移植到AS3并查看glGenTextures( )OpenGL的方法

http://www.opengl.org/sdk/docs/man/xhtml/glGenTextures.xml

这个方法需要几个,但我的问题是针对后面的参数

GLuint * textures

我查找了GLuint的类型数据,它似乎是一个32位无符号整数,但是文档会说明以下内容:

textures指定存储生成的纹理名称的数组。

那么,GLuint是一个数组还是一个无符号整数?如果这是指向数组内存地址的某种指针(不知道这是否也是可能的?)那么可以任何人都建议在ActionScript中实现类似功能的等效方法,记住参数是按值而不是在ActionScript中引用。

非常感谢所有优秀人才。

Gary Paluk

2 个答案:

答案 0 :(得分:6)

你熟悉指针表示法吗?函数 取一个数组:一个GLuint数据数组。因此,在创建纹理时,您可以创建一个纹理并简单地指向该一个GLuint的地址,或者您可以通过传入指向第一个纹理的指针来创建多个纹理(这基本上就是数组的工作原理)。 p>

GLuint myTexture;
glGenTextures(1, &myTexture); // generate just one texture

GLuint myTextures[32];
glGenTextures(32, myTextures); // generate 32 textures

GLuint myOtherTexture;
GLuint* myTexturePointer = &myOtherTexture;
glGenTextures(1, myTexturePointer); // generate 1 texture using a pointer

GLuint* moreTextures = new GLuint[16];
// generate only 8 textures in the latter half of the array
glGenTextures(8, moreTextures + 8);

答案 1 :(得分:1)

GLuint是一个unsigned int。

您可以在头文件中看到它:

typedef unsigned int GLuint;

如果你之前没有遇到过typedeff,这里是解释typedef的Wiki页面