[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 8 bit indexed color support
鈴木(康)です。
<00ea01bf926c$5af5ba80$0101a8c0@SHIN>の記事において
takemura@netbsd.orgさんは書きました。
| MC-R500 などの color palette を持つマシンのために、
| pbsdboot.exe で color map を設定するようにしました。
| bivideo もこれに対応して WSDISPLAYIO_GETCMAP を
| サポートしました。
|
| 8bit color の場合には、/dev/ttyE? に対する ioctl で
| 以下のようにすれば color map が取得できます。
|
| struct wsdisplay_cmap cmap;
| u_char r[256], g[256], b[256];
| cmap.index = 0;
| cmap.count = 256;
| cmap.red = r;
| cmap.green = g;
| cmap.blue = b;
| ioctl(fd, WSDISPLAYIO_GETCMAP, &cmap);
|
| Takemura
了解しました。
# 対応は、ちょっとまってください。
# 最近 時間的にちょっと厳しくなってきています。
color map が取得できるのは嬉しいのですが、
以前の pbsdboot.exe との区別は可能ですか?
1. ioctl がエラーになる?
2. 全部 0
ぐらいをイメージしていますが、どうでしょう?
あと、RGB のパターンは 変更の可能性が
あるのでしょうか?
だとすると 一番近い値を取るようにした方が良さそうですね。
欲しい RGB 値を r g b、
設定されている RGB 値を R G B とすると
2 2 2
(R - r) + (G -g) + (R - r)
が一番小さいものを取って来れば良い?
たいした演算量ではないと思うんで、初期化のたびに計算してもよさそうですね。
--
鈴木 康司 @NEC
suz@hpc.bs1.fc.nec.co.jp
TEL 0423-33-5381