Pcgame 版 (精华区)
发信人: bell (花开时是冷冷月光), 信区: Pcgame
标 题: Allegro 中译文档(真彩点格式)
发信站: 紫 丁 香 (Tue May 4 14:26:44 1999), 转信
真彩点格式
makecol8
makecol15
makecol16
makecol24
makecol32
makecol
makecol_depth
getr8
getg8
getb8
getr15
getg15
getb15
getr16
getg16
getb16
getr24
getg24
getb24
getr32
getg32
getb32
getr
getg
getb
getr_depth
getg_depth
getb_depth
palette_color
MASK_COLOR_8
MASK_COLOR_15
MASK_COLOR_16
MASK_COLOR_24
MASK_COLOR_32
在真彩显示模式下,红绿蓝组成了每个点 并且直接连在一起成为色彩值, 而不是使用一个调
色板查找表. 在 15 位模式每种颜色占 5 位, 在 16 位模式 每个点红色和蓝色占 5 位绿
色占 6 位, 24 和 32 位模式 每种颜色占 8 位 ( 32 位点简单的增加一个 额外的填充字
节来调整数据). 这些成分的布局 会因你的硬件而改变, 但是通常是 RGB 或 BGR 之一. 因
为一个显示模式在使用之前并不知道布局, 你必须在使用下面的例程之前调用
set_gfx_mode()!
int makecol8(int r, int g, int b);
int makecol15(int r, int g, int b);
int makecol16(int r, int g, int b);
int makecol24(int r, int g, int b);
int makecol32(int r, int g, int b);
这些函数将颜色从独立于硬件的形式 (红绿蓝,范围 0-255) 转换到 依赖于点格式显示值.
转换到 15, 16, 24 或 32 位格式只需要做几个 移位, 因此相当的有效. 转换到 8 位颜色
则需要搜索调色板以寻找最佳匹配, 如果你 不设置一个 RGB 映射表(见后) 这相当的慢.
int makecol(int r, int g, int b);
将颜色从独立于硬件的格式 (红绿蓝,范围 0-255) 转换到当前显示模式决定的点格式, 它
调用前面 8, 15, 16, 24, 或 32 位 makecol 函数中合适的一个.
int makecol_depth(int color_depth, int r, int g, int b);
将颜色从于硬件独立的格式 (红绿蓝, 范围 0-255) 转换到指定颜色深度的点格式.
int getr8(int c);
int getg8(int c);
int getb8(int c);
int getr15(int c);
int getg15(int c);
int getb15(int c);
int getr16(int c);
int getg16(int c);
int getb16(int c);
int getr24(int c);
int getg24(int c);
int getb24(int c);
int getr32(int c);
int getg32(int c);
int getb32(int c);
给出在显示模式的点格式下的一个颜色, 这些函数将截取红绿蓝组合中的一个 (范围
0-255).
int getr(int c);
int getg(int c);
int getb(int c);
给出现在正在使用的显示模式下使用的点格式的一个颜色, 这些 函数将截取红绿蓝组合中
的一个(范围 0-255), 它调用前面的 8, 15, 16, 24 或 32 位 get 函数中合适的一个.
int getr_depth(int color_depth, int c);
int getg_depth(int color_depth, int c);
int getb_depth(int color_depth, int c);
给出指定颜色深度的点格式中的一个颜色, 这些函数将截取红绿蓝组合中的一个 (范围
0-255).
extern int palette_color[256];
由当前的显示模式使用的映射调色板序列 (0-255) 到其它任何点格式的一张表. 在 256 色
模式下,它恰好映射 序列数组. 在真彩模式下, 它在当前的调色板里查找指定的颜色号, 然
后将 RGB 值转换到 合适的点格式.
#define MASK_COLOR_8 0
#define MASK_COLOR_15 (5.5.5 点)
#define MASK_COLOR_16 (5.6.5 点)
#define MASK_COLOR_24 (8.8.8 点)
#define MASK_COLOR_32 (8.8.8 点)
定义每个颜色深度下的透明精灵的掩点. 在 256
色的分辨率下为 0, 在真彩模式下 是亮粉
红色点 (红值和蓝值最大, 绿值为零).
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: jxjd.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.313毫秒