使用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);
}