如何解决如何在Python中使用OpenGL的glMapBuffer?
我想尝试使用glMapBuffer
更新PyOpenGL中的VBO,它返回一个ctypes
指向映射内存的指针。现在,该函数的几乎所有示例都在C语言中,并使用memcpy
,显然在Python中本身并不存在。
那么,如何使用此指针更新数据?
解决方法
使用ctypes
返回的内存,使用glMapBuffer
中的from_address
获取ctypes类型实例。
以下示例将缓冲区映射到numberOfFloats
个浮点数组:
map_data = glMapBuffer(GL_ARRAY_BUFFER,GL_WRITE_ONLY)
map_array = (GLfloat * numberOfFloats).from_address(map_data)
// copy new data
// [...]
glUnmapBuffer(GL_ARRAY_BUFFER)
map_array
的元素可以通过订阅进行访问:
map_array[i] = value
数据可以通过ctypes
从一个ctypes.memmove(dst,src,count)
数组复制到另一个数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。