glGenTextures GLuint还是Array?

Gar*_*luk 3 opengl api flash port actionscript-3

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

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

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

GLuint*纹理

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

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

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

非常感谢所有关于SO的好人.

加里帕卢克

The*_*Saw 7

你熟悉指针符号吗?该函数确实采用了一个数组:一个GLuint数据数组.因此,在创建纹理时,您可以创建一个纹理并简单地指向该一个GLuint的地址,也可以通过将指针传递给第一个来创建多个纹理(这基本上就是数组的工作方式).

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);
Run Code Online (Sandbox Code Playgroud)

  • 完美......我现在要尝试实施这个!我并不完全熟悉指针,因为我使用ActionScript编写代码,但是你的例子使得理解非常明显所以谢谢你!^ _ ^这是其中之一,我知道,从未使用过它类型的东西!对于这个项目的其他成员来说,这也是非常有用的知识!:) (2认同)