スプライトバッファ制御 (98年1月11日版)


InitSpriteBuffer スプライトバッファを初期化します
ClearSpriteBuffer スプライトバッファを透明色でクリアします
CreateSpriteBuffer スプライトバッファをサイズを指定した空データで生成します
LoadSpriteBuffer スプライトバッファにファイルから読み込んで登録します
FreeSpriteBuffer スプライトバッファを開放します
GetDC デバイスコンテキストを取得します
ReleaseDC デバイスコンテキストを開放します

VOID InitSpriteBuffer (totalno)

LONG totalno 確保する管理バッファの数を指定します ( totalno >= 0 )

使用するスプライトバッファの管理バッファを確保します。但しこの段階では内部的にVRAMデータ用のバッファを確保しているわけではありません。実際に確保するのは CreateSpriteBufferで行います。

 パラメータ 

説明
totalno VVRAM内部管理用の物ですのでそのアプリケーションで使用すると思われる最大数を指定して下さい。スプライトを動的に再利用するような場合はその範囲内で行います。通常は128〜512個程度あれば十分だと思われます。
   

戻り値

無し

備考

 

参照

 

VOID ClearSpriteBuffer (no)

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システム上ではアクセスしないようにしてください。

備考

 

参照

 

VOID FreeSpriteBuffer (no)

LONG no 開放するスプライトバッファ番号を指定します (no >= 0)

CreateSpriteBufferLoadSpriteBufferで確保した実データ領域を開放します。スプライトデータを再定義する為にこの関数で一旦開放して使用します。

 パラメータ 

説明
no 開放するスプライトバッファ番号を指定します。指定できる番号の範囲は InitSpriteBufferで確保した管理領域範囲内となります。
   

戻り値

無し

備考

 

参照

 

HDC GetDC (s)

SpriteBuffer s VVRAMシステムに含まれる SpriteBufferクラスインターフェースを指定 (SpriteBuffer[no] >= 0)
LONG frameno グラフィックのフレーム番号を指定します(frameno >= 0)

スプライトバッファ/グラフィックバッファへのデバイスコンテキストを取得するもので取得したデバイスコンテキストはGDIと同様のファンクションが実行できます。また当然これは開放の必要もあります。開放は VVRAM::ReleaseDCを使用します。

 パラメータ 

説明
s クラスインターフェイスを指定します。
   

戻り値

デバイスコンテキスト

備考

VVRAMにはメンバー変数 SpriteBuffer* を持っています。これをVVRAM内部では配列化して管理しております。呼び出すときにはその配列から指定しますので spbuf[0] と指定します。

参照

 

VOID ReleaseDC (s)

SpriteBuffer s VVRAMシステムに含まれる SpriteBufferクラスインターフェースを指定 (SpriteBuffer[no] >= 0)
LONG frameno グラフィックのフレーム番号を指定します(frameno >= 0)

スプライトバッファ/グラフィックバッファへのデバイスコンテキストを開放するものです。

 パラメータ 

説明
s クラスインターフェイスを指定します。
   

戻り値

無し

備考

VVRAMにはメンバー変数 SpriteBuffer* を持っています。これをVVRAM内部では配列化して管理しております。呼び出すときにはその配列から指定しますので spbuf[0]と指定します。

参照