English
PROGRAMMER'S GUIDEVDP1ライブラリ
戻る進む
VDP1ライブラリ

5.3 関数仕様




Title

関数仕様

Function

VDP1拡張処理ワークエリア
定義マクロ

Function Name

SPR_2DefineWork

No

1

 書 式
SPR_2DefineWork(WORK2D, COMMAND_MAX, GOUR_TBL_MAX,LOOKUP_TBL_MAX, CHAR_MAX,DRAW_PRTY_MAX)
 入 力
WORK2D           : ワークエリア名
COMMAND_MAX      : 最大コマンド数                        
GOUR_TBL_MAX     : 最大グーローテーブル数                
LOOKUP_TBL_MAX   : 最大ルックアップテーブル数            
CHAR_MAX         : 最大キャラクタ数(>0)                
DRAW_PRTY_MAX    : 最大描画プライオリティブロック数(>0)
 出 力
なし
 関数値
なし
 機 能
VDP1拡張処理で使用するワークエリアをAP内のデータエリアに定義します。 DRAW_PRTY_MAX=1の場合、コマンド描画のプライオリティ付けを行いません。



Title

関数仕様

Function

VDP1拡張処理ライブラリの
初期化処理

Function Name

SPR_2Initial

No

2

 書 式
void SPR_2Initial(Spr2WorkArea *workArea)
 入 力
workArea : ワークエリア定義テーブル
 出 力
なし
 関数値
なし
 機 能
VDP1基本処理ライブラリの初期化ルーチンを呼び出して表示環境の初期化を行った 後、本ライブラリのワークエリアを初期化します。



Title

関数仕様

Function

TVモードセット

Function Name

SPR_2SetTvMode

No

3

 書 式
void Spr_2SetTvMode(Uint16 mode, Uint16 screenSize,Unit16 doubleInterlace)
 入 力
mode              : TVモード定義値を設定します。
screenSize        : TVモードに対応した画面の解像度の定義値を設定します。
doubleInterlace   : 倍密インタレース使用モードを設定します。
 出 力
なし
 関数値
なし
 機 能
VDP1基本処理ライブラリのTVモードセットルーチンと同じです。



Title

関数仕様

Function

フレームチェンジVブランク
インターバル数のセット

Function Name

SPR_2FrameChgIntr

No

4

 書 式
void SPR_2FrameChgIntr(Uint16 interval)
 入 力
interval : Vブランクインターバル数
 出 力
なし
 関数値
なし
 機 能
フレームチェンジVブランクインターバル数のセット。インターバル数の値により以下の意味を持ちます。
インターバル数
意  味
0フレーム切替えをオートチェンジモードにしてインターバル数を1とします。SCL_DisplayFrame()による同期はできません。
1フレーム切換えをオートチェンジモードにしてインターバル数を1とします。SCL_DisplayFrame()による同期ができます。
0xffff不定インターバルマニュアルチェンジモードで、ポリゴンによる描画フレームのイレースライトを行います。VDP1の描画終了を確認してフレームチェンジを行います。
0xfffeVブランクイレースによる不定インターバルマニュアルチェンジモードです。イレースされない部分についてはユーザ側でポリゴンにより描画フレームのイレースライトを行ってください。VDP1の描画終了を確認せずにフレームチェンジを行います。
その他指定インターバル数による一定インターバルマニュアルチェンジモードです。
b14 0 : イレースライトを行う。
1 : イレースライトを行わない。
SCL_SetFrameInterval()ルーチンを呼び出しています。



Title

関数仕様

Function

フレームバッファイレースデータのセット

Function Name

SPR_2FrameEraseData

No

5

 書 式
void SPR_2FrameEraseData(Uint16 rgbColor)
 入 力
rgbColor : イレースデータ(RGBカラー)
 出 力
なし
 関数値
なし
 機 能
イレース処理が実行される際にどんな色で塗り潰すかを指定します。



Title

関数仕様

Functio

グーローシェーディングテーブルのセット

Function Name

SPR_2SetGourTbl

No

6

 書 式
void SPR_2SetGourTbl(Uint16 gourTblNo, SprGourTbl *gourTbl);
 入 力
gourTblNo     : グーローシェーディングテーブル番号
gourTbl       : グーローシェーディングテーブル
 出 力
なし
 関数値
なし
 機 能
VRAM内のグーローシェーディングテーブルエリアに指定グーローシェーディング テーブルの内容をコピーします。



Title

関数仕様

Function

ルックアップテーブルのセット

Function Name

SPR_2SetLookupTbl

