{
switch (format)
{
- /* 32bpp formats */
- case PIXEL_FORMAT_ARGB32:
- return "PIXEL_FORMAT_ARGB32";
+ /* 32bpp formats */
+ case PIXEL_FORMAT_ARGB32:
+ return "PIXEL_FORMAT_ARGB32";
- case PIXEL_FORMAT_ARGB32_VF:
- return "PIXEL_FORMAT_ARGB32_VF";
+ case PIXEL_FORMAT_ARGB32_VF:
+ return "PIXEL_FORMAT_ARGB32_VF";
- case PIXEL_FORMAT_XRGB32:
- return "PIXEL_FORMAT_XRGB32";
+ case PIXEL_FORMAT_XRGB32:
+ return "PIXEL_FORMAT_XRGB32";
- case PIXEL_FORMAT_XRGB32_VF:
- return "PIXEL_FORMAT_XRGB32_VF";
+ case PIXEL_FORMAT_XRGB32_VF:
+ return "PIXEL_FORMAT_XRGB32_VF";
- case PIXEL_FORMAT_ABGR32:
- return "PIXEL_FORMAT_ABGR32";
+ case PIXEL_FORMAT_ABGR32:
+ return "PIXEL_FORMAT_ABGR32";
- case PIXEL_FORMAT_ABGR32_VF:
- return "PIXEL_FORMAT_ABGR32_VF";
+ case PIXEL_FORMAT_ABGR32_VF:
+ return "PIXEL_FORMAT_ABGR32_VF";
- case PIXEL_FORMAT_XBGR32:
- return "PIXEL_FORMAT_XBGR32";
+ case PIXEL_FORMAT_XBGR32:
+ return "PIXEL_FORMAT_XBGR32";
- case PIXEL_FORMAT_XBGR32_VF:
- return "PIXEL_FORMAT_XBGR32_VF";
+ case PIXEL_FORMAT_XBGR32_VF:
+ return "PIXEL_FORMAT_XBGR32_VF";
- case PIXEL_FORMAT_BGRA32:
- return "PIXEL_FORMAT_BGRA32";
+ case PIXEL_FORMAT_BGRA32:
+ return "PIXEL_FORMAT_BGRA32";
- case PIXEL_FORMAT_BGRA32_VF:
- return "PIXEL_FORMAT_BGRA32_VF";
+ case PIXEL_FORMAT_BGRA32_VF:
+ return "PIXEL_FORMAT_BGRA32_VF";
- case PIXEL_FORMAT_BGRX32:
- return "PIXEL_FORMAT_BGRX32";
+ case PIXEL_FORMAT_BGRX32:
+ return "PIXEL_FORMAT_BGRX32";
- case PIXEL_FORMAT_BGRX32_VF:
- return "PIXEL_FORMAT_BGRX32_VF";
+ case PIXEL_FORMAT_BGRX32_VF:
+ return "PIXEL_FORMAT_BGRX32_VF";
- case PIXEL_FORMAT_RGBA32:
- return "PIXEL_FORMAT_RGBA32";
+ case PIXEL_FORMAT_RGBA32:
+ return "PIXEL_FORMAT_RGBA32";
- case PIXEL_FORMAT_RGBA32_VF:
- return "PIXEL_FORMAT_RGBA32_VF";
+ case PIXEL_FORMAT_RGBA32_VF:
+ return "PIXEL_FORMAT_RGBA32_VF";
- case PIXEL_FORMAT_RGBX32:
- return "PIXEL_FORMAT_RGBX32";
+ case PIXEL_FORMAT_RGBX32:
+ return "PIXEL_FORMAT_RGBX32";
- case PIXEL_FORMAT_RGBX32_VF:
- return "PIXEL_FORMAT_RGBX32_VF";
+ case PIXEL_FORMAT_RGBX32_VF:
+ return "PIXEL_FORMAT_RGBX32_VF";
/* 24bpp formats */
- case PIXEL_FORMAT_RGB24:
- return "PIXEL_FORMAT_RGB24";
+ case PIXEL_FORMAT_RGB24:
+ return "PIXEL_FORMAT_RGB24";
- case PIXEL_FORMAT_RGB24_VF:
- return "PIXEL_FORMAT_RGB24_VF";
+ case PIXEL_FORMAT_RGB24_VF:
+ return "PIXEL_FORMAT_RGB24_VF";
- case PIXEL_FORMAT_BGR24:
- return "PIXEL_FORMAT_BGR24";
+ case PIXEL_FORMAT_BGR24:
+ return "PIXEL_FORMAT_BGR24";
- case PIXEL_FORMAT_BGR24_VF:
- return "PIXEL_FORMAT_BGR24_VF";
+ case PIXEL_FORMAT_BGR24_VF:
+ return "PIXEL_FORMAT_BGR24_VF";
/* 16bpp formats */
- case PIXEL_FORMAT_RGB16:
- return "PIXEL_FORMAT_RGB16";
+ case PIXEL_FORMAT_RGB16:
+ return "PIXEL_FORMAT_RGB16";
- case PIXEL_FORMAT_RGB16_VF:
- return "PIXEL_FORMAT_RGB16_VF";
+ case PIXEL_FORMAT_RGB16_VF:
+ return "PIXEL_FORMAT_RGB16_VF";
- case PIXEL_FORMAT_BGR16:
- return "PIXEL_FORMAT_BGR16";
+ case PIXEL_FORMAT_BGR16:
+ return "PIXEL_FORMAT_BGR16";
- case PIXEL_FORMAT_BGR16_VF:
- return "PIXEL_FORMAT_BGR16_VF";
+ case PIXEL_FORMAT_BGR16_VF:
+ return "PIXEL_FORMAT_BGR16_VF";
- case PIXEL_FORMAT_ARGB15:
- return "PIXEL_FORMAT_ARGB15";
+ case PIXEL_FORMAT_ARGB15:
+ return "PIXEL_FORMAT_ARGB15";
- case PIXEL_FORMAT_ARGB15_VF:
- return "PIXEL_FORMAT_ARGB15_VF";
+ case PIXEL_FORMAT_ARGB15_VF:
+ return "PIXEL_FORMAT_ARGB15_VF";
- case PIXEL_FORMAT_RGB15:
- return "PIXEL_FORMAT_RGB15";
+ case PIXEL_FORMAT_RGB15:
+ return "PIXEL_FORMAT_RGB15";
- case PIXEL_FORMAT_RGB15_VF:
- return "PIXEL_FORMAT_ABGR15";
+ case PIXEL_FORMAT_RGB15_VF:
+ return "PIXEL_FORMAT_ABGR15";
- case PIXEL_FORMAT_ABGR15:
- return "";
+ case PIXEL_FORMAT_ABGR15:
+ return "";
- case PIXEL_FORMAT_ABGR15_VF:
- return "PIXEL_FORMAT_ABGR15_VF";
+ case PIXEL_FORMAT_ABGR15_VF:
+ return "PIXEL_FORMAT_ABGR15_VF";
- case PIXEL_FORMAT_BGR15:
- return "PIXEL_FORMAT_BGR15";
+ case PIXEL_FORMAT_BGR15:
+ return "PIXEL_FORMAT_BGR15";
- case PIXEL_FORMAT_BGR15_VF:
- return "PIXEL_FORMAT_BGR15_VF";
+ case PIXEL_FORMAT_BGR15_VF:
+ return "PIXEL_FORMAT_BGR15_VF";
/* 8bpp formats */
- case PIXEL_FORMAT_RGB8:
- return "PIXEL_FORMAT_RGB8";
+ case PIXEL_FORMAT_RGB8:
+ return "PIXEL_FORMAT_RGB8";
- case PIXEL_FORMAT_RGB8_VF:
- return "PIXEL_FORMAT_RGB8_VF";
+ case PIXEL_FORMAT_RGB8_VF:
+ return "PIXEL_FORMAT_RGB8_VF";
/* 4 bpp formats */
- case PIXEL_FORMAT_A4:
- return "PIXEL_FORMAT_A4";
+ case PIXEL_FORMAT_A4:
+ return "PIXEL_FORMAT_A4";
- case PIXEL_FORMAT_A4_VF:
- return "PIXEL_FORMAT_A4_VF";
+ case PIXEL_FORMAT_A4_VF:
+ return "PIXEL_FORMAT_A4_VF";
/* 1bpp formats */
- case PIXEL_FORMAT_MONO:
- return "PIXEL_FORMAT_MONO";
+ case PIXEL_FORMAT_MONO:
+ return "PIXEL_FORMAT_MONO";
- case PIXEL_FORMAT_MONO_VF:
- return "PIXEL_FORMAT_MONO_VF";
+ case PIXEL_FORMAT_MONO_VF:
+ return "PIXEL_FORMAT_MONO_VF";
- default:
- return "UNKNOWN";
+ default:
+ return "UNKNOWN";
}
}
switch (FREERDP_PIXEL_FORMAT_FLIP_MASKED(format))
{
- /* 32bpp formats */
- case PIXEL_FORMAT_ARGB32:
- if (_a)
+ /* 32bpp formats */
+ case PIXEL_FORMAT_ARGB32:
+ if (_a)
*_a = color >> 24;
if (_r)
if (_b)
*_b = color;
- break;
+ break;
- case PIXEL_FORMAT_XRGB32:
- if (_r)
+ case PIXEL_FORMAT_XRGB32:
+ if (_r)
*_r = color >> 16;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
- case PIXEL_FORMAT_ABGR32:
- if (_a)
+ case PIXEL_FORMAT_ABGR32:
+ if (_a)
*_a = color >> 24;
if (_b)
if (_r)
*_r = color;
- break;
+ break;
- case PIXEL_FORMAT_XBGR32:
- if (_b)
+ case PIXEL_FORMAT_XBGR32:
+ if (_b)
*_b = color >> 16;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
- case PIXEL_FORMAT_RGBA32:
- if (_r)
+ case PIXEL_FORMAT_RGBA32:
+ if (_r)
*_r = color >> 24;
if (_g)
if (_a)
*_a = color;
- break;
+ break;
- case PIXEL_FORMAT_RGBX32:
- if (_r)
+ case PIXEL_FORMAT_RGBX32:
+ if (_r)
*_r = color >> 24;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
- case PIXEL_FORMAT_BGRA32:
- if (_b)
+ case PIXEL_FORMAT_BGRA32:
+ if (_b)
*_b = color >> 24;
if (_g)
if (_a)
*_a = color;
- break;
+ break;
- case PIXEL_FORMAT_BGRX32:
- if (_b)
+ case PIXEL_FORMAT_BGRX32:
+ if (_b)
*_b = color >> 24;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
/* 24bpp formats */
- case PIXEL_FORMAT_RGB24:
- if (_r)
+ case PIXEL_FORMAT_RGB24:
+ if (_r)
*_r = color >> 16;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
- case PIXEL_FORMAT_BGR24:
- if (_b)
+ case PIXEL_FORMAT_BGR24:
+ if (_b)
*_b = color >> 16;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
/* 16bpp formats */
- case PIXEL_FORMAT_RGB16:
- if (_r)
+ case PIXEL_FORMAT_RGB16:
+ if (_r)
*_r = ((color >> 11) & 0x1F) << 3;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
- case PIXEL_FORMAT_BGR16:
- if (_b)
+ case PIXEL_FORMAT_BGR16:
+ if (_b)
*_b = ((color >> 11) & 0x1F) << 3;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
- case PIXEL_FORMAT_ARGB15:
- if (_r)
+ case PIXEL_FORMAT_ARGB15:
+ if (_r)
*_r = ((color >> 10) & 0x1F) << 3;
if (_g)
if (_a)
*_a = color & 0x8000 ? 0xFF : 0x00;
- break;
+ break;
- case PIXEL_FORMAT_ABGR15:
- if (_b)
+ case PIXEL_FORMAT_ABGR15:
+ if (_b)
*_b = ((color >> 10) & 0x1F) << 3;
if (_g)
if (_a)
*_a = color & 0x8000 ? 0xFF : 0x00;
- break;
+ break;
/* 15bpp formats */
- case PIXEL_FORMAT_RGB15:
- if (_r)
+ case PIXEL_FORMAT_RGB15:
+ if (_r)
*_r = ((color >> 10) & 0x1F) << 3;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
- case PIXEL_FORMAT_BGR15:
- if (_b)
+ case PIXEL_FORMAT_BGR15:
+ if (_b)
*_b = ((color >> 10) & 0x1F) << 3;
if (_g)
if (_a)
*_a = 0xFF;
- break;
+ break;
/* 8bpp formats */
- case PIXEL_FORMAT_RGB8:
- if (color <= 0xFF)
+ case PIXEL_FORMAT_RGB8:
+ if (color <= 0xFF)
{
tmp = palette->palette[color];
SplitColor(tmp, palette->format, _r, _g, _b, _a, NULL);
}
- break;
+ break;
/* 1bpp formats */
- case PIXEL_FORMAT_MONO:
- if (_r)
+ case PIXEL_FORMAT_MONO:
+ if (_r)
*_r = (color) ? 0xFF : 0x00;
if (_g)
if (_a)
*_a = (color) ? 0xFF : 0x00;
- break;
+ break;
/* 4 bpp formats */
- case PIXEL_FORMAT_A4:
- default:
- WLog_ERR("xxxxx", "Unsupported format %s", GetColorFormatName(format));
- break;
+ case PIXEL_FORMAT_A4:
+ default:
+ WLog_ERR("xxxxx", "Unsupported format %s", GetColorFormatName(format));
+ break;
}
}
switch (FREERDP_PIXEL_FORMAT_FLIP_MASKED(format))
{
- /* 32bpp formats */
- case PIXEL_FORMAT_ARGB32:
- return (_a << 24) | (_r << 16) | (_g << 8) | _b;
+ /* 32bpp formats */
+ case PIXEL_FORMAT_ARGB32:
+ return (_a << 24) | (_r << 16) | (_g << 8) | _b;
- case PIXEL_FORMAT_XRGB32:
- return (_r << 16) | (_g << 8) | _b;
+ case PIXEL_FORMAT_XRGB32:
+ return (_r << 16) | (_g << 8) | _b;
- case PIXEL_FORMAT_ABGR32:
- return (_a << 24) | (_b << 16) | (_g << 8) | _r;
+ case PIXEL_FORMAT_ABGR32:
+ return (_a << 24) | (_b << 16) | (_g << 8) | _r;
- case PIXEL_FORMAT_XBGR32:
- return (_b << 16) | (_g << 8) | _r;
+ case PIXEL_FORMAT_XBGR32:
+ return (_b << 16) | (_g << 8) | _r;
- case PIXEL_FORMAT_RGBA32:
- return (_r << 24) | (_g << 16) | (_b << 8) | _a;
+ case PIXEL_FORMAT_RGBA32:
+ return (_r << 24) | (_g << 16) | (_b << 8) | _a;
- case PIXEL_FORMAT_RGBX32:
- return (_r << 24) | (_g << 16) | (_b << 8) | _a;
+ case PIXEL_FORMAT_RGBX32:
+ return (_r << 24) | (_g << 16) | (_b << 8) | _a;
- case PIXEL_FORMAT_BGRA32:
- return (_b << 24) | (_g << 16) | (_r << 8) | _a;
+ case PIXEL_FORMAT_BGRA32:
+ return (_b << 24) | (_g << 16) | (_r << 8) | _a;
- case PIXEL_FORMAT_BGRX32:
- return (_b << 24) | (_g << 16) | (_r << 8) | _a;
+ case PIXEL_FORMAT_BGRX32:
+ return (_b << 24) | (_g << 16) | (_r << 8) | _a;
/* 24bpp formats */
- case PIXEL_FORMAT_RGB24:
- return (_r << 16) | (_g << 8) | _b;
+ case PIXEL_FORMAT_RGB24:
+ return (_r << 16) | (_g << 8) | _b;
- case PIXEL_FORMAT_BGR24:
- return (_b << 16) | (_g << 8) | _r;
+ case PIXEL_FORMAT_BGR24:
+ return (_b << 16) | (_g << 8) | _r;
/* 16bpp formats */
- case PIXEL_FORMAT_RGB16:
- return (((_r >> 3) & 0x1F) << 11) | (((_g >> 2) & 0x3F) << 5) | ((
+ case PIXEL_FORMAT_RGB16:
+ return (((_r >> 3) & 0x1F) << 11) | (((_g >> 2) & 0x3F) << 5) | ((
_b >> 3) & 0x1F);
- case PIXEL_FORMAT_BGR16:
- return (((_b >> 3) & 0x1F) << 11) | (((_g >> 2) & 0x3F) << 5) | ((
+ case PIXEL_FORMAT_BGR16:
+ return (((_b >> 3) & 0x1F) << 11) | (((_g >> 2) & 0x3F) << 5) | ((
_r >> 3) & 0x1F);
- case PIXEL_FORMAT_ARGB15:
- return (((_r >> 3) & 0x1F) << 10) | (((_g >> 3) & 0x1F) << 5) | ((
+ case PIXEL_FORMAT_ARGB15:
+ return (((_r >> 3) & 0x1F) << 10) | (((_g >> 3) & 0x1F) << 5) | ((
_b >> 3) & 0x1F) | (_a ? 0x8000 : 0x0000);
- case PIXEL_FORMAT_ABGR15:
- return (((_b >> 3) & 0x1F) << 10) | (((_g >> 3) & 0x1F) << 5) | ((
+ case PIXEL_FORMAT_ABGR15:
+ return (((_b >> 3) & 0x1F) << 10) | (((_g >> 3) & 0x1F) << 5) | ((
_r >> 3) & 0x1F) | (_a ? 0x8000 : 0x0000);
/* 15bpp formats */
- case PIXEL_FORMAT_RGB15:
- return (((_r >> 3) & 0x1F) << 10) | (((_g >> 3) & 0x1F) << 5) | ((
+ case PIXEL_FORMAT_RGB15:
+ return (((_r >> 3) & 0x1F) << 10) | (((_g >> 3) & 0x1F) << 5) | ((
_b >> 3) & 0x1F);
- case PIXEL_FORMAT_BGR15:
- return (((_b >> 3) & 0x1F) << 10) | (((_g >> 3) & 0x1F) << 5) | ((
+ case PIXEL_FORMAT_BGR15:
+ return (((_b >> 3) & 0x1F) << 10) | (((_g >> 3) & 0x1F) << 5) | ((
_r >> 3) & 0x1F);
/* 8bpp formats */
- case PIXEL_FORMAT_RGB8:
+ case PIXEL_FORMAT_RGB8:
/* 4 bpp formats */
- case PIXEL_FORMAT_A4:
+ case PIXEL_FORMAT_A4:
/* 1bpp formats */
- case PIXEL_FORMAT_MONO:
- default:
- WLog_ERR("xxxxx", "Unsupported format %s", GetColorFormatName(format));
- return 0;
+ case PIXEL_FORMAT_MONO:
+ default:
+ WLog_ERR("xxxxx", "Unsupported format %s", GetColorFormatName(format));
+ return 0;
}
}
return (((format) >> 24) & 0x3F);
}
+static INLINE UINT32 SetColorFormatAlpha(UINT32 format, BOOL alpha)
+{
+ if (!alpha)
+ return format & ~(1<<12);
+ else
+ return format | (1<<12);
+}
+
static INLINE BOOL ColorHasAlpha(UINT32 format)
{
UINT32 alpha = (((format) >> 12) & 0x0F);
switch (GetBitsPerPixel(format))
{
- case 32:
- color = ((UINT32)src[0] << 24) | ((UINT32)src[1] << 16) |
+ case 32:
+ color = ((UINT32)src[0] << 24) | ((UINT32)src[1] << 16) |
((UINT32)src[2] << 8) | src[3];
- break;
+ break;
- case 24:
- color = ((UINT32)src[0] << 16) | ((UINT32)src[1] << 8) | src[2];
- break;
+ case 24:
+ color = ((UINT32)src[0] << 16) | ((UINT32)src[1] << 8) | src[2];
+ break;
- case 16:
- color = ((UINT32)src[1] << 8) | src[0];
- break;
+ case 16:
+ color = ((UINT32)src[1] << 8) | src[0];
+ break;
- case 15:
- color = ((UINT32)src[1] << 8) | src[0];
+ case 15:
+ color = ((UINT32)src[1] << 8) | src[0];
if (!ColorHasAlpha(format))
color = color & 0x7FFF;
- break;
+ break;
- case 8:
- case 4:
- case 1:
- color = *src;
- break;
+ case 8:
+ case 4:
+ case 1:
+ color = *src;
+ break;
- default:
- WLog_ERR("xxxxx", "Unsupported format %s", GetColorFormatName(format));
+ default:
+ WLog_ERR("xxxxx", "Unsupported format %s", GetColorFormatName(format));
color = 0;
- break;
+ break;
}
return color;
{
switch (GetBitsPerPixel(format))
{
- case 32:
- dst[0] = color >> 24;
+ case 32:
+ dst[0] = color >> 24;
dst[1] = color >> 16;
dst[2] = color >> 8;
dst[3] = color;
- break;
+ break;
- case 24:
- dst[0] = color >> 16;
+ case 24:
+ dst[0] = color >> 16;
dst[1] = color >> 8;
dst[2] = color;
- break;
+ break;
- case 16:
- dst[1] = color >> 8;
+ case 16:
+ dst[1] = color >> 8;
dst[0] = color;
- break;
+ break;
- case 15:
- if (!ColorHasAlpha(format))
+ case 15:
+ if (!ColorHasAlpha(format))
color = color & 0x7FFF;
dst[1] = color >> 8;
dst[0] = color;
- break;
+ break;
- case 8:
- dst[0] = color;
- break;
+ case 8:
+ dst[0] = color;
+ break;
- default:
- WLog_ERR("xxxxx", "Unsupported format %s", GetColorFormatName(format));
- return FALSE;
+ default:
+ WLog_ERR("xxxxx", "Unsupported format %s", GetColorFormatName(format));
+ return FALSE;
}
return TRUE;
BYTE* outPlanes[4]);
static INT32 planar_skip_plane_rle(const BYTE* pSrcData, UINT32 SrcSize,
- UINT32 nWidth, UINT32 nHeight)
+ UINT32 nWidth, UINT32 nHeight)
{
UINT32 x, y;
int cRawBytes;
}
static INT32 planar_decompress_plane_rle(const BYTE* pSrcData, UINT32 SrcSize,
- BYTE* pDstData, INT32 nDstStep,
- UINT32 nXDst, UINT32 nYDst,
- UINT32 nWidth, UINT32 nHeight,
- UINT32 nChannel, BOOL vFlip)
+ BYTE* pDstData, INT32 nDstStep,
+ UINT32 nXDst, UINT32 nYDst,
+ UINT32 nWidth, UINT32 nHeight,
+ UINT32 nChannel, BOOL vFlip)
{
UINT32 x, y;
BYTE* dstp;
}
static BOOL planar_decompress_planes_raw(const BYTE* pSrcData[4],
- BYTE* pDstData, UINT32 DstFormat,
- UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, UINT32 nWidth, UINT32 nHeight,
- BOOL alpha, BOOL vFlip)
+ BYTE* pDstData, UINT32 DstFormat,
+ UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst, UINT32 nWidth, UINT32 nHeight,
+ BOOL alpha, BOOL vFlip)
{
INT32 x, y;
INT32 beg, end, inc;
for (y = beg; y != end; y += inc)
{
BYTE* pRGB = &pDstData[((nYDst + y) * nDstStep) + (nXDst * GetBytesPerPixel(
- DstFormat))];
+ DstFormat))];
for (x = 0; x < nWidth; x++)
{
for (y = beg; y != end; y += inc)
{
BYTE* pRGB = &pDstData[((nYDst + y) * nDstStep) + (nXDst * GetBytesPerPixel(
- DstFormat))];
+ DstFormat))];
for (x = 0; x < nWidth; x++)
{
}
BOOL planar_decompress(BITMAP_PLANAR_CONTEXT* planar,
- const BYTE* pSrcData, UINT32 SrcSize,
- UINT32 nSrcWidth, UINT32 nSrcHeight,
- BYTE* pDstData, UINT32 DstFormat,
- UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst,
- UINT32 nDstWidth, UINT32 nDstHeight, BOOL vFlip)
+ const BYTE* pSrcData, UINT32 SrcSize,
+ UINT32 nSrcWidth, UINT32 nSrcHeight,
+ BYTE* pDstData, UINT32 DstFormat,
+ UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst,
+ UINT32 nDstWidth, UINT32 nDstHeight, BOOL vFlip)
{
BOOL cs;
BOOL rle;
{
planes[3] = srcp;
rleSizes[3] = planar_skip_plane_rle(planes[3], SrcSize - (planes[3] - pSrcData),
- rawWidths[3], rawHeights[3]); /* AlphaPlane */
+ rawWidths[3], rawHeights[3]); /* AlphaPlane */
if (rleSizes[3] < 0)
return FALSE;
planes[0] = planes[3] + rleSizes[3];
rleSizes[0] = planar_skip_plane_rle(planes[0], SrcSize - (planes[0] - pSrcData),
- rawWidths[0], rawHeights[0]); /* RedPlane */
+ rawWidths[0], rawHeights[0]); /* RedPlane */
if (rleSizes[0] < 0)
return FALSE;
planes[1] = planes[0] + rleSizes[0];
rleSizes[1] = planar_skip_plane_rle(planes[1], SrcSize - (planes[1] - pSrcData),
- rawWidths[1], rawHeights[1]); /* GreenPlane */
+ rawWidths[1], rawHeights[1]); /* GreenPlane */
if (rleSizes[1] < 1)
return FALSE;
planes[2] = planes[1] + rleSizes[1];
rleSizes[2] = planar_skip_plane_rle(planes[2], SrcSize - (planes[2] - pSrcData),
- rawWidths[2], rawHeights[2]); /* BluePlane */
+ rawWidths[2], rawHeights[2]); /* BluePlane */
if (rleSizes[2] < 1)
return FALSE;
{
planes[0] = srcp;
rleSizes[0] = planar_skip_plane_rle(planes[0], SrcSize - (planes[0] - pSrcData),
- rawWidths[0], rawHeights[0]); /* RedPlane */
+ rawWidths[0], rawHeights[0]); /* RedPlane */
if (rleSizes[0] < 0)
return FALSE;
planes[1] = planes[0] + rleSizes[0];
rleSizes[1] = planar_skip_plane_rle(planes[1], SrcSize - (planes[1] - pSrcData),
- rawWidths[1], rawHeights[1]); /* GreenPlane */
+ rawWidths[1], rawHeights[1]); /* GreenPlane */
if (rleSizes[1] < 1)
return FALSE;
planes[2] = planes[1] + rleSizes[1];
rleSizes[2] = planar_skip_plane_rle(planes[2], SrcSize - (planes[2] - pSrcData),
- rawWidths[2], rawHeights[2]); /* BluePlane */
+ rawWidths[2], rawHeights[2]); /* BluePlane */
if (rleSizes[2] < 1)
return FALSE;
else
TempFormat = PIXEL_FORMAT_BGRX32;
- if ((DstFormat != TempFormat) || (nSrcWidth != nDstWidth)
+ if ((TempFormat != DstFormat) || (nSrcWidth != nDstWidth)
|| (nSrcHeight != nDstHeight))
{
pTempData = planar->pTempData;
{
if (alpha)
{
- if (!planar_decompress_planes_raw(planes, pTempData, DstFormat, nDstStep,
- nXDst, nYDst, nSrcWidth, nSrcHeight, alpha, vFlip))
+ if (!planar_decompress_planes_raw(planes, pTempData, TempFormat, nDstStep,
+ nXDst, nYDst, nSrcWidth, nSrcHeight, alpha, vFlip))
return FALSE;
srcp += rawSizes[0] + rawSizes[1] + rawSizes[2] + rawSizes[3];
}
else /* NoAlpha */
{
- if (!planar_decompress_planes_raw(planes, pTempData, DstFormat, nDstStep,
- nXDst, nYDst, nSrcWidth, nSrcHeight, alpha, vFlip))
+ if (!planar_decompress_planes_raw(planes, pTempData, TempFormat, nDstStep,
+ nXDst, nYDst, nSrcWidth, nSrcHeight, alpha, vFlip))
return FALSE;
srcp += rawSizes[0] + rawSizes[1] + rawSizes[2];
if (alpha)
{
status = planar_decompress_plane_rle(planes[3], rleSizes[3],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 3,
- vFlip); /* AlphaPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 3,
+ vFlip); /* AlphaPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[0], rleSizes[0],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 2,
- vFlip); /* RedPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 2,
+ vFlip); /* RedPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[1], rleSizes[1],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 1,
- vFlip); /* GreenPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 1,
+ vFlip); /* GreenPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[2], rleSizes[2],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 0,
- vFlip); /* BluePlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 0,
+ vFlip); /* BluePlane */
if (status < 0)
return FALSE;
else /* NoAlpha */
{
status = planar_decompress_plane_rle(planes[0], rleSizes[0],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 2,
- vFlip); /* RedPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 2,
+ vFlip); /* RedPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[1], rleSizes[1],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 1,
- vFlip); /* GreenPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 1,
+ vFlip); /* GreenPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[2], rleSizes[2],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 0,
- vFlip); /* BluePlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 0,
+ vFlip); /* BluePlane */
if (status < 0)
return FALSE;
if (pTempData != pDstData)
{
if (!freerdp_image_copy(pDstData, DstFormat, nDstStep, nXDst, nYDst, w,
- h, pTempData,
- TempFormat, nTempStep, nXDst, nYDst, NULL))
+ h, pTempData,
+ TempFormat, nTempStep, nXDst, nYDst, NULL))
return FALSE;
}
}
if (alpha)
{
if (!planar_decompress_planes_raw(planes, pTempData, TempFormat, nTempStep,
- nXDst, nYDst, nSrcWidth, nSrcHeight, alpha, vFlip))
+ nXDst, nYDst, nSrcWidth, nSrcHeight, alpha, vFlip))
return FALSE;
srcp += rawSizes[0] + rawSizes[1] + rawSizes[2] + rawSizes[3];
else /* NoAlpha */
{
if (!planar_decompress_planes_raw(planes, pTempData, TempFormat, nTempStep,
- nXDst, nYDst, nSrcWidth, nSrcHeight, alpha, vFlip))
+ nXDst, nYDst, nSrcWidth, nSrcHeight, alpha, vFlip))
return FALSE;
srcp += rawSizes[0] + rawSizes[1] + rawSizes[2];
if (alpha)
{
status = planar_decompress_plane_rle(planes[3], rleSizes[3],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 3,
- vFlip); /* AlphaPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 3,
+ vFlip); /* AlphaPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[0], rleSizes[0],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 2,
- vFlip); /* LumaPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 2,
+ vFlip); /* LumaPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[1], rleSizes[1],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 1,
- vFlip); /* OrangeChromaPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 1,
+ vFlip); /* OrangeChromaPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[2], rleSizes[2],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 0,
- vFlip); /* GreenChromaPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 0,
+ vFlip); /* GreenChromaPlane */
if (status < 0)
return FALSE;
else /* NoAlpha */
{
status = planar_decompress_plane_rle(planes[0], rleSizes[0],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 2,
- vFlip); /* LumaPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 2,
+ vFlip); /* LumaPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[1], rleSizes[1],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 1,
- vFlip); /* OrangeChromaPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 1,
+ vFlip); /* OrangeChromaPlane */
if (status < 0)
return FALSE;
status = planar_decompress_plane_rle(planes[2], rleSizes[2],
- pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 0,
- vFlip); /* GreenChromaPlane */
+ pTempData, nTempStep, nXDst, nYDst, nSrcWidth, nSrcHeight, 0,
+ vFlip); /* GreenChromaPlane */
if (status < 0)
return FALSE;
}
if (prims->YCoCgToRGB_8u_AC4R(pTempData, nTempStep, pDstData, DstFormat,
- nDstStep,
- w, h, cll, alpha) != PRIMITIVES_SUCCESS)
+ nDstStep,
+ w, h, cll, alpha) != PRIMITIVES_SUCCESS)
return FALSE;
}
}
static BOOL freerdp_split_color_planes(const BYTE* data, UINT32 format,
- UINT32 width, UINT32 height,
- UINT32 scanline, BYTE** planes)
+ UINT32 width, UINT32 height,
+ UINT32 scanline, BYTE** planes)
{
INT32 i, j, k;
k = 0;
const UINT32 color = ReadColor(pixel, format);
pixel += GetBytesPerPixel(format);
SplitColor(color, format, &planes[1][k], &planes[2][k],
- &planes[3][k], &planes[0][k], NULL);
+ &planes[3][k], &planes[0][k], NULL);
k++;
}
}
}
static UINT32 freerdp_bitmap_planar_encode_rle_bytes(const BYTE* pInBuffer,
- UINT32 inBufferSize,
- BYTE* pOutBuffer,
- UINT32 outBufferSize)
+ UINT32 inBufferSize,
+ BYTE* pOutBuffer,
+ UINT32 outBufferSize)
{
BYTE symbol;
const BYTE* pInput;
{
pBytes = pInput - (cRawBytes + nRunLength + 1);
nBytesWritten = freerdp_bitmap_planar_write_rle_bytes(
- pBytes, cRawBytes,
- nRunLength, pOutput,
- outBufferSize);
+ pBytes, cRawBytes,
+ nRunLength, pOutput,
+ outBufferSize);
nRunLength = 0;
if (!nBytesWritten || (nBytesWritten > outBufferSize))
{
pBytes = pInput - (cRawBytes + nRunLength);
nBytesWritten = freerdp_bitmap_planar_write_rle_bytes(pBytes,
- cRawBytes, nRunLength, pOutput, outBufferSize);
+ cRawBytes, nRunLength, pOutput, outBufferSize);
if (!nBytesWritten)
return 0;
}
BYTE* freerdp_bitmap_planar_compress_plane_rle(const BYTE* inPlane,
- UINT32 width, UINT32 height,
- BYTE* outPlane, UINT32* dstSize)
+ UINT32 width, UINT32 height,
+ BYTE* outPlane, UINT32* dstSize)
{
UINT32 index;
const BYTE* pInput;
while (outBufferSize)
{
nBytesWritten = freerdp_bitmap_planar_encode_rle_bytes(
- pInput, width, pOutput, outBufferSize);
+ pInput, width, pOutput, outBufferSize);
if ((!nBytesWritten) || (nBytesWritten > outBufferSize))
return NULL;
dstSizes[0] = outPlanesSize;
if (!freerdp_bitmap_planar_compress_plane_rle(
- inPlanes[0], width, height, outPlanes, &dstSizes[0]))
+ inPlanes[0], width, height, outPlanes, &dstSizes[0]))
return 0;
outPlanes += dstSizes[0];
dstSizes[1] = outPlanesSize;
if (!freerdp_bitmap_planar_compress_plane_rle(inPlanes[1], width, height,
- outPlanes, &dstSizes[1]))
+ outPlanes, &dstSizes[1]))
return 0;
outPlanes += dstSizes[1];
dstSizes[2] = outPlanesSize;
if (!freerdp_bitmap_planar_compress_plane_rle(inPlanes[2], width, height,
- outPlanes, &dstSizes[2]))
+ outPlanes, &dstSizes[2]))
return 0;
outPlanes += dstSizes[2];
dstSizes[3] = outPlanesSize;
if (!freerdp_bitmap_planar_compress_plane_rle(inPlanes[3], width, height,
- outPlanes, &dstSizes[3]))
+ outPlanes, &dstSizes[3]))
return 0;
outPlanes += dstSizes[3];
}
BYTE* freerdp_bitmap_planar_delta_encode_plane(const BYTE* inPlane,
- UINT32 width, UINT32 height,
- BYTE* outPlane)
+ UINT32 width, UINT32 height,
+ BYTE* outPlane)
{
char s2c;
INT32 delta;
}
BOOL freerdp_bitmap_planar_delta_encode_planes(const BYTE** inPlanes,
- UINT32 width, UINT32 height,
- BYTE* outPlanes[4])
+ UINT32 width, UINT32 height,
+ BYTE* outPlanes[4])
{
UINT32 i;
for (i = 0; i < 4; i++)
{
outPlanes[i] = freerdp_bitmap_planar_delta_encode_plane(
- inPlanes[i], width, height, outPlanes[i]);
+ inPlanes[i], width, height, outPlanes[i]);
if (!outPlanes[i])
return FALSE;
}
BYTE* freerdp_bitmap_compress_planar(BITMAP_PLANAR_CONTEXT* context,
- const BYTE* data, UINT32 format,
- UINT32 width, UINT32 height, UINT32 scanline,
- BYTE* dstData, UINT32* pDstSize)
+ const BYTE* data, UINT32 format,
+ UINT32 width, UINT32 height, UINT32 scanline,
+ BYTE* dstData, UINT32* pDstSize)
{
UINT32 size;
BYTE* dstp;
planeSize = width * height;
if (!freerdp_split_color_planes(data, format, width, height, scanline,
- context->planes))
+ context->planes))
return NULL;
if (context->AllowRunLengthEncoding)
{
if (!freerdp_bitmap_planar_delta_encode_planes(
- context->planes, width, height,
- context->deltaPlanes))
+ context->planes, width, height,
+ context->deltaPlanes))
return NULL;;
if (freerdp_bitmap_planar_compress_planes_rle(
- context->deltaPlanes, width, height,
- context->rlePlanesBuffer, dstSizes,
- context->AllowSkipAlpha) > 0)
+ context->deltaPlanes, width, height,
+ context->rlePlanesBuffer, dstSizes,
+ context->AllowSkipAlpha) > 0)
{
int offset = 0;
FormatHeader |= PLANAR_FORMAT_HEADER_RLE;
context->planes[2] = &context->planesBuffer[context->maxPlaneSize * 2];
context->planes[3] = &context->planesBuffer[context->maxPlaneSize * 3];
context->deltaPlanes[0] = &context->deltaPlanesBuffer[context->maxPlaneSize *
- 0];
+ 0];
context->deltaPlanes[1] = &context->deltaPlanesBuffer[context->maxPlaneSize *
- 1];
+ 1];
context->deltaPlanes[2] = &context->deltaPlanesBuffer[context->maxPlaneSize *
- 2];
+ 2];
context->deltaPlanes[3] = &context->deltaPlanesBuffer[context->maxPlaneSize *
- 3];
+ 3];
return TRUE;
}