我有第一个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.那么我应该如何解决这个问题呢?