我正在将数据从CPU主机移动到OpenGL内存,我使用像素缓冲区对象来做到这一点。我可以像这样复制整个图像:
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffer);
GLubyte * data = (GLubyte *)glMapBuffer(GL_PIXEL_UNPACK_BUFFER,
GL_READ_WRITE);
// copying 4 channel 8 unsigned char data
memcpy(data, cpu_data, rows * cols * 4);
这实际上非常快。但是,现在我需要复制数据的矩形子图像。所以,从本质上讲,我需要做多个memcpy才能做到这一点,因为我将不得不逐行复制内容。我想知道是否有更快的方法来执行此操作。