1

我有一个从第一个 opengl 画布截取的屏幕截图,我需要在第二个 opengl 画布中绘制它。我使用以下方法截取了屏幕截图glReadPixels

glReadPixels(posx, posy, pageWidth , pageHeight, GL_RGB, GL_UNSIGNED_BYTE, data);

第一个 opengl 画布有两个或多个图像,周围有一些线条和文本数据。我正在使用第二个 opengl 画布来显示图像与周围数据作为一个整体的平铺。我不想在第二个 opengl 画布中重新绘制相同的内容,因此想要截取屏幕截图并绘制屏幕截图的平铺部分在第二个画布中。

我还将拍摄的快照保存到一个完美的 jpg 文件中。

但是,当我需要使用 glTexImage2d 绘制像素数据时,问题就来了,因为所使用的 pageWidth 或 pageHeight 不能表示为 2K+ 2。因此错误为GL_INVALID_VALUE.

glTexImage2D (GL_TEXTURE_2D, 0, imgSamplesPerPixel), 
    pageWidth,  pageHeight, 0,SamplesPerPixel, GL_UNSIGNED_BYTE, data);

pageWidth 和 pageHeight 可以是任何值(小于GL_MAX_TEXTURE_SIZE),例如 240 X 600。那么我应该如何解决这个问题呢?

4

0 回答 0