No

7

 書 式
void SPR_2SetLookupTbl(Uint16 lookupTblNo, SprLookupTbl *lookupTbl)
 入 力
lookupTblNo   : ルックアップテーブル番号
lookupTbl     : ルックアップテーブル
 出 力
なし
 関数値
なし
 機 能
VRAM内のルックアップテーブルエリアに指定ルックアップテーブルの内容をコ ピーします。



Title

関数仕様

Function

キャラクタのセット

Function Name

SPR_2SetChar

No

8

 書 式
void SPR_2SetChar(Uint16 charNo, Uint16 colorMode,Uint16 color, Uint16 width, Uint16 height, Uint8 *char Image)
 入 力
charNo        : キャラクタ番号
colorMode     : カラーモード(b5 〜 b3:描画モードワードに同じ)
color         : カラーデータ
                 カラーモード=1の時はルックアップテーブル番号
                 カラーモード=0、2、3、4の時はカラーバンクコード
                 カラーモード=5の時は無視

width : Xサイズ height : Yサイズ charImage : キャラクタデータのポインタ =0の場合キャラクタエリアの獲得のみ行います。

 出 力
なし
 関数値
なし
 機 能
指定 charNoのキャラクタが割り付けられていないか、またはすでに割り付けられて いるがセットすべきキャラクタサイズより獲得されているエリアのサイズが小さい 場合にキャラクタ格納サイズを計算し、必要なブロックをブロックプールから獲得 してキャラクタデータをコピーします。 オーバーライト可能であれば同一エリアにキャラクタデータをコピーします。



Title

関数仕様

Function

キャラクタエリアの解放

Function Name

SPR_2ClrChar

No

9

 書 式
void SPR_2ClrChar(Uint16 charNo)
 入 力
charNo : キャラクタ番号
 出 力
なし
 関数値
なし
 機 能
指定キャラクタ番号のキャラクタが使用しているVRAMブロックを解放します。



Title

関数仕様

Function

全キャラクタエリアの解放

Function Name

SPR_2ClrAllChar

No

10

 書 式
