スプライトバッファ制御 (98年1月11日版)
InitSpriteBuffer | スプライトバッファを初期化します |
ClearSpriteBuffer | スプライトバッファを透明色でクリアします |
CreateSpriteBuffer | スプライトバッファをサイズを指定した空データで生成します |
LoadSpriteBuffer | スプライトバッファにファイルから読み込んで登録します |
FreeSpriteBuffer | スプライトバッファを開放します |
GetDC | デバイスコンテキストを取得します |
ReleaseDC | デバイスコンテキストを開放します |
VOID InitSpriteBuffer (totalno)
LONG totalno | 確保する管理バッファの数を指定します ( totalno >= 0 ) |
使用するスプライトバッファの管理バッファを確保します。但しこの段階では内部的にVRAMデータ用のバッファを確保しているわけではありません。実際に確保するのは CreateSpriteBufferで行います。
パラメータ |
説明 |
totalno | VVRAM内部管理用の物ですのでそのアプリケーションで使用すると思われる最大数を指定して下さい。スプライトを動的に再利用するような場合はその範囲内で行います。通常は128〜512個程度あれば十分だと思われます。 |
戻り値 |
無し |
備考 |
|
参照 |
LONG no | クリアするスプライトバッファの番号を指定します (no >= 0) |
特定のスプライトバッファを透明色で初期化します。これを実行するより前にCreateSpriteBuffer又はLoadSpriteBufferでスプライトバッファを確保していなければなりません。
パラメータ |
説明 |
no | クリアの対象となるスプライトバッファ番号を指定します。バッファ事体が無くなるわけではありません。バッファを開放するのはFreeSpriteBufferを使用してください。 |
戻り値 |
無し |
備考 |
|
参照 |
LPDIRECTDRAWSURFACE CreateSpriteBuffer (no, xsize, ysize)
LONG no | 作成するスプライトバッファ番号を指定します (no >= 0) |
LONG xsize | 作成するスプライトの幅 |
LONG ysize | 作成するスプライトの高さ |
スプライトバッファ管理領域に実データ領域を割り当てます。LoadSpriteBufferとの違いはこちらは空の(透明)のデータ領域を確保する事にあります。この時点でグラフィックボード上のメモリが確保されます。主にVVRAM内部処理用に用意されたものです。ユーザーが利用する用途としては独自にテキスト画面やグラフィック画面の構築等があります。
パラメータ |
説明 |
no | 作成するスプライトバッファ番号を指定します。指定できる番号の範囲は InitSpriteBufferで確保した管理領域範囲内となります。 |
xsize | 作成するスプライトバッファの幅ですが表示画面の幅以上のサイズは指定できません。 |
ysize | 作成するスプライトバッファの高さですが表示画面の高さ以上のサイズは指定できません。 |
戻り値 |
サーフェイスへのポインタ。このポインタを利用してDirectDrawサーフェイス制御インターフェースにアクセスする事も可能ですがVVRAMシステム上ではアクセスしないようにしてください。 |
備考 |
|
参照 |
LPDIRECTDRAWSURFACE LoadSpriteBuffer (no, lpDibFile);
LONG no | 作成するスプライトバッファ番号を指定します (no >= 0) |
LPSTR lpDibFile | ビットマップファイル名へのポインタ |
ビットマップファイルよりスプライトバッファ管理領域に実データ領域を割り当てます。通常スプライトバッファを定義するときはこのインターフェイスを使用します。
パラメータ |
説明 |
no | 作成するスプライトバッファ番号を指定します。指定できる番号の範囲は InitSpriteBufferで確保した管理領域範囲内となります。 |
lpDibFile | スプライトデータファイルとして使用するのは256色又は16Bitカラーで保存したものを使用します。ペイントブラシの保存ファイル形式等が有効です。 |
戻り値 |
サーフェイスへのポインタ。このポインタを利用してDirectDrawサーフェイス制御インターフェースにアクセスする事も可能ですがVVRAMシステム上ではアクセスしないようにしてください。 |
備考 |
|
参照 |
LONG no | 開放するスプライトバッファ番号を指定します (no >= 0) |
CreateSpriteBufferやLoadSpriteBufferで確保した実データ領域を開放します。スプライトデータを再定義する為にこの関数で一旦開放して使用します。
パラメータ |
説明 |
no | 開放するスプライトバッファ番号を指定します。指定できる番号の範囲は InitSpriteBufferで確保した管理領域範囲内となります。 |
戻り値 |
無し |
備考 |
|
参照 |
SpriteBuffer s | VVRAMシステムに含まれる SpriteBufferクラスインターフェースを指定 (SpriteBuffer[no] >= 0) |
LONG frameno | グラフィックのフレーム番号を指定します(frameno >= 0) |
スプライトバッファ/グラフィックバッファへのデバイスコンテキストを取得するもので取得したデバイスコンテキストはGDIと同様のファンクションが実行できます。また当然これは開放の必要もあります。開放は VVRAM::ReleaseDCを使用します。
パラメータ |
説明 |
s | クラスインターフェイスを指定します。 |
戻り値 |
デバイスコンテキスト |
備考 |
VVRAMにはメンバー変数 SpriteBuffer* を持っています。これをVVRAM内部では配列化して管理しております。呼び出すときにはその配列から指定しますので spbuf[0] と指定します。 |
参照 |
SpriteBuffer s | VVRAMシステムに含まれる SpriteBufferクラスインターフェースを指定 (SpriteBuffer[no] >= 0) |
LONG frameno | グラフィックのフレーム番号を指定します(frameno >= 0) |
スプライトバッファ/グラフィックバッファへのデバイスコンテキストを開放するものです。
パラメータ |
説明 |
s | クラスインターフェイスを指定します。 |
戻り値 |
無し |
備考 |
VVRAMにはメンバー変数 SpriteBuffer* を持っています。これをVVRAM内部では配列化して管理しております。呼び出すときにはその配列から指定しますので spbuf[0]と指定します。 |
参照 |