directx中的一个问题
#define MAX_COLORS_PALETTE 256
PALETTEENTRY palette[256];
// create a R,G,B,GR gradient palette
for (int index=0; index < MAX_COLORS_PALETTE; index++)
{
// set each entry
if (index < 64) // shades of red
palette[index].peRed = index*4;
else // shades of green
if (index >= 64 && index < 128)
palette[index].peGreen = (index-64)*4;
else // shades of blue
if (index >= 128 && index < 192)
palette[index].peBlue = (index-128)*4;
else // shades of grey
if (index >= 192 && index < 256)
palette[index].peRed = palette[index].peGreen =
palette[index].peBlue = (index-192)*4;
// set flag to force directdraw to leave alone
palette[index].peFlags = PC_NOCOLLAPSE;
} // end for index
这段代码是给调色版分配色彩,但是我不明白palette[index].peRed = index*4; ,palette[index].peGreen = (index-64)*4;palette[index].peBlue = (index-128)*4;palette[index].peRed = palette[index].peGreen =
palette[index].peBlue = (index-192)*4;为什么要index-64再乘以4
请明白的人给我讲一下,详细点