进入色彩的世界——调色板

DirectDraw支持很多不同的色彩深度,1,2,4,8,16,24,32。这里主要说一下8bpp,即256色,这也是初学者的好模式。
 
使用8位色彩模式要做的就是创建一个调色板并且告诉DirectDraw你希望使用它,步骤如下:
  1. 创建一个或多个调色板数据结构:大小为256的PALETTEENTRY数组。
  2. 从DirectDraw对象自身创建一个DirectDraw调色板接口IDirectDrawPalette对象。一般情况下这将直接映射到硬件VGA调色板寄存器。
  3. 将调色板关联到绘图表面。

以下给出一些参考代码:

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)——下一章,我们的主角上场的时候就要到了。

By Lu Jun

80后男,就职于软件行业。习于F*** GFW。人生48%时间陪同电子设备和互联网,美剧迷,高清视频狂热者,游戏菜鸟,长期谷粉,临时果粉,略知摄影。

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.