Fix nsc server side after color conversion.
We use new color format system and PIXEL_FORMAT_BGRX32 is the unified buffer color format. Add support for PIXEL_FORMAT_BGRX32 in nsc
This commit is contained in:
parent
bd1ec5fe53
commit
5e1f745868
@ -373,7 +373,7 @@ BOOL interleaved_compress(BITMAP_INTERLEAVED_CONTEXT* interleaved,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (bpp == 24)
|
if (bpp == 24)
|
||||||
DstFormat = PIXEL_FORMAT_XRGB32;
|
DstFormat = PIXEL_FORMAT_BGRX32;
|
||||||
else if (bpp == 16)
|
else if (bpp == 16)
|
||||||
DstFormat = PIXEL_FORMAT_RGB16;
|
DstFormat = PIXEL_FORMAT_RGB16;
|
||||||
else if (bpp == 15)
|
else if (bpp == 15)
|
||||||
|
@ -126,6 +126,14 @@ static void nsc_encode_argb_to_aycocg(NSC_CONTEXT* context, const BYTE* data,
|
|||||||
{
|
{
|
||||||
switch (context->pixel_format)
|
switch (context->pixel_format)
|
||||||
{
|
{
|
||||||
|
case PIXEL_FORMAT_BGRX32:
|
||||||
|
b_val = *src++;
|
||||||
|
g_val = *src++;
|
||||||
|
r_val = *src++;
|
||||||
|
src++;
|
||||||
|
a_val = 0xFF;
|
||||||
|
break;
|
||||||
|
|
||||||
case PIXEL_FORMAT_BGRA32:
|
case PIXEL_FORMAT_BGRA32:
|
||||||
b_val = *src++;
|
b_val = *src++;
|
||||||
g_val = *src++;
|
g_val = *src++;
|
||||||
@ -133,6 +141,14 @@ static void nsc_encode_argb_to_aycocg(NSC_CONTEXT* context, const BYTE* data,
|
|||||||
a_val = *src++;
|
a_val = *src++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PIXEL_FORMAT_RGBX32:
|
||||||
|
r_val = *src++;
|
||||||
|
g_val = *src++;
|
||||||
|
b_val = *src++;
|
||||||
|
src++;
|
||||||
|
a_val = 0xFF;
|
||||||
|
break;
|
||||||
|
|
||||||
case PIXEL_FORMAT_RGBA32:
|
case PIXEL_FORMAT_RGBA32:
|
||||||
r_val = *src++;
|
r_val = *src++;
|
||||||
g_val = *src++;
|
g_val = *src++;
|
||||||
|
@ -76,6 +76,17 @@ static void nsc_encode_argb_to_aycocg_sse2(NSC_CONTEXT* context,
|
|||||||
{
|
{
|
||||||
switch (context->pixel_format)
|
switch (context->pixel_format)
|
||||||
{
|
{
|
||||||
|
case PIXEL_FORMAT_BGRX32:
|
||||||
|
b_val = _mm_set_epi16(*(src + 28), *(src + 24), *(src + 20), *(src + 16),
|
||||||
|
*(src + 12), *(src + 8), *(src + 4), *src);
|
||||||
|
g_val = _mm_set_epi16(*(src + 29), *(src + 25), *(src + 21), *(src + 17),
|
||||||
|
*(src + 13), *(src + 9), *(src + 5), *(src + 1));
|
||||||
|
r_val = _mm_set_epi16(*(src + 30), *(src + 26), *(src + 22), *(src + 18),
|
||||||
|
*(src + 14), *(src + 10), *(src + 6), *(src + 2));
|
||||||
|
a_val = _mm_set1_epi16(0xFF);
|
||||||
|
src += 32;
|
||||||
|
break;
|
||||||
|
|
||||||
case PIXEL_FORMAT_BGRA32:
|
case PIXEL_FORMAT_BGRA32:
|
||||||
b_val = _mm_set_epi16(*(src + 28), *(src + 24), *(src + 20), *(src + 16),
|
b_val = _mm_set_epi16(*(src + 28), *(src + 24), *(src + 20), *(src + 16),
|
||||||
*(src + 12), *(src + 8), *(src + 4), *src);
|
*(src + 12), *(src + 8), *(src + 4), *src);
|
||||||
@ -88,6 +99,17 @@ static void nsc_encode_argb_to_aycocg_sse2(NSC_CONTEXT* context,
|
|||||||
src += 32;
|
src += 32;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PIXEL_FORMAT_RGBX32:
|
||||||
|
r_val = _mm_set_epi16(*(src + 28), *(src + 24), *(src + 20), *(src + 16),
|
||||||
|
*(src + 12), *(src + 8), *(src + 4), *src);
|
||||||
|
g_val = _mm_set_epi16(*(src + 29), *(src + 25), *(src + 21), *(src + 17),
|
||||||
|
*(src + 13), *(src + 9), *(src + 5), *(src + 1));
|
||||||
|
b_val = _mm_set_epi16(*(src + 30), *(src + 26), *(src + 22), *(src + 18),
|
||||||
|
*(src + 14), *(src + 10), *(src + 6), *(src + 2));
|
||||||
|
a_val = _mm_set1_epi16(0xFF);
|
||||||
|
src += 32;
|
||||||
|
break;
|
||||||
|
|
||||||
case PIXEL_FORMAT_RGBA32:
|
case PIXEL_FORMAT_RGBA32:
|
||||||
r_val = _mm_set_epi16(*(src + 28), *(src + 24), *(src + 20), *(src + 16),
|
r_val = _mm_set_epi16(*(src + 28), *(src + 24), *(src + 20), *(src + 16),
|
||||||
*(src + 12), *(src + 8), *(src + 4), *src);
|
*(src + 12), *(src + 8), *(src + 4), *src);
|
||||||
|
Loading…
Reference in New Issue
Block a user