{
case FORMAT_R8:
case FORMAT_X8R8G8B8:
+ case FORMAT_X8B8G8R8:
case FORMAT_A8R8G8B8:
+ case FORMAT_A8B8G8R8:
case FORMAT_V8U8:
case FORMAT_Q8W8V8U8:
case FORMAT_X8L8V8U8:
{
case FORMAT_R8:
case FORMAT_X8R8G8B8:
+ case FORMAT_X8B8G8R8:
case FORMAT_A8R8G8B8:
+ case FORMAT_A8B8G8R8:
case FORMAT_V8U8:
case FORMAT_Q8W8V8U8:
case FORMAT_X8L8V8U8:
c.x = UnpackLow(As<Byte8>(c.x), As<Byte8>(c.x));
c.w = UnpackHigh(As<Byte8>(c.w), As<Byte8>(c.w));
break;
+ case FORMAT_A8B8G8R8:
case FORMAT_Q8W8V8U8:
c.z = c.x;
c.x = As<Short4>(UnpackLow(c.x, c.y));
c.y = UnpackHigh(As<Byte8>(c.y), As<Byte8>(c.y));
c.x = UnpackLow(As<Byte8>(c.x), As<Byte8>(c.x));
break;
+ case FORMAT_X8B8G8R8:
case FORMAT_X8L8V8U8:
c.z = c.x;
c.x = As<Short4>(UnpackLow(c.x, c.y));
c.z = As<Short4>(UnpackHigh(c.z, c.y));
c.y = c.x;
- c.x = UnpackLow(As<Byte8>(c.x), As<Byte8>(Short4(0x0000, 0x0000, 0x0000, 0x0000)));
- c.x = c.x << 8;
- c.y = UnpackHigh(As<Byte8>(c.y), As<Byte8>(Short4(0x0000, 0x0000, 0x0000, 0x0000)));
- c.y = c.y << 8;
+ c.x = UnpackLow(As<Byte8>(c.x), As<Byte8>(c.x));
+ c.y = UnpackHigh(As<Byte8>(c.y), As<Byte8>(c.y));
c.z = UnpackLow(As<Byte8>(c.z), As<Byte8>(c.z));
break;
default:
{
case FORMAT_G8R8:
case FORMAT_X8R8G8B8:
+ case FORMAT_X8B8G8R8:
case FORMAT_A8R8G8B8:
+ case FORMAT_A8B8G8R8:
case FORMAT_V8U8:
case FORMAT_Q8W8V8U8:
case FORMAT_X8L8V8U8:
{
case FORMAT_G8R8: return component < 2;
case FORMAT_X8R8G8B8: return component < 3;
+ case FORMAT_X8B8G8R8: return component < 3;
case FORMAT_A8R8G8B8: return component < 3;
+ case FORMAT_A8B8G8R8: return component < 3;
case FORMAT_V8U8: return false;
case FORMAT_Q8W8V8U8: return false;
case FORMAT_X8L8V8U8: return false;