首先,我对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
答案 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;
这是即将发布的OpenGL 3 header file
如果你之前没有遇到过typedeff,这里是解释typedef的Wiki页面