下面的代码将一行从 8 位调色板格式转换为 32-RGBA。
在我尝试实现它之前,我想知道下面的代码是否适合使用Direct-Math或ARM Neon 内在函数或内联汇编进行优化。我第一次看文档并没有发现任何可以涵盖表查找部分的内容。
void CopyPixels(BYTE *pDst, BYTE *pSrc, int width,
const BYTE mask, Color* pColorTable)
{
if (width)
{
do
{
BYTE b = *pSrc++;
if (b != mask)
{
// Translate to 32-bit RGB value if not masked
const Color* pColor = pColorTable + b;
pDst[0] = pColor->Blue;
pDst[1] = pColor->Green;
pDst[2] = pColor->Red;
pDst[3] = 0xFF;
}
// Skip to next pixel
pDst += 4;
}
while (--width);
}
}