glTexImage2D给出GL_INVALID_VALUE,因为宽度或高度不能表示为2k + 2

时间:2013-05-13 04:24:35

标签: opengl snapshot glreadpixels glteximage2d

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

0 个答案:

没有答案