directx中的一个问题

dongqings1982 2009-03-11 11:02:54
#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
请明白的人给我讲一下,详细点
...全文
69 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