SetEntries()的使用(转)

What Are Palettes?
基于调色板的页面需要调色板才能真正有意义的显示出来.一个基于调色板的页面,通常也被称作一个"色彩索引"页面,仅仅是一些数字的集合,其中的每一个数字代表一个像素.每一个数字的值都对应于一个色彩表(color table)中的项,这个表告诉 DirectDraw 对这个像素使用什么样的颜色. DirectDrawPalette 对象,通常简称为"调色板",给你提供了一个及其方便的途径来管理调色板.那些使用16位或更高位像素格式的页面并不使用调色板.

提供 DirectDrawPalette 对象是为了拥有直接操作 16 和 256 色调色板的特性(一个 DirectDrawPalette 对象通常与一个 DirectDrawSurface 对象相依属).一个 DirectDrawPalette 对象保留了一个从 0 到 255 的 256 色调色板的入口;它不保留 16 色调色板的任何入口.它允许直接对色彩表(color table)的直接操作.一个色彩表是一系列颜色值(典型的是 RGB 三个一组).这个表可以包含 16 或 24 位的 RGB 色彩入口,代表与每一个索引相对应的颜色.对 16 色调色板来说,色彩表可以包含另一个 256 色调色板的索引.调色板被材质图,离屏页面(off-screen surfaces),覆盖页面(overlay surfaces)所支持,它们并不需要与主页面(primary surface)拥有同样的调色板.

你可以通过调用 IDirectDraw4::CreatePalette 函数来创建一个调色板.该函数将返回一个指向 IdirectDrawPalette 接口的调色板对象的指针.你可以使用该接口的函数来操作调色板入口,获得关于调色板对象能力的信息,或初始化该对象(如果你用 CoCreateInstance 函数创建它).

你可以通过调用 IDirectDrawSurface4::SetPalette 函数将一个调色板连接到一个页面上.一个调色板可以被连接到若干个页面.

DirectDrawPalette 对象为一个 8 位的调色板保留了从 0 到 255 的入口,除非你指定了 DDPCAPS_ALLOW256 标志请求所有这些入口都可以被你所用.

通过调用 IDirectDrawPalette::GetEntries, 应用程序可以获得这些表的入口,并且可以通过 IDirectDrawPalette::SetEntries 改变这些入口.这个函数有一个 dwFlags 参数,指定对于调色板的改动是否立即生效.

IDirectDrawPalette::SetEntries
该函数立即改变一个 DirectDrawPalette 对象的调色板入口。

HRESULT SetEntries(
  DWORD dwFlags,         
  DWORD dwStartingEntry, 
  DWORD dwCount,         
  LPPALETTEENTRY lpEntries 
);

参数
dwFlags
该参数目前未用,必须设为0。
dwStartingEntry
要改变的第一个调色板入口。
dwCount
要改变的调色板入口个数。
lpEntries
调色板入口的地址。如果给调色板设置了 DDPCAPS_8BITENTRIES 标志(为索引调色板),则每个入口为1字节,其余类型调色板的每个入口为4字节。其内容为颜色值的描述。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值