[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Re: カラーテーブルについて
奥山@IBMです。
>>>>> "近藤" == こんどうだす <feritaro@d1.dion.ne.jp> writes:
近藤> ・WinPalette()を使用して、PalmのLUT全て(256)の更新を行う。
近藤> ・そうすると、サムネイル表示は正しく表示される。
近藤> ・しかし、画面が真っ黒、文字は真っ白、メニューは緑というように色の
近藤> 反転が発生してしまいます。
Palm は色を直接指定する direct color ではなく、0..255 までの番号でカ
ラーパレットを指定している indirect color で色を指定しているわけです
よね?
「画面」やら「文字」やら「メニュー」やらの色は、「Lookup table を変
更する前」に色とパレット番号の対応を取ったはずです。そのパレット番号
で画面を描画すれば、Lookup Table にはもうそのような色は使われていな
いのですから、当然おかしな色で表示されることになります。
ところが、しばらく操作していくと、その中に時々
「この色を表示したいんだけど、カラーパレットで言うと何番?」
ということを検索する部分があるはずで、そこを通るとその部分は「より近
い色」を持ったパレット番号に差し替えられることになります。
LookUpTable を変更した後に、その事をすべてのアプリケーション(OSのア
プリケーションインターフェースも含めて)に通達して、表示色とパレット
番号の対応を取りなおし、再描画する必要があるのにその操作をしていない
のが問題の発生原因です。
これを解決する方法は、
「サムネイル表示時に、LookupTable を変更したら、パレット番号を取りな
おし、全て再描画する」
「サムネイル表示時には、他の部分に影響を受けないような部分だけの
LookupTable を書き換え、そこだけを使う」(一般的な解法ではない)
「サムネイル表示時に、カラーパレットを書き換えない」
(当然、色は狂わない)
などがあるでしょう。
----
奥山 健一@東京基礎研究所.日本IBM(株)[虹野FC:No.0000000015]
#URL http://www.dd.iij4u.or.jp/~okuyamak/
#今日のお言葉『e-japan』:今更?