color mode (独自の拡張)

 色を指定するのに,パレットを用いずに,色を表す24ビットの整数を直接,色指標として用いるモードを用意した。パレットの個数の制約がなくなり,ASK PIXEL ARRAY および ASK PIXEL VALUEですべての色を取得できるようになる。

SET COLOR MODE 文字列式
 文字列式の値は"NATIVE","REGULAR"のいずれか。
 文字列値が"REGULAR"であると,パレットを用いる通常モード。
 文字列値が"NATIVE"のとき,色指標として下位8ビットが赤,中位8ビットが緑,上位8ビットが青の強度を意味する24ビットの整数を用いるモードに移行する。利用できる色指標の最大値は16777215。

 color modeがnativeのとき,SET COLOR MIX文は無効。
 モード切り替え時,画面を消去しない。
 color modeをnativeに切り換えるとき,背景色(clear文が使う色),line color,point color,area color, text colorを引き継ぐ。
 逆に,color modeをregularに切り替えると,line color,point color,area color,text colorは 1 に設定される。

ASK COLOR MODE 文字列変数
 現在のcolor modeを文字列変数に取得する。


色指標を得る関数

COLORINDEX(r,g,b)
 r,g,bは数値式
 r,g,bに,0以上1以下の数値で,赤,緑,青の強度を指定する。
 結果は,指定した色の色指標。
 color modeがREGULARのとき,指定された色がパレットにないと,-1。

例 青字で"Hello"を描く
10 SET COLOR MODE "NATIVE"
20 SET TEXT COLOR ColorIndex(0,0,1)
30 PLOT TEXT ,AT 0,0:"Hello"
40 END


<参考>色を16進数で指定したいときは,BVAL関数を用いる。
 たとえば,青は,BVAL("FF0000",16)。

<注意>色を指定する整数のバイト構成が,HTMLと逆。
 HTMLでは上位バイトからRGBの順に指定するが,Windowsでは下位バイトからRGBの順。

<補足>
 CLEAR文は,モード切替え前にSET COLOR MIX(0)で割り当てられた色で画面を塗りつぶす。