必要ならグラフィックの分割を行うか否かを設定する
SetUseDivGraphFlag Flag
int Flag : 必要ならグラフィックの分割を行うか否かを決定するフラグ ( TRUE : 行う(デフォルト) FALSE : 行わない )
(プラグイン / モジュール : DxLibW)
DXライブラリでは標準でパソコンに搭載されているグラフィックカードに 3Dアクセラレータ機能が搭載されている場合は、その高速なハードウエア機能を 使い2Dグラフィック描画を実現します。(3Dアクセラレータ機能は当然 3D空間を描画するためにあるのですが、使いようによっては平面的な2D 描画にもつかえるのです。) そして3Dアクセラレータを使って絵を画面に描画する場合、描画する絵の サイズは3Dアクセラレータの仕様上 幅・高さ共に2の n 乗でなければ なりません。( 2のn乗の数値 → 1 2 4 8 16 32 64 128 ... ) つまり、幅300 高さ200 の絵や、幅640 高さ480 の絵などは、そのままでは 描画することが出来ないのです。 この問題を解決する方法は2つあります。 1. 描画したい絵を、描画したい絵より大きい2のn乗の大きさを持つ絵として 処理する。 2. 複数の2のn乗の大きさを持つ絵に分解して、結果的にひとつの絵に見える ように処理する。 1の方法は、たとえば幅300 高さ300(以後 300x300 と記述します)の大きさを 持つグラフィックを表示したい場合、2のn乗で300より大きい数値である512 の値を採用し、512x512 の大きさを持つ絵として扱う方法です。 2の方法は、たとえば 300x300 の大きさをもつ絵を、2のn乗の大きさを持つ 複数の絵で扱う方法で、具体的には 256x256 の絵と、64x256 の絵、 256x64 の絵、 64x64 の絵の合計4つの絵を継ぎはぎして 300x300 というひとつの絵を処理 する方法です。 どちらも一長一短で、まず1の方法は 300x300 の絵を 512x512 の絵として扱う ため、使われていない 幅212 高さ212 の部分はそのまま無駄になってしまいます。 2の方法では複数の絵で表現するために1の方法よりも無駄は省けますが、沢山の 絵を扱うことになり、その分1の方法よりも処理速度は遅くなります。 DXライブラリはデフォルトでは2の方法を使いますが、描画速度を優先させ たい場合にはこの関数で処理形態を変更することが出来ます。 この関数に TRUE を渡した場合は2、FALSE を渡した場合は1の処理で絵が 描画されますので、状況に応じて使い分けてください。 (この設定をどうするにしろ、もともとの絵が2のn乗の大きさだった場合は どちらの設定でも同じ処理がされるのですが…) なお、この関数を使用して処理形態を変えた後に LoadGraph 関数などを使って 作られたグラフィックから変更が適用されます。1の処理形態になるか2の処理 形態になるかはグラフィックを読み込んだ時に決定され、既にメモリに読み込ま れていグラフィックに対しては SetUseDivGraphFlag 関数は何の影響も及ぼしま せんので注意してください。 戻り値: -1:エラー発生 0:成功
| プラグイン / モジュール | DxLibW |
| バージョン | 3.24f |
| 作成日 | 2026/04/12 |
| 著作者 | DxLib: Takumi Yamada / HSP binding: IronHSP Project |
| URL | https://dxlib.xsrv.jp/ |
| 備考 | hspdxlib.as をインクルードして使用 |
| タイプ | DxLib ゲームライブラリ |
| グループ | DxLib その他 |
| 対応環境 |
|
| hs ファイル | hsphelp\hspdxlib.hs |