こんばんは、川合です。
belle3aとtest043をベータリリースしました。まずはbelle3aの説明
を。
・16bitグラフィックボックスが使えます
・32bitグラフィックボックスも使えます
これだけです。今のところこれらのグラフィックボックスに許される
操作は、openとflushだけです。lineをひいたりはできません。現時点
ではしょうがないのでmt_xor.cのようにダイレクトにグラフィックボッ
クスをいじってください。
32bitグラフィックボックスのサンプルがtest043a、test043bです。
16bitグラフィックボックスのサンプルがtest043c、test043dです。
16bitグラフィックボックスは1ドットが2バイトで、その中身は次の
ようになっています。
bit 11-15 : red (5bit)
bit 5-10 : green (6bit)
bit 0- 4 : blue (5bit)
32bitグラフィックボックスは1ドットが4バイトで、その中身は次の
ようになっています。
bit 16-23 : red (8bit)
bit 8-15 : green (8bit)
bit 0- 7 : blue (8bit)
bit 24-31 : reserve (8bit) ← これは必ず0にしてください
説明はまだ終わりません。belle3aをダウンロードしてtest043もダウ
ンロードしたら、まず、belle3aを起動して32bitカラーモードにしてく
ださい。そして、test043a〜test043dを起動してみてください(一度に
4つ起動しなくてもいいです・・・比べたいものどうしを起動してじっ
くり見比べてください)。
test043aとtest043bは32bitグラフィックボックスなので、もちろん
きれいです。test043cとtest043dは16bitグラフィックボックスなので
ちょっと滑らかではありませんが、でももちろんそれなりにきれいです
。この滑らかさが必要なら32bitグラフィックボックスを使ってくださ
い。そうでなければ16bitグラフィックボックスをお勧めします。メモ
リが節約できますから。
さて、今度は16bitカラーモードにしてください。この状態でtest043
a〜test043dを起動してみてください。まず、当然のことながらtest043
cとtest043dは変わりません。16bitグラフィックボックスが16bitカラ
ーモードで表示できるのは当然のことです。
そしてさらにtest043bもtest043cやtest043dと同じ表示結果になるは
ずです。32bitカラーといえども、16bitカラーモードでは16bitグラフ
ィックボックスと同じような結果にならざるを得ないのです。・・・と
いうのが普通なんですが、例外がありまして、test043aはこれら3つく
らべてどう見てもきれいなはずです。これはグラフィックドライバ側で
勝手にタイリングをやっていまして、擬似419万色表示になっています
(7-8-7相当)。本当はもうちょっと色数が少ないのですが、厳密な計
算をやるのが面倒なのでとりあえずここでは省略します。
きれいならいつもやればいいじゃないかと思うかもしれませんが、き
れいにするとどうしても遅くなります(まああまり変わらないかもしれ
ませんが)。だから、グラフィックボックスをオープンするときにきれ
いだけどちょっと遅いか、それともきれいさが損なわれるかもしれない
けど少し速いかを選べるようになっています。これについては、test04
3aとtest043bを見比べてください(test043cとtest043dを比べてもいい
ですが)。
さて、今度は8bitカラーモードです。8bitカラーモードでは、タイリ
ング無しだと64色で描画されます。しかしタイリングを許可すれば、擬
似4096色(4-4-4)で描画します。なお、この64個のパレットをダイレ
クトカラー用に使わないで、開放することも将来的にはできます。その
場合この擬似4096色は使えません。次のVGAモードと同じになります。
最後に毎度お馴染みのVGAモードです。タイリング無しだと8色です。
タイリングありだと、擬似512色(3-3-3)で描画します。が、この辺に
くると、厳密な計算が簡単にできるようになるので、計算してみます。
はい、実際は125色です。・・・なお、VGAモードでの16/32bitグラフィ
ックボックスの描画はたとえタイリングをOFFにしていても、目を見張
るほど遅いです。これは、速度のことを考えないでとりあえず実装する
ことを優先したからです。時間ができたら少しはチューンします。
タイリングなんてたいしたことないと思うかもしれません。しかし、
タイリングありとタイリングなしを見比べてみてください。アプリ側が
なんの苦労もなくこの結果を得られるというのは、なかなか気分の良い
ものです。百聞は一見にしかずなので、まずは見てみてください。
なお、アプリが指定したタイリングをしてもいい・してほしくないの
設定は、シェルでオーバーライドできるようになる予定です。だから、
アプリが何といおうとも、結局はユーザの思い通りになります。しかし
アプリとしては、オーバーライドされるならどうでもいいや、なんて考
えずに、できるだけ最適と思われる設定をしてください。
次のbelle4aはVESA 2.0より下のバージョンでもなんとかして使える
ような仕組みを入れる予定です。これでVESA 1.0以上なら全部OKという
わけではありませんが、半分くらいは救えるんじゃないかと思っていま
す。
それでは。
--
川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/