Merge branch 'master' of github.com:awakecoding/FreeRDP
This commit is contained in:
commit
8268c805b5
@ -2448,7 +2448,83 @@ int freerdp_image24_copy(BYTE* pDstData, DWORD DstFormat, int nDstStep, int nXDs
|
|||||||
}
|
}
|
||||||
else if (dstBytesPerPixel == 3)
|
else if (dstBytesPerPixel == 3)
|
||||||
{
|
{
|
||||||
|
BYTE* pSrcPixel;
|
||||||
|
BYTE* pDstPixel;
|
||||||
|
|
||||||
|
if (!invert)
|
||||||
|
{
|
||||||
|
if (!vFlip)
|
||||||
|
{
|
||||||
|
pSrcPixel = &pSrcData[(nYSrc * nSrcStep) + (nXSrc * 3)];
|
||||||
|
pDstPixel = &pDstData[(nYDst * nDstStep) + (nXDst * 3)];
|
||||||
|
|
||||||
|
for (y = 0; y < nHeight; y++)
|
||||||
|
{
|
||||||
|
CopyMemory(pDstPixel, pSrcPixel, nWidth * 3);
|
||||||
|
pSrcPixel = &pSrcPixel[nSrcStep];
|
||||||
|
pDstPixel = &pDstPixel[nDstStep];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pSrcPixel = &pSrcData[((nYSrc + nHeight - 1) * nSrcStep) + (nXSrc * 3)];
|
||||||
|
pDstPixel = &pDstData[(nYDst * nDstStep) + (nXDst * 3)];
|
||||||
|
|
||||||
|
for (y = 0; y < nHeight; y++)
|
||||||
|
{
|
||||||
|
CopyMemory(pDstPixel, pSrcPixel, nWidth * 3);
|
||||||
|
pSrcPixel = &pSrcPixel[-nSrcStep];
|
||||||
|
pDstPixel = &pDstPixel[nDstStep];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!vFlip)
|
||||||
|
{
|
||||||
|
pSrcPixel = &pSrcData[(nYSrc * nSrcStep) + (nXSrc * 3)];
|
||||||
|
pDstPixel = &pDstData[(nYDst * nDstStep) + (nXDst * 3)];
|
||||||
|
|
||||||
|
for (y = 0; y < nHeight; y++)
|
||||||
|
{
|
||||||
|
for (x = 0; x < nWidth; x++)
|
||||||
|
{
|
||||||
|
pDstPixel[0] = pSrcPixel[2];
|
||||||
|
pDstPixel[1] = pSrcPixel[1];
|
||||||
|
pDstPixel[2] = pSrcPixel[0];
|
||||||
|
|
||||||
|
pSrcPixel += 3;
|
||||||
|
pDstPixel += 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
pSrcPixel = &pSrcPixel[nSrcPad];
|
||||||
|
pDstPixel = &pDstPixel[nDstPad];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pSrcPixel = &pSrcData[((nYSrc + nHeight - 1) * nSrcStep) + (nXSrc * 3)];
|
||||||
|
pDstPixel = &pDstData[(nYDst * nDstStep) + (nXDst * 3)];
|
||||||
|
|
||||||
|
for (y = 0; y < nHeight; y++)
|
||||||
|
{
|
||||||
|
for (x = 0; x < nWidth; x++)
|
||||||
|
{
|
||||||
|
pDstPixel[0] = pSrcPixel[2];
|
||||||
|
pDstPixel[1] = pSrcPixel[1];
|
||||||
|
pDstPixel[2] = pSrcPixel[0];
|
||||||
|
|
||||||
|
pSrcPixel += 3;
|
||||||
|
pDstPixel += 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
pSrcPixel = &pSrcPixel[-((nSrcStep - nSrcPad) + nSrcStep)];
|
||||||
|
pDstPixel = &pDstPixel[nDstPad];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
else if (dstBytesPerPixel == 2)
|
else if (dstBytesPerPixel == 2)
|
||||||
{
|
{
|
||||||
|
@ -265,11 +265,13 @@ int interleaved_decompress(BITMAP_INTERLEAVED_CONTEXT* interleaved, BYTE* pSrcDa
|
|||||||
|
|
||||||
SrcFormat = PIXEL_FORMAT_RGB24_VF;
|
SrcFormat = PIXEL_FORMAT_RGB24_VF;
|
||||||
|
|
||||||
|
#if 0
|
||||||
if ((SrcFormat == DstFormat) && !nXDst && !nYDst && (scanline == nDstStep))
|
if ((SrcFormat == DstFormat) && !nXDst && !nYDst && (scanline == nDstStep))
|
||||||
{
|
{
|
||||||
RleDecompress24to24(pSrcData, SrcSize, pDstData, scanline, nWidth, nHeight);
|
RleDecompress24to24(pSrcData, SrcSize, pDstData, scanline, nWidth, nHeight);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (BufferSize > interleaved->TempSize)
|
if (BufferSize > interleaved->TempSize)
|
||||||
{
|
{
|
||||||
@ -292,11 +294,13 @@ int interleaved_decompress(BITMAP_INTERLEAVED_CONTEXT* interleaved, BYTE* pSrcDa
|
|||||||
|
|
||||||
SrcFormat = (bpp == 16) ? PIXEL_FORMAT_RGB16_VF : PIXEL_FORMAT_RGB15_VF;
|
SrcFormat = (bpp == 16) ? PIXEL_FORMAT_RGB16_VF : PIXEL_FORMAT_RGB15_VF;
|
||||||
|
|
||||||
|
#if 0
|
||||||
if ((SrcFormat == DstFormat) && !nXDst && !nYDst && (scanline == nDstStep))
|
if ((SrcFormat == DstFormat) && !nXDst && !nYDst && (scanline == nDstStep))
|
||||||
{
|
{
|
||||||
RleDecompress16to16(pSrcData, SrcSize, pDstData, scanline, nWidth, nHeight);
|
RleDecompress16to16(pSrcData, SrcSize, pDstData, scanline, nWidth, nHeight);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (BufferSize > interleaved->TempSize)
|
if (BufferSize > interleaved->TempSize)
|
||||||
{
|
{
|
||||||
@ -319,11 +323,13 @@ int interleaved_decompress(BITMAP_INTERLEAVED_CONTEXT* interleaved, BYTE* pSrcDa
|
|||||||
|
|
||||||
SrcFormat = PIXEL_FORMAT_RGB8_VF;
|
SrcFormat = PIXEL_FORMAT_RGB8_VF;
|
||||||
|
|
||||||
|
#if 0
|
||||||
if ((SrcFormat == DstFormat) && !nXDst && !nYDst && (scanline == nDstStep))
|
if ((SrcFormat == DstFormat) && !nXDst && !nYDst && (scanline == nDstStep))
|
||||||
{
|
{
|
||||||
RleDecompress8to8(pSrcData, SrcSize, pDstData, scanline, nWidth, nHeight);
|
RleDecompress8to8(pSrcData, SrcSize, pDstData, scanline, nWidth, nHeight);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (BufferSize > interleaved->TempSize)
|
if (BufferSize > interleaved->TempSize)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user