次のページ 前のページ 目次へ

6. XFree86-DGA 機能拡張のサポート

現在は XFree86-DGA 機能拡張がサポートされています。P9000 のハードウェ ア的な制限のため、XF86DGASetViewPort の実装は完全でない点に注意してく ださい。SetViewPort コマンドと SetVidPage コマンドはハックされていて、 特定の条件の下でダブルバッファリングができるようになっています。

1MB のメモリを積んだカードや、xres*yres*Bpp が 1024K より大きいモード の場合、ダブルバッファリングはサポートされません。この場合、返されるバ ンクサイズはビデオメモリの量と同じになります。XF86DGASetViewPort コマ ンドと XF86DGASetVidPage コマンドを使っても何も起こりません。

2MB のメモリを積んだカードや、virtualX*virtualY*Bpp が 1024K より小さいモード の場合、SetViewPort と SetVidPage の動作を変えてダブルバッファリングを 有効にすることができます。XF86DGAGetVideo が返すバンクサイズは xres*yres*Bpp となります。このモードでは、書き込み、読み出し、表示が可 能なバッファを 2 つ持つことができます。XF86DGASetVidPage を使って、I/O に使うバッファ 0 と バッファ 1 を切替えることができます。どちらのバッファ を選択していても、オフセット無しのリニアアパーチャを通して利用すること ができます。ypos < yres という条件で XF86DGASetViewPort を呼び出すと、 バッファ 0 が表示されます。ypos >= yres ならばバッファ 1 が表示される でしょう。この動作の結果として、必要に応じてバンク切替えを行うプログラ ムと2つの垂直に隣接しているバンクを使うプログラムは、P9000 特有の変更 をすることなしに動作するはずです。


次のページ 前のページ 目次へ