|
djygui正在闭关加紧开发中,这是从代码中copy的色彩管理方案,征求意见。
//像素色彩格式定义,
//系统格式(sys)是djygui和显卡driver都必须支持的格式。
//扩展格式(ext),djygui提供转换函数支持,但显卡driver则可以支持也可以不支持的格式。
//私有格式,显卡driver内部可使用上述定义以外的私有格式。
//应用程序可以通过driver查询显卡实际使用的格式。
//如果显卡使用私有格式,则上层查询显卡格式时,返回0(cn_private_pf).
//应用程序绘制点、线、填充等功能时,必须使用cn_sys_pf_r8g8b8格式,如果窗口类型是
//逐点alpha,则应使用cn_sys_pf_a8r8g8b8格式。
//应用程序绘制位图时,如果使用显卡实际使用的像素格式,将获得最优化的显示速度。
//应用程序选择像素格式的方法:
// 1、先查询显卡格式,使用与之相同的格式,
// 2、使用系统格式,所有显卡driver无条件支持
// 3、如果显卡使用私有格式,则应用程序必须使用系统格式来绘制。
//当应用程序需要获取窗口或screen上的矩形(单像素是长宽为1的矩形)时,则先初始化
//好一个struct bitmap结构,并指定所需要的像素格式,也可以指定cn_private_pf格式,
//在同一个系统内移动(copy)屏幕区域时分有用。然后调用gui的系统调用,由gui调用显
//卡driver的功能,显卡driver则填充bitmap中的显存。
#define cn_private_pf 0x90 //显卡私有格式
#define cn_sys_pf_gray1 0x01 //单色
#define cn_sys_pf_gray4 0x02 //4位16级灰度
#define cn_sys_pf_gray8 0x03 //8位256级灰度,用于黑白照片等
#define cn_sys_pf_r3g3b2 0x04 //256色,r在高位
#define cn_sys_pf_r5g6b5 0x05 //16色,r在高位
#define cn_sys_pf_r8g8b8 0x06 //24位色,r在高字节,最高字节空
#define cn_sys_pf_a8r8g8b8 0x07 //24位色+8位alpha透明,a在高字节
#define cn_sys_pf_r10g10b10 0x08 //30位色,最高两位暂无定义,r在高位
#define cn_ext_pf_gray2 0x10 //2位4级灰度
#define cn_ext_pf_r4g4b4p 0x11 //12位色,压缩存储,每像素12bit,r在高位
#define cn_ext_pf_r4g4b4h 0x12 //12位色,扩展存储,每像素占高12bit,r在高位
#define cn_ext_pf_r4g4b4l 0x13 //12位色,扩展存储,每像素占低12bit,r在高位
#define cn_ext_pf_r5g5b5c1 0x14 //16位色,r在高位,c为rgb共用低位
#define cn_ext_pf_666 0x15 //18位色,r在高位,每像素32bit,高18bit空
//可以继续定义新格式,使之包含目标系统实际色彩格式,可以最大限度地优化显示速度,
//同时又不影响程序的可移植性。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|