- 创建一个或多个调色板数据结构:大小为256的PALETTEENTRY数组。
- 从DirectDraw对象自身创建一个DirectDraw调色板接口IDirectDrawPalette对象。一般情况下这将直接映射到硬件VGA调色板寄存器。
- 将调色板关联到绘图表面。
以下给出一些参考代码:
PALETTEENTRY palette[256];
// fill ’em up with color
palette[0].peRed = 0;
palette[0].peGreen = 0;
palette[0].peBlue = 0;
palette[0].peFlags = PC_NOCOLLAPSE;
//……fill in the internal 1- 254
palette[255].peRed = 255;
palette[255].peGreen = 255;
palette[255].peBlue = 255;
palette[255].peFlags = PC_NOCOLLAPSE;LPDIRECTDRAWPALETTE lpddpal;
lpdd7->CreatePalette(DDPCAPS_8BIT |
DDPCAPS_ALLOW256 |
DDPCAPS_INITIALIZE,
palette,
&lpddpal,
NULL);
有了调色板,对于256色的图像显示就不是问题了。但是现在的问题是我们要在那里显示图像呢?
显示表面(Surface)——下一章,我们的主角上场的时候就要到了。