使用openGL glDrawPixels绘制部分图像
我有一个在使用openGL glDrawPixels绘制部分图像,opengl,Opengl,我有一个在openGL上下文中绘制图像的功能。(在这种情况下用于渲染纹理)适用于整个图像,但也应能够仅渲染矩形部分。如果零件与图像具有相同的宽度,则渲染零件可以工作。对于宽度小于图像数据的零件,它将失败 这是函数(减少到仅用于小宽度、无清理等的零件) void drawImage(uint32图像宽度、uint32图像高度、uint8*pData、, uint32 offX,uint32 partWidth)/(offX+partWidthAAArrrghh GL\uStrong>UNPACK\
openGL
上下文中绘制图像的功能。(在这种情况下用于渲染纹理)适用于整个图像,但也应能够仅渲染矩形部分。如果零件与图像具有相同的宽度,则渲染零件可以工作。对于宽度小于图像数据的零件,它将失败
这是函数(减少到仅用于小宽度、无清理等的零件)
void drawImage(uint32图像宽度、uint32图像高度、uint8*pData、,
uint32 offX,uint32 partWidth)/(offX+partWidthAAArrrghh
GL\uStrong>UNPACK\u ROW\u LENGTH不是GL\u PACK\u ROW\u LENGTH!!!!glDrawPixels
是一个旧界面,我怀疑是否应该使用它。将图像上载到纹理,并使用UV坐标仅绘制所需纹理的部分。
void drawImage(uint32 imageWidth, uint32 imageHeight, uint8* pData,
uint32 offX, uint32 partWidth) // (offX+partWidth<=imageWidth)
{
uint8* p(pData);
if (partWidth != imageWidth)
{
glPixelStorei(GL_PACK_ROW_LENGTH, imageWidth);
p = calcFrom(offX, pData); // point at pixel in row
}
glDrawPixels(partWidth, ImageHeight, GL_BGRA, GL_UNSIGNED_BYTE, p);
}