我目前正在将数据从 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 来执行此操作,这可能会影响性能,因为我必须逐行复制内容。我想知道是否有更快的方法来执行此操作。