[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2111] Re: adarrel3, monza3.



  こんばんは、川合です。


Solid さんは 2001/09/12 11:23:04 の「[OSASK 2107] Re: adarrel3,
monza3.」で書きました:

>当初 lib_drawlineがラインに対応していない、(VRAM直の代わりに)
>グラフィックボックスを用意、ライン関数を用意・・・
>という流れで来れば、グラフィックボックスのバッファへのライン関数だと
>思ってしまうのが普通かと・・・私だけかも(笑)

  いえ、lib_drawline0()はグラフィックボックスへのライン関数でも
あります。ただ、同時にVRAMへのラインも実行しているだけです。

>でもこれは lib_drawlineが lib_drawline0となって(正確には違いますけど)
>ラインに対応したもので、グラフィックボックスの利点のひとつである
>ブロック転送によるチラつきの低減が使えないのが残念です。
>(もちろん lib_drawline0が有用なものである事に間違いはありませし、
>問題になる事もありません)

  もし、従来通りの速度に落ちても構わないのでしたら、lib_drawline
0()を使い、かつブロック転送によるチラつきの低減を利用することが
できます。

  実は、lib_drawline0()のoptのbit15を1にすれば(つまり0x8000をOR
すれば)、VRAMへのラインを実行しません。したがってグラフィックボ
ックス内のバッファにだけラインが引かれます。・・・もちろん、この
結果を確実に画面に反映させるためには従来通りflushしなければいけ
ません。

  この方法は、広くない領域に大量のラインを引かなければいけない時
などには有効です。事前にRAM上でイメージを構築して、それを一気に
転送することになるからです。

>tetra01を上げておきます、フレームレートは 16FPSに合わせてあります。
>CPUパワーが変動しないように回転はさせていません(演算、描画はそのまま)。
>tetra01o.binが flush方式、tetra01n.binが line方式です。
>
>http://www.geocities.co.jp/SiliconValley/1157/tetra01t.lzh

  ありがとうございます。これでtest014などと比較することができま
した。

  もしよろしければ、adarrel4/monza4のリリースの後に、以下の仕様
を満たしたtetra01を作っていただけないでしょうか?

・新ラインルーチン利用で、flushはしない。
・フレームレートは16FPS。
・もちろん回転。
・回転速度はtetra02相当。
・WireFrameというウィンドウタイトルではなく、ファイル名と同じに
  する。

  そしてできることなら、このバイナリーに川合堂ライセンス-01を適
用することを許していただきたいのです。そのバージョンをOSASK ver.
1.7にバンドルしたいと考えているのですが、よろしいでしょうか?

  また、らっきょさんのbmpv01.binもOSASK ver.1.7にバンドルしたい
と考えています。これは既に十分に満足の行く水準に達しているので、
僕からの注文はありません。ここままでいいです。・・・川合堂ライセ
ンス-01の適用とバンドルへの許可をいただきたいのですが、いかがで
しょうか? > らっきょさん

>プログラムの実行速度はケースバイケースなので、色々な実現方法が
>用意されているとありがたいです。

  もちろんです。

>最近ではハードによっては VRAM直よりもシステムメモリの方が速かったり、
>アクセラレータよりも CPU演算の方が速いとか、CPUのアーキテクチャに

  僕も同意見です。それで、今回のようにlib_drawline0()のoptを使い
分けることで、どちらにも対応できるのではないかと考えているのです
が、いかがでしょうか?


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/