BG制御 (98年2月11日版)
InitBg | BG管理領域を初期化する |
SetBgPatMode | BGの球面モード可否の指定を行う |
EnableBg | BG表示可否を指定します |
PutBg | BG画面にスプライトパターンを貼り付けます |
GetBg | BG-VRAMより貼り付けているスプライトパターン番号を取得します |
MoveBg | BGの表示位置を指定します |
RefreshBg | BG-VRAMを実VRAMに反映させます |
RefreshBgAll | 全BG-VRAMを実VRAMに反映させます |
LONG totalno | Z方向(奥行き)の画面枚数を指定します ( totalno >= 1 ) |
BG画面の管理領域を確保します。ここでいう管理領域の数とはZ方向の画面枚数です。それ以外にグラフィックボード上のVRAMからBG画面一枚につきグラフィック画面4枚分のメモリを消費します。これはBG画面サイズが表示画面サイズの縦、横、共に2画面ずつある為です。この論理画面サイズは固定です。現状のグラフィックボードの性能からどんなに多くても3枚程度が実用的な数と思われます。BG機構はVVRAM機構の中で最も処理が重たいので通常は1、2枚にしてください。
パラメータ |
説明 |
totalno | Z方向(奥行き)の画面枚数を指定しますがアプリケーションで必要と思われる枚数を指定します。通常は1、2画面程度あれば十分でしょう。 |
戻り値 |
無し |
備考 |
画面数と枚数は指定した分だけVRAMを消費(グラフィック画面の4倍の量を消費)しますので必要最小限だけ指定するようにしてください。むやみに指定すると最悪VRAMが食いつぶした後メインメモリに食い込み、著しくパフォーマンスが低下します。 |
参照 |
VOID SetBgPatMode (LONG mode);
VOID EnableBg (LONG no, LONG flg);
VOID MoveBg (LONG page, LONG x, LONG y);
LONG PutBg (LONG x, LONG y, LONG spriteno);
LONG GetBg (LONG x, LONG y);
VOID SetBgMode (LONG pageno, LONG mode);
LONG RefreshBg (LONG pageno);
LONG RefreshBgAll(VOID);
LONG no | 指示するグラフィックス面(Z方向)番号を指定します ( no >= 0 ) |
LONG mode | 球面モード可否を指定します ( def = TRUE) |
表示するグラフィック画面の球面モード可否を指定します。球面モードとはスクロールアウトした部分が右端の時、その部分が左端から表示される構造の事です。これは地球儀を想像してもらえば分かる事と思います。それと同じです。スクロールするゲームでは必須の機能の一つでしょう。
パラメータ |
説明 |
no | 指示するグラフィックス面(Z方向)番号で 指定できる範囲はInitGraphで確保したZ方向(奥行き)の画面枚数範囲内です。 |
flg | TRUE = 球面スクロール FALSE = 球面スクロールを使用しない。この場合はスクロールアウトした部分がスクロールインすることはありません。 |
戻り値 |
無し |
備考 |
|
参照 |
LONG no | 設定するグラフィックス面(Z方向)番号を指定します ( no >= 0 ) |
LONG flg | 表示可否を指定するフラグ (def = FALSE) |
最終的にディスプレイに表示されるかどうかを決定する関数です。表示される必要が無いならば必ずFALSEに指定するようにしてください。そうすることで無駄な処理を(描画時において実際はクリッピングもされますので極力回避できますが)省けパフォーマンスアップに貢献します。スプライトを画面から隠すときに負の座標に指定したりする方法よりこちらを利用してください。
パラメータ |
説明 |
no | 指示するグラフィックス面(Z方向)番号を指定します。指定できる番号の範囲は InitGraphで確保したZ方向(奥行き)の画面枚数範囲内となります。 |
flg | 表示可否を指定するフラグで FALSEにする事で表示されなくなります。 |
戻り値 |
無し |
備考 |
|
参照 |
Graph s | VVRAMシステムに含まれる Graphクラスインターフェースを指定 (Graph[no] >= 0) |
LONG frameno | グラフィックのフレーム番号を指定します(frameno >= 0) |
グラフィックバッファへのデバイスコンテキストを取得するもので取得したデバイスコンテキストはGDIと同様のファンクションが実行できます。また当然これは開放の必要もあります。開放は VVRAM::ReleaseDCを使用します。
パラメータ |
説明 |
s | クラスインターフェイスを指定します。 |
frameno | グラフィック画面は縦と横の画面数を指定できます。例えば 2*3とは横2画面縦3画面あることになり gr[0]〜gr[5]の6つのフレームが指定できます。並びは横並びとなります。 |
戻り値 |
デバイスコンテキスト |
備考 |
VVRAMにはメンバー変数 Graph* を持っています。これをVVRAM内部では配列化して管理しております。呼び出すときにはその配列から指定しますので gr[0] と指定します。 |
参照 |
Graph s | VVRAMシステムに含まれる Graphクラスインターフェースを指定 (Graph[no] >= 0) |
LONG frameno | グラフィックのフレーム番号を指定します(frameno >= 0) |
グラフィックバッファへのデバイスコンテキストを開放するものです。
パラメータ |
説明 |
s | クラスインターフェイスを指定します。 |
frameno | グラフィック画面は縦と横の画面数を指定できます。例えば 2*3とは横2画面縦3画面あることになり gr[0]〜gr[5]の6つのフレームが指定できます。並びは横並びとなります。 |
戻り値 |
無し |
備考 |
VVRAMにはメンバー変数 Graph* を持っています。これをVVRAM内部では配列化して管理しております。呼び出すときにはその配列から指定しますので gr[0] と指定します。 |
参照 |
LONG pageno | 指示するグラフィックス面(Z方向)番号を指定します ( no >= 0 ) |
LONG x | X座標位置 |
LONG y | Y座標位置 |
最終的にディスプレイに表示されるか時の表示位置を指定します。パターンが画面の外にはみ出る場合は自動的にクリッピングされます。
パラメータ |
説明 |
pageno | 指示するグラフィックス面(Z方向)番号を指定します。指定できる範囲はInitGraphで確保したZ方向(奥行き)の画面枚数範囲内です。 |
x | X座標位置 |
y | Y座標位置 |
戻り値 |
無し |
備考 |
|
参照 |
LONG PutPattern (frameno, x, y,spriteno)
LONG frameno | 指示するグラフィックスフレーム番号を指定します ( no >= 0 ) |
LONG x | X座標位置 |
LONG y | Y座標位置 |
LONG spriteno | スプライト管理番号を指定します ( spriteno >= 0 ) |
アクティブなグラフィック画面対してスプライトデータを貼り付けるものです。アクティブなグラフィック画面はVRAM制御命令Apageで指定を行います。またスプライトバッファに関連付けられたスプライトが無いと実行できません。画面からはみ出るデータは自動クリッピングされます。グラフィック画面はウィンドウズのALT+TAB等によるウィンドウ移行のVRAMの破壊後の修復はユーザー側で行う必要があります。詳細はテクニカルノートを参照ください。
パラメータ |
説明 |
pageno | 指示するグラフィックスフレーム番号を指定します。cx = 2 cy = 2で作成している場合は指定できる範囲は0-3の範囲になります。 |
x | X座標位置 |
y | Y座標位置 |
spriteno | 貼り付けるスプライトの管理番号を指定します。指定できる番号の範囲は InitSpriteで確保した管理領域範囲内となります。 |
戻り値 |
無し |
備考 |
|
参照 |
Graph s | VVRAMシステムに含まれる Graphクラスインターフェースを指定 (Graph[no] >= 0) |
LONG frameno | グラフィックのフレーム番号を指定します(frameno >= 0) |
グラフィックバッファへのデバイスコンテキストを開放するものです。
パラメータ |
説明 |
s | クラスインターフェイスを指定します。 |
frameno | グラフィック画面は縦と横の画面数を指定できます。例えば 2*3とは横2画面縦3画面あることになり gr[0]〜gr[5]の6つのフレームが指定できます。並びは横並びとなります。 |
戻り値 |
デバイスコンテキスト |
備考 |
VVRAMにはメンバー変数 Graph* を持っています。これをVVRAM内部では配列化して管理しております。呼び出すときにはその配列から指定しますので gr[0] と指定します。 |
参照 |