我试图在python中编写一个模块,它将绘制一个numpy数组数据(rgb)到屏幕.目前我正在使用这样的三维颜色数组:
numpy.ones((10,10,3),dtype=np.float32,order='F') # (for 10x10 pure white tiles)
Run Code Online (Sandbox Code Playgroud)
将它绑定到缓冲区并使用a glVertexAttribArray将数据广播到一个tile数组(点精灵)(在这种情况下是一个10x10数组),这适用于静态图像.
但我希望能够更改数组中的数据并让缓冲区反映此更改,而无需从头开始重建.
目前我已经构建了缓冲区:
glBufferData(GL_ARRAY_BUFFER, buffer_data.nbytes, buffer_data, GL_DYNAMIC_DRAW)
Run Code Online (Sandbox Code Playgroud)
其中buffer_data是numpy数组.我可以传递什么(如果有的话)(某些指针可能会进入内存?)
我有一个这样的课:
class Object {
public:
unsigned char data[8];
// other variables
// functions etc...
};
Run Code Online (Sandbox Code Playgroud)
问题是 - 对象成员是否都存储在相对于对象的内存中的相同位置?所以,如果我有一个数组:对象数组[3],给定一个字符指针
char* data_ptr = array[0].data,
data_ptr + (sizeof(Object))然后总是指向数组[1] .data?
(我已经阅读了几个关于如何在类和结构的数据成员之间填充填充的Q/As - 但我不认为他们回答了我的问题.)
提前谢谢,本