预期 LP_c_float 个实例而不是列表
expected LP_c_float instance instead of list
我需要在函数中放入一个数组
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: must be real number, not list
基于[MS.Docs]: glMaterialfv function (that pyglet wraps via [Python 3.Docs]: ctypes - A foreign function library for Python),你应该使用:
pgl.glMaterialfv(pgl.GL_FRONT_AND_BACK, pgl.GL_DIFFUSE, (pgl.GLfloat * len(material_diffuse))(*material_diffuse))
我需要在函数中放入一个数组
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: must be real number, not list
基于[MS.Docs]: glMaterialfv function (that pyglet wraps via [Python 3.Docs]: ctypes - A foreign function library for Python),你应该使用:
pgl.glMaterialfv(pgl.GL_FRONT_AND_BACK, pgl.GL_DIFFUSE, (pgl.GLfloat * len(material_diffuse))(*material_diffuse))