我正在使用第 3 方 DLL 加载一些原始图像数据,并且我想将此原始图像数据用作 openGL 中的纹理。但是,c 函数返回一个 void*,我需要以某种方式将其转换为 glTexImage2D 的“像素”参数。现在我的代码看起来像这样:
data = c_void_p(vdll.vlImageGetData())
glTexImage2D(GL_TEXTURE_2D, 1, GL_RGB8, 1024, 1024, 0, GL_RGB, GL_UNSIGNED_BYTE, data )
但是,我收到一个 TypeError 抱怨数据“无法转换为指针”。有谁知道如何让它工作?
编辑:想通了。基本上我做的是这样的:
data = create_string_buffer( BUFFER_SIZE )
data = dll.vlImageGetData()
glTexImage2D(GL_TEXTURE_2D, 1, GL_RGB8, 1024, 1024, 0, GL_RGB, GL_UNSIGNED_BYTE, data )