[OSASK 5608] belle3a.

  こんばんは、川合です。

  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/



ML番号でジャンプ
ML単語検索