void SPR_2ClrAllChar(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
全キャラクタエリアを解放します。



Title

関数仕様

Functio

グーローシェーディングテーブル番号を
VRAMアドレスに変換

Function Name

SPR_2GourTblNoToVram

No

11

 書 式
SprVaddr addr = SPR_2GourTblNoToVram(Uint16 gourTblNo)
 入 力
gourTblNo : グーローシェーディングテーブル番号
 出 力
なし
 関数値
addr : VRAM内相対アドレス/8
 機 能
グーローシェーディングテーブル番号をVRAMアドレスに変換します。



Title

関数仕様

Function

ルックアップテーブル番号をVRAM
アドレスに変換

Function Name

SPR_2LookupTblNoToVram

No

12

 書 式
SprVaddr addr = SPR_2LookupTblNoToVram(Uint16 lookupTblNo)
 入 力
lookupTblNo : ルックアップテーブル番号
 出 力
なし
 関数値
ddr : VRAM内相対アドレス/8
 機 能
ルックアップテーブル番号をVRAMアドレスに変換します。



Title

関数仕様

Function

キャラクタ番号をVRAMアドレスに変換

Function Name

SPR_2CharNoToVram

No

13

 書 式
SprVaddr addr = SPR_2CharNoToVram(Uint16 charNo)
 入 力
charNo : キャラクタ番号
 出 力
なし
 関数値
addr : VRAM内相対アドレス/8
 機 能
キャラクタ番号をVRAMアドレスに変換します。



Title

関数仕様

Function

コマンド書き込みオープン処理

Function Name

SPR_2OpenCommand

No

14

 書 式
void SPR_2OpenCommand(Uint16 drawPrtyFlag)
 入 力
drawPrtyFlag   :  コマンド描画プライオリティ有効/無効フラグ
                  SPR_2DRAW_PRTY_ON   = コマンド描画プライオリティ有効
                  SPR_2DRAW_PRTY_OFF  = コマンド描画プライオリティ無効
 出 力
なし
 関数値
なし
 機 能
スプライトコマンドの書き込み開始位置をVRAMコマンドエリアの先頭にします。 したがって、以下の一連のスプライトコマンド設定ルーチンを呼び出す前に本ルーチンを呼びだす必要があります。
SPR_2LocalCoord() SPR_2SysClip() SPR_2UserClip() SPR_2line() SPR_2polyLine() SPR_2Polygon() SPR_2NormSpr() SPR_2ScaleSpr() SPR_2DistSpr() SPR_2Cmd()



Title

関数仕様

Function

コマンド書き込みクローズ処理

Function Name

SPR_2CloseCommand

No

15

 書 式
void SPR_2CloseCommand(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
コマンド描画プライオリティが有効の場合、VRAM内のコマンドをプライオリティ 番号に従い、チェインします。 エンドスプライトコマンドを書き込み、VRAMエリア参照スイッチコマンドをトグ ルします。



Title

関数仕様

Function

ローカル座標のセット

Function Name

SPR_2LocalCoord

No

16

 書 式
void SPR_2LocalCoord(Sint32 drawPrty, XyInt *xy)
 入 力
drawPrty      :  コマンド描画プライオリティ番号
xy            :  ローカル座標の相対座標
 出 力
なし
 関数値
なし A
 機 能
ローカル座標をセットします。



Title

関数仕様

Function

システムクリッピングエリアのセット

Function Name

SPR_2SysClip

No

17

 書 式
void SPR_2SysClip(Sint32 drawPrty, XyInt *xy)
 入 力
drawPrty      :  コマンド描画プライオリティ番号
xy            :  右下座標
 出 力
なし
 関数値
なし
 機 能
システムクリッピングエリアをセットします。



Title

関数仕様

Function

ユーザクリッピングエリアのセット

Function Name

SPR_2UserClip

No

18

 書 式
void SPR_2UserClip(Sint32 drawPrty, XyInt xy[2])
 入 力
drawPrty      :  コマンド描画プライオリティ番号
xy[0]         :  左上座標
xy[1]         :  右下座標
 出 力
なし
 関数値
なし
 機 能
ユーザクリッピングエリアをセットします。



Title

関数仕様

Function

ライン描画

Function Name

SPR_2Line

No

19

 書 式
void SPR_2Line(Sint32 drawPrty, Uint16 drowMode, Uint16 color,                      XyInt xy[2], Uint16 gourTblNo)
 入 力
drawPrty       :  コマンド描画プライオリティ番号
drowMode       :  描画モード(描画モードワードに同じ)
color          :  カラーモードまたはルックアップテーブル番号
xy[2]          :  ライン2点
gourTblNo      :  グローシェーディングテーブル番号
                   NO_GOUR(=0xffff)=グローシェーディングテーブルの指定なし
 出 力
なし
 関数値
なし
 機 能
ラインを描画します。



Title

関数仕様

Function

ポリライン描画

Function Name

SPR_2PolyLine

No

20

 書 式
void SPR_2PolyLine(Sint32 drawPrty, Uint16 drowMode, Uint16 color,                        XyInt xy[4], Uint16 gourTblNo)
 入 力
drawPrty      : コマンド描画プライオリティ番号
drowMode      : 描画モード(描画モードワードに同じ)
color         : カラーモードまたはルックアップテーブル番号
xy[4]         : ポリライン4点
gourTblNo     : グローシェーディングテーブル番号
                  NO_GOUR(=0xffff) = グローシェーディングテーブルの指定なし
 出 力
なし
 関数値
なし
 機 能
ポリラインを描画します。



Title

関数仕様

Function

ポリゴンの描画

Function Name

SPR_2Polygon

No

21

 書 式
void SPR_2Polygon(Sint32 drawPrty, Uint16 drowMode, Uint16 color,                        XyInt xy[4], Uint16 gourTblNo)
 入 力
drawPrty      : コマンド描画プライオリティ番号
drowMode      : 描画モード(描画モードワードに同じ)
color         : カラーモードまたはルックアップテーブル番号
xy[4]         : ポリゴン4点
gourTblNo     : グローシェーディングテーブル番号
                 NO_GOUR(=0xffff) = グローシェーディングテーブルの指定なし
 出 力
なし
 関数値
なし
 機 能
ポリゴンを描画します。



Title

関数仕様

Function

ノーマルスプライトの描画

Function Name

SPR_2NormSpr

No

22

 書 式
void SPR_2NormSpr(Sint32 drawPrty, Uint16 dir, Uint16 drowMode,           Uint16 color, Unit16 charNo, XyInt *xy, Uint16 gourTblNo)
 入 力
drawPrty      :  コマンド描画プライオリティ番号
dir           :  キャラクタ反転指示(b5〜b4:コントロールワードに同じ)
drowMode      :  描画モード(描画モードワードに同じ)
color         :  カラーコードまたはルックアップテーブル番号
                   0xffffの場合、SPR_2SetChar()で指定したcolorデータが設定されます。
charNo        :  キャラクタ番号
xy            :  左上座標
gourTblNo     :  グーローシェーディングテーブル番号
                   NO_GOUR(=0xffff) = グーローシェーディングテーブルの指定なし
 出 力
なし
 関数値
なし
 機 能
ノーマルスプライトを描画します。



Title

関数仕様

Function

スケールスプライトの描画

Function Name

SPR_2ScaleSpr

No

23

 書 式
void SPR_2ScalSpr(Sint32 drawPrty, Uint16 zoomDir, Uint16 drowMode,           Uint16 color, Uint16 charNo, XyInt xy[2], Uint16 gourTblNo)
 入 力
drawPrty      : コマンド描画プライオリティ番号
zoomDir       : ズーム&キャラクタ反転指示
                 (b11〜b8,b5,b4:コントロールワードに同じ)
drowMode      : 描画モード(描画モードワードに同じ)
color         : カラーコードまたはルックアップテーブル番号
                 0xffffの場合、SPR_2SetChar()で指定したcolorデータが設定されます。
charNo        : キャラクタ番号
xy[2]         : 2頂点座標、または不動点座標・表示幅
gourTblNo     : グーローシェーディングテーブル番号
                 NO_GOUR(=0xffff) = グーローシェーディングテーブル指定なし
 出 力
なし
 関数値
なし
 機 能
スケールスプライトを描画します。



Title

関数仕様

Function

変形スプライトの描画

Function Name

SPR_2DisSpr

No

24

 書 式
void SPR_2DistSpr(Sint32 drawPrty, Uint16 dir, Uint16 drowMode, Uint16 color, Uint16 charNo, XyInt xy[4], Uint16 gourTblNo)
 入 力
drawPrty     :     コマンド描画プライオリティ番号
dir          :     キャラクタ反転指示(b5〜b4:コントロールワードに同じ)
drowMode     :     描画モード(描画モードワードに同じ)
color        :     カラーコードまたはルックアップテーブル番号
                    0xffffの場合、SPR_2SetChar()で指定したcolorデータが設定されます。
charNo       :     キャラクタ番号
xy[4]        :     4頂点座標
gourTblNo    :     グーローシェーディングテーブル番号
                     NO_GOUR(=0xffff) = グーローシェーディングテーブル指定なし
 出 力
なし
 関数値
なし
 機 能
変形スプライトを描画します。



Title

関数仕様

Function

コマンドセット

Function Name

SPR_2Cmd

No

25

 書 式
void SPR_2Cmd(Sint32 drawPrty, SprSpCmd *spCmd);
 入 力
drawPrty      :     コマンド描画プライオリティ番号
spCmd         :     32バイトのスプライトコマンド
 出 力
なし
 関数値
なし
 機 能
指定スプライトコマンドをそのままユーザコマンドエリアにセットします。



Title

関数仕様

Function

コマンド描画プライオリティチェインの
フラッシュ

Function Name

SPR_2FlushDrawPrty

No

26

 書 式
void SPR_2FlashDrawPrty(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
コマンド描画プライオリティが有効の場合、VRAM内のコマンドをプライオリティ 値に従いチェインし、描画プライオリティ管理エリアをクリアします。



Title

関数仕様

Function

VRAMブロックエリアの獲得(static)

Function Name

SPR_2AllocBlock

No

27

 書 式
SprVaddraddr =SPR_2AllocBlock(Uint16 size)
 入 力
size : ブロックサイズ(32バイトを1単位とする)
 出 力
なし
 関数値
addr  : 獲得ブロックエリア位置をVRAM内相対アドレス/8で返します。
 機 能
VRAM内のブロックプールエリアから指定サイズのブロックを獲得します。この ルーチンは外部に解放していませんが、本ライブラリに機能追加をする場合に参考 になるように仕様を載せました。



Title

関数仕様

Function

VRAMブロックエリアの解放(static)

Function Name

SPR_2FreeBlock

No

28

 書 式
void SPR_2FreeBlock(SprVaddr addr, Uint16 size)
 入 力
addr   :  解放ブロックエリア位置をVRAM内相対アドレス/8で返します。
size   :  ブロックサイズ(32バイトを1単位とします)
 出 力
なし
 関数値
なし
 機 能
VRAMブロックプール内の指定ブロックエリアを解放するこのルーチンは外部に解 放していませんが、本ライブラリに機能追加をする場合に参考になるように仕様を 載せました。

戻る進む
PROGRAMMER'S GUIDEVDP1ライブラリ
Copyright SEGA ENTERPRISES, LTD., 1997