Opengl 如何使用glGenTextures

Opengl 如何使用glGenTextures,opengl,haskell,Opengl,Haskell,在C中,我将执行以下操作: GLuint a; glGenTextures(1, &a); Haskell中的glGenTextures类型为: GLsizei -> Ptr GLuint -> IO () 如何获得类型为Ptr GLuint的值?首先,我想指出Haskell-OpenGL绑定有一个 一般来说,对于任何可存储的类型a,您可以获得足够的内存块来存储所述类型的n元素。具有类型Ptr a的结果;就像在C中一样,您应该使用来释放分配的内存空间。您还可以使用临时分配

在C中,我将执行以下操作:

GLuint a;
glGenTextures(1, &a);
Haskell中的
glGenTextures
类型为:

GLsizei -> Ptr GLuint -> IO ()

如何获得类型为
Ptr GLuint
的值?

首先,我想指出Haskell-OpenGL绑定有一个

一般来说,对于任何
可存储的
类型
a
,您可以获得足够的内存块来存储所述类型的
n
元素。具有类型
Ptr a
的结果;就像在C中一样,您应该使用来释放分配的内存空间。您还可以使用临时分配内存(相当于C中的堆栈分配)。以下是如何使用
OpenGL
库:


您可以找到有关这些主题的更多信息。

我认为以下内容的确切含义是:

GLuint a;
glGenTextures(1, &a);
是:

如果需要传递数组,可以使用
withArray
获取列表,并使用该列表保留和初始化缓冲区。另外,
allocarray
可以为您创建缓冲区,而无需对其进行初始化

GLuint a;
glGenTextures(1, &a);
import Foreign.Marshal.Utils( with )

with a $ \dir_a -> glGenTextures 1 dir_a