"Damjan Jovanovic" <damjan.jov(a)gmail.com> writes:
+ switch (dstDib.dsBm.bmBitsPixel) + { + case 1: + widthBytes = (width + 7) / 8; + srcOffsetBytes = (xSrc + 7) / 8; + dstOffsetBytes = (xDst + 7) / 8; + break; + case 4: + widthBytes = (width + 1) / 2; + srcOffsetBytes = (xSrc + 1) / 2; + dstOffsetBytes = (xDst + 1) / 2; + break;
You can't simply round size up, you have to handle partial bytes properly.
+ case 24: + widthBytes = width * 2; + srcOffsetBytes = xSrc * 2; + dstOffsetBytes = xDst * 2; + break;
I don't think you can fix 24 bits in two bytes... A bigger problem is that you also need to handle the clip region of the destination DC, and only copy the pixels that aren't clipped out. -- Alexandre Julliard julliard(a)winehq.org
participants (1)
-
Alexandre Julliard