[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:6625] display-color-cells on Remote Desktop



> プレーンごとのビット数というのは正しいようです。
...
> Windowsでの、現実は1プレーンしかない、という扱いで、R/G/Bの各色がプレーンだという
> ことではないようで。実際DirectShowの記述ではPLANESを使ってませんね。

 そもそも16ビットカラーっていうのも3で割れないのでRGB各nビットとい
う形ではないですね. プレーン数を取得できるのはレガシープログラムへ
の互換性提供という感じなのか. よくわからん.

> Step 1. Specify the Media Type
> 
> で、Emacsでのdpyinfo->n_planes が GetDeviceCaps(hdc, PLANES)に
> 等しいのかは調べてませんが、そこらへんはチェックしとかないと。

 mw32_term_init()@mw32term.c で入れてますね.

mw32term.c:3763
|    dpyinfo->n_planes = (GetDeviceCaps (hdc, BITSPIXEL)
|			 * GetDeviceCaps (hdc, PLANES));

 これが 1だったらモノクロームで 2以上でグレイスケール可,3 以上だと
カラーだそうです. まぁわかるようなわからんような..

> 単純なWindows EXEで試したのですが、
> local環境(色数は「最高(32bit)」では
...
> という結果でした。

 どもです. どうやらリモートだと常に NUMCOLORS は 20 で, ローカルで
 32ビットだと -1 というわけで NUMCOLORS は使えないということでOK?

> remote 24bppだとRC_PALETTE=FALSEでもBITSPIXELは16なんですねぇ。
> それでTrueColorは出せるのか?

 うぅむ. なんかよくわからないですが, Meadow的には多分 256色以上か
そうでないか程度の識別以上には使ってなさそうなので問題なしというこ
とで^^;

 というか, ローカル32ビットカラーに対してで BITSPIXEL=32,
COLORRES=24 って.. あれですか? , " デバイスはは256階調x3 だけどハー
ドウェアによるディザリングで擬似トゥルーカラー表示可"ってのはこの
ことなんでしょうか... (ちがうか)


> 前述のとおり、PLANESを使用して、
> 
> bpp = GetDeviceCaps(hdc, PLANES) *  GetDeviceCaps(hdc, BITSPIXEL)
> cap = 1 << min(bpp, 24);
> 
> とすればよいのではないでしょうか。

 そうですね. mw32_get_devie_capability()@mw32term.c の colors のと
ころでも 20色なんてかえされちゃかなわないので同様にする必要があり
ますかね.

-- 
ほりぐちきょうたろう