mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-05 03:15:07 -04:00
fix 24bpp bug
This commit is contained in:
parent
d3701f3eda
commit
2dfc0dca85
@ -796,7 +796,7 @@ HRESULT ConvertDDSurftoPixBuf(PixelBuffer *pixbuf,LPDIRECTDRAWSURFACE7 pDDSurf)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else { // convert to 24bpp pixbuf
|
} else { // convert to 24bpp pixbuf
|
||||||
BYTE *pDstWord = (BYTE *) pbuf;
|
BYTE *pDstByte = (BYTE *) pbuf;
|
||||||
switch(ddsd.ddpfPixelFormat.dwRGBBitCount) {
|
switch(ddsd.ddpfPixelFormat.dwRGBBitCount) {
|
||||||
|
|
||||||
case 32: {
|
case 32: {
|
||||||
@ -818,16 +818,16 @@ HRESULT ConvertDDSurftoPixBuf(PixelBuffer *pixbuf,LPDIRECTDRAWSURFACE7 pDDSurf)
|
|||||||
g = (BYTE)((dwPixel>> 8)&0x000000ff);
|
g = (BYTE)((dwPixel>> 8)&0x000000ff);
|
||||||
b = (BYTE)((dwPixel )&0x000000ff);
|
b = (BYTE)((dwPixel )&0x000000ff);
|
||||||
|
|
||||||
*pDstWord++ = r;
|
*pDstByte++ = r;
|
||||||
*pDstWord++ = g;
|
*pDstByte++ = g;
|
||||||
*pDstWord++ = b;
|
*pDstByte++ = b;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 24: {
|
case 24: {
|
||||||
BYTE *pSrcByte,*pDstByte;
|
BYTE *pSrcByte;
|
||||||
|
|
||||||
pDDSurfBytes+=ddsd.lPitch*(dwYWindowOffset+dwCopyHeight-1);
|
pDDSurfBytes+=ddsd.lPitch*(dwYWindowOffset+dwCopyHeight-1);
|
||||||
for(DWORD y=0; y<dwCopyHeight; y++,pDDSurfBytes-=ddsd.lPitch) {
|
for(DWORD y=0; y<dwCopyHeight; y++,pDDSurfBytes-=ddsd.lPitch) {
|
||||||
@ -896,9 +896,9 @@ HRESULT ConvertDDSurftoPixBuf(PixelBuffer *pixbuf,LPDIRECTDRAWSURFACE7 pDDSurf)
|
|||||||
g = (dwPixel & greenmask) >> greenshift;
|
g = (dwPixel & greenmask) >> greenshift;
|
||||||
r = (dwPixel & redmask) >> redshift;
|
r = (dwPixel & redmask) >> redshift;
|
||||||
|
|
||||||
*pDstWord++ = r;
|
*pDstByte++ = r;
|
||||||
*pDstWord++ = g;
|
*pDstByte++ = g;
|
||||||
*pDstWord++ = b;
|
*pDstByte++ = b;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user