我需要在函数中放一个数组
material_diffuse = [1.0, 1.0, 1.0, 1.0]
pgl.glMaterialfv(pgl.GL_FRONT_AND_BACK, pgl.GL_DIFFUSE, material_diffuse)
or
material_diffuse = [1.0, 1.0, 1.0, 1.0]
pgl.glMaterialfv(pgl.GL_FRONT_AND_BACK,
pgl.GL_DIFFUSE,ctypes.c_float(material_diffuse))在第一种情况下,我得到:预期的LP_c_float实例,而不是第二个: TypeError:必须是实数,而不是列表
发布于 2019-05-03 10:56:26
基于[MS.Docs]:glMaterialfv函数 ( pyglet通过[Python3.Docs]:ctypes Python的外部函数库包装),您应该使用:
pgl.glMaterialfv(pgl.GL_FRONT_AND_BACK, pgl.GL_DIFFUSE, (pgl.GLfloat * len(material_diffuse))(*material_diffuse))其他参考资料:[搜索代码]:pyglet -/实验性/缓冲区/torus.py。
https://stackoverflow.com/questions/55968037
复制相似问题