SDL_wheel について

SDL_wheel ver 0.11 (2009/02/24)
HELLO WORLD PROJECT 2008,2009 (jumpei isshiki)


はじめに
SDL のラッパーライブラリです。
「SDL」とついているので、利用するためには当然「SDL 関連のライブラリ」が必要です。
詳細は下記の「APIリファレンス」かアーカイブ内の「test」フォルダにあるサンプルコードを参照してください。
また、サンプルゲームとしてTESTER PHASE ONEを用意しました。こちらも参考にしてください。


更新履歴
2009/02/24 ver 0.11 File 関連に新たな関数を追加。
                    install スクリプトにバグがあったので修正。
2008/12/26 ver 0.10 初公開


ダウンロード
SDL_wheel-0.1.1.zip/ver 0.11(2009/02/24)/554K
SDL_wheel-0.1.0.zip/ver 0.10(2008/12/26)/539K


APIリファレンス

[base]

int SDL_wheel_Init(void);
 in なし
out 0=成功/-1=失敗
SDL を初期化します。

void SDL_wheel_Close(void);
 in なし
out なし
SDL を終了します。

SDL_Event *SDL_wheel_Pool(void);
 in なし
out なし
SDL イベントを取得します。

void SDL_wheel_Wait(void);
 in なし
out なし
一定時間(16msec)経過するまで待ちます。

int SDL_wheel_InitAll(Sint16 width, Sint16 height, Uint32 videoFlags);
 in 画面横幅
    画面高さ
    SDL_VIDEO 初期化時に渡すフラグ
out 0=成功/-1=失敗
全ての SDL 関連の初期化を一度に行います。初期化するのは以下の7つです。

タイマー
ビデオ
パッド
サウンド
ファイル
ノイズ
フェード

void SDL_wheel_CloseAll(void);
 in なし
out なし
SDL を終了します。
「SDL_wheel_InitAll」で初期化した場合はこの関数で終了させてください。

int SDL_wheel_pre(void);
 in なし
out 0=処理継続/-1=処理終了
SDL メインループの前処理を行います。具体的には、

イベント取得
終了判定
マウスデータ取得

の3つです。

void SDL_wheel_post(void);
 in なし
out なし
SDL メインループの後処理を行います。具体的には、

サウンドフェード処理
サウンドループ処理
画面フリップ
処理待機
画面消去

の5つです。

Uint8 SDL_wheel_GetMouseKey(void);
 in なし
out マウスボタンデータ
マウスボタンの押下状態を取得します。

Uint8 SDL_wheel_GetMouseTrg(void);
 in なし
out マウスボタンデータ
マウスボタンのトリガ状態を取得します。

int SDL_wheel_GetMouseX(void);
 in なし
out マウスカーソルのX座標
マウスカーソルのX座標を取得します。

int SDL_wheel_GetMouseY(void);
 in なし
out マウスカーソルのY座標
マウスカーソルのY座標を取得します。


[timer]

int SDL_wheel_InitTimer(void);
 in なし
out 0=成功/-1=失敗

タイマを初期化します。

void SDL_wheel_CloseTimer(void);
 in なし
out なし

タイマを終了します。

[video]

int SDL_wheel_InitVideo(Sint16 width, Sint16 height, Uint32 videoFlags);
 in 画面横幅
    画面高さ
    初期化時に使用するフラグ
out 0=成功/-1=失敗
ビデオを初期化し、ウィンドウ(画面)を生成します。

void SDL_wheel_CloseVideo(void);
 in なし
out なし
ビデオを終了し、ウィンドウ(画面)を破棄します。

void SDL_wheel_ClearScreen(void);
 in なし
out なし
画面を背景色で消去します。

void SDL_wheel_Flip(void);
 in なし
out なし
画面をフリップします。

SDL_PixelFormat *SDL_wheel_GetPixelFormat(void);
 in なし
out ピクセル情報構造体へのポインタ
ピクセル情報を取得します。

SDL_Surface *SDL_wheel_LoadBmp(char *fname);
 in BMPファイル名
out サーフェスへのポインタ
BMPファイルを読み、画面に合わせた画像情報に変換した上で、そのサーフェスのポインタを返します。

SDL_Surface *SDL_wheel_CreateSurface(Sint16 width, Sint16 height, Uint32 videoFlags);
 in 画面横幅
    画面高さ
    作成時に使用するフラグ
out サーフェスへのポインタ
指定したサイズのサーフェスを作成します。作成されるサーフェスのピクセル情報は画面と同等のものです。

void SDL_wheel_FillSurface(SDL_Surface *surf, Sint16 sx, Sint16 sy, Sint16 ex, Sint16 ey, Uint32 color);
 in サーフェスへのポインタ
    開始X座標
    開始Y座標
    終了X座標
    終了Y座標
    塗りつぶす色
out なし
指定したサーフェスを指定した色で指定区画を塗りつぶします。

void SDL_wheel_FillSurfacePrimary(Sint16 sx, Sint16 sy, Sint16 ex, Sint16 ey, Uint32 color);
 in 開始X座標
    開始Y座標
    終了X座標
    終了Y座標
    塗りつぶす色
out なし
画面を指定した色で指定区画を塗りつぶします。

void SDL_wheel_DispSurface(SDL_Surface *surf, Sint16 px, Sint16 py, Sint16 sx, Sint16 sy, Sint16 ex, Sint16 ey);
 in サーフェスへのポインタ
    表示X座標
    表示Y座標
    開始X座標
    開始Y座標
    終了X座標
    終了Y座標
    塗りつぶす色
out なし
指定サーフェスの指定区画を画面の指定座標に表示します。

void SDL_wheel_DrawSurface(SDL_Surface *src_s, SDL_Surface *dst_s, Sint16 px, Sint16 py, Sint16 sx, Sint16 sy, Sint16 ex, Sint16 ey);
 in 転送元サーフェスへのポインタ
    転送先サーフェスへのポインタ
    表示X座標
    表示Y座標
    開始X座標
    開始Y座標
    終了X座標
    終了Y座標
    塗りつぶす色
out なし
転送元サーフェスの指定区画を転送先サーフェスの指定座標に描画します。

void SDL_wheel_SetFillColor(Uint8 r, Uint8 g, Uint8 b, Uint8 a);
 in 塗りつぶし用RGBA値
out なし
SDL_wheel_ClearScreenで画面を消去する色を設定します。

void SDL_wheel_SetTransColor(Uint8 r, Uint8 g, Uint8 b, Uint8 a);
 in 透明色指定用RGBA値
out なし
描画する際に適用される「透明色」を設定します。

Uint32 SDL_wheel_MapRgba(Uint8 r, Uint8 g, Uint8 b, Uint8 a);
 in 取得したいRGBA値
out ピクセルフォーマット上のRGBA値
現在のピクセルフォーマットでのRGBA値を取得します。

Uint32 SDL_wheel_SetRanderMode(Uint32 mode);
 in 新たに設定する描画モード
out 設定前の描画モード
描画モードを設定します。以下の二つを指定できます。

RENDER_CENTER  描画時の座標を画像の中心として指定します
RENDER_LEFTTOP 描画時の座標を画像の左上として指定します

デフォルトは「RENDER_CENTER」です。

Uint32 SDL_wheel_GetRanderMode(void);
 in なし
out 現在の描画モード
現在の描画モードを取得します。

Sint16 SDL_wheel_GetPrimaryW(void);
 in なし
out 画面横幅
画面の横幅を取得します。

Sint16 SDL_wheel_GetPrimaryH(void);
 in なし
out 画面高さ
画面の高さを取得します。

Sint16 SDL_wheel_GetSurfaceW(SDL_Surface *surf);
 in サーフェスへのポインタ
out サーフェース横幅
指定サーフェスの横幅を取得します。

Sint16 SDL_wheel_GetSurfaceH(SDL_Surface *surf);
 in サーフェスへのポインタ
out サーフェース高さ
指定サーフェスの高さを取得します。

SDL_Surface *SDL_wheel_GetPrimarySurface(void);
 in なし
out プライマリサーフェス(画面)へのポインタ
プライマリサーフェス(画面)へのポインタを取得します。

void SDL_wheel_SetColorkey(SDL_Surface *surf, Uint32 color);
 in サーフェスへのポインタ
    透明色指定用RGBA値
out なし
指定サーフェスの透明色を設定します。

void SDL_wheel_SetAlpha(SDL_Surface *surf, Uint8 alpha);
 in サーフェスへのポインタ
    α値
out なし
指定サーフェスのα値を設定します。

Uint32 SDL_wheel_GetPixel(SDL_Surface *surf, int x, int y);
 in サーフェスへのポインタ
    取得X座標
    取得Y座標
out ピクセル値
指定サーフェスの指定座標のピクセル値を取得します。

void SDL_wheel_PutPixel(SDL_Surface *surf, Sint16 x, Sint16 y, Uint32 color);
 in サーフェスへのポインタ
    X座標
    Y座標
    ピクセル値
out なし
指定したサーフェスの指定座標に指定したピクセルを描画します。

void SDL_wheel_PutLine(SDL_Surface *surf, Sint16 sx, Sint16 sy, Sint16 ex, Sint16 ey, Uint32 color);
 in サーフェスへのポインタ
    開始X座標
    開始Y座標
    終了X座標
    終了Y座標
    ピクセル値
out なし
指定したサーフェスの指定した座標に指定したピクセル値で線を引きます。

[pad]

void SDL_wheel_InitPad(void);
 in なし
out なし
パッドを初期化します。

void SDL_wheel_ClosePad(void);
 in なし
out なし
パッドを終了します。

void SDL_wheel_SetKeyConf(int player, int conf, int key);
 in プレイヤー指定
    コンフィグ値指定
    キーボードキー指定
out なし
指定プレイヤーの指定コンフィグ値を指定キーボードキーに設定します。

プレイヤーは以下が指定できます。

WHPAD_PLAYER  全プレイヤー
WHPAD_PLAYER1 プレイヤー1
WHPAD_PLAYER2 プレイヤー2

キーコンフィグ値は以下が指定できます。

WHPAD_DOWN    下キー
WHPAD_LEFT    左キー
WHPAD_RIGHT   右キー
WHPAD_UP      上キー
WHPAD_BUTTON1 ボタン1
WHPAD_BUTTON2 ボタン2
WHPAD_BUTTON3 ボタン3
WHPAD_BUTTON4 ボタン4
WHPAD_BUTTON5 ボタン5
WHPAD_BUTTON6 ボタン6
WHPAD_BUTTON7 ボタン7
WHPAD_BUTTON8 ボタン8
WHPAD_BUTTON9 ボタン9
WHPAD_BUTTONA ボタンA(10)
WHPAD_BUTTONB ボタンB(11)

キーボードキーには SDL のキー定義(SDLK_?)を指定してください。

Uint32 SDL_wheel_GetKeyConf(int player, int conf);
 in プレイヤー
    コンフィグ
out キーボードコード
指定プレイヤーの指定コンフィグで使用されているキーコードを取得します。

Uint8 *SDL_wheel_GetPad(void);
 in なし
out キーボードデータ
パッド、キーボードのデータを設定し取得します。

Uint8 *SDL_wheel_Keys(void);
 in なし
out キーボードデータ
キーボードのキーデータを取得します。

Uint32 SDL_wheel_Pads(int id);
 in プレイヤー
out パッドデータ
パッドデータを取得します。

Uint32 SDL_wheel_Trgs(int id);
 in プレイヤー
out パッドトリガデータ
パッドのトリガデータを取得します。

Uint32 SDL_wheel_Reps(int id);
 in プレイヤー
out パッドリピートデータ
パッドのリピートデータを取得します。


[sound]

int SDL_wheel_InitSound(void);
 in なし
out 0=成功/-1=失敗
サウンドを初期化します。

void SDL_wheel_InitSettingSound(void);
 in なし
out なし
サウンドの設定を初期化します。主に「ボリューム」の設定を行います。

void SDL_wheel_CloseSound(void);
 in なし
out なし
サウンドを終了します。

void SDL_wheel_LoadMusic(char *fname, int bank, int loops);
 in BGMファイル名
    BGMバンク
    ループ指定
out なし
BGMをロードします。loopは「-1」を指定することで無限ループになります。

void SDL_wheel_LoadSe(char *fname, int bank, int ch);
 in SEファイル名
    SEバンク
    SE再生チャンネル
out なし
SEをロードします。チャンネルは「0〜7」の8チャンネル指定できます。

SDL_bool SDL_wheel_IsLoadMusic(int bank);
 in BGMバンク
out SDL_TRUE=あり/SDL_FALSE=なし
指定バンクにBGMがロードされているかを判定します。

SDL_bool SDL_wheel_IsLoadSe(int bank);
 in SEバンク
out SDL_TRUE=あり/SDL_FALSE=なし
指定バンクにSEがロードされているかを判定します。

void SDL_wheel_FreeSound(void);
 in なし
out なし
全てのサウンドを解放します。

void SDL_wheel_PlayMusic(int bank, int intro);
 in BGMバンク
    イントロフラグ
out なし
BGMを再生します。イントロフラグに1が指定された場合はイントロ扱いになります。
※イントロ扱いのBGMはループ指定が有限である(-1指定ではない)必要があります。

void SDL_wheel_PlayMusic2(int in_bank, int lp_bank);
 in イントロ部BGM
    ループ部BGM
out なし
イントロつきでBGMを再生します。

void SDL_wheel_StopMusic(void);
 in なし
out なし
BGM再生を停止します。

void SDL_wheel_PauseMusic(int flag);
 in ポーズフラグ
out なし
BGMのポーズを指定します。指定は以下の3つです。

-1 自動でポーズ状態を判定してポーズ/解除を行う
 0 ポーズ解除
 1 ポーズ

SDL_bool SDL_wheel_IsPlayMusic(void);
 in なし
out なし
BGMが再生されているかどうかを判定します。

void SDL_wheel_SetFadeMusic(int flag, int time);
 in フェードフラグ(必ず1を指定してください)
    フェード時間(フレーム単位)
out なし
BGMのフェード(アウト)を設定します。

void SDL_wheel_CtrlFadeMusic(void);
 in なし
out なし
BGMのフェード(アウト)を制御します。

void SDL_wheel_CtrlLoopMusic(void);
 in なし
out なし
BGMのループを制御します。主に「イントロつきBGM再生」の制御を行います。

void SDL_wheel_PlaySe(int bank);
 in SEバンク
out なし
指定SEを再生します。

void SDL_wheel_StopSe(int bank);
 in SEバンク
out なし
指定SEの再生を停止します。

void SDL_wheel_StopSeAll(void);
 in なし
out なし
全SE再生を停止します。

int SDL_wheel_IsPlaySe(int ch);
 in SEチャンネル
out なし
指定チャンネルのSEが再生されているかどうかを判定します。

void SDL_wheel_PauseSe(int flag);
 in ポーズフラグ
out なし
SEのポーズを指定します。指定は以下の3つです。

-1 自動でポーズ状態を判定してポーズ/解除を行う
 0 ポーズ解除
 1 ポーズ

void SDL_wheel_StopAll(void);
 in なし
out なし
全てのサウンドの再生を停止します。

void SDL_wheel_SetVolSe(int vol);
 in ボリューム(0〜100)
out なし
SEのボリュームを設定します。

void SDL_wheel_SetVolMusic(int vol);
 in ボリューム(0〜100)
out なし
BGMのボリュームを設定します。

void SDL_wheel_SetVolMaster(int vol);
 in ボリューム(0〜100)
out なし
マスター(全体)のボリュームを設定します。

int SDL_wheel_GetVolSe(void);
 in なし
out SEボリューム値
SEのボリュームを取得します。

int SDL_wheel_GetVolMusic(void);
 in なし
out BGMボリューム値
BGMのボリュームを取得します。

int SDL_wheel_GetVolMaster(void);
 in なし
out マスターボリューム値
マスター(全体)のボリュームを取得します。

Mix_Music *SDL_wheel_GetMixMusic(int bank);
 in BGMバンク
out Mix_Musicへのポインタ
指定BGMバンクのSDL_mixerのMix_Musicへのポインタを取得します。

Mix_Chunk *SDL_wheel_GetMixChank(int bank);
 in SEバンク
out Mix_Chunkへのポインタ
指定BGMバンクのSDL_mixerのMix_Chunkへのポインタを取得します。


[file]

int SDL_wheel_InitFile(void);
 in なし
out なし
ファイルを初期化します。

void SDL_wheel_CloseFile(void);
 in なし
out なし
ファイルを終了します。

int SDL_wheel_ExistFile(const char *fname);
 in ファイル名
out 0=ない/1=ある
ファイルがあるかどうかを判定します。

int SDL_wheel_ReadFile(const char *fname, void *buf, size_t size, int cnt);
 in ファイル名
    読み込みバッファ
    読み込みサイズ
    読み込みカウント
out -1=失敗/0<読み込みサイズ
指定ファイルを指定バッファに、「読み込みサイズ×読み込みカウント」分読み込みます。
バッファは事前に確保する必要があります。
バッファは必ずサイズ分確保してください。中でチェックは行っていません。
内部でファイルをオープンする際、モードは "r" となります。

int SDL_wheel_WriteFile(const char *fname, void *buf, size_t size, int cnt);
 in ファイル名
    書き込みバッファ
    書き込みサイズ
    書き込みカウント
out -1=失敗/0<書き込みサイズ
指定ファイルを指定バッファに、「書き込みサイズ×書き込みカウント」分書き込みます。
内部でファイルをオープンする際、モードは "w" となります。

Uint32 SDL_wheel_GetFileSize(const char *fname);
 in ファイル名
out 0xffffffff=失敗/それ以外=ファイルサイズ
指定ファイルのファイルサイズを取得します。

int SDL_wheel_ReadFileMode(const char *fname, void *buf, size_t size, int cnt, char *mode);
 in ファイル名
    読み込みバッファ
    読み込みサイズ
    読み込みカウント
    ファイルオープンモード
out -1=失敗/0<読み込みサイズ
ファイルをオープンするモードを指定して、指定ファイルを指定バッファに、「読み込みサイズ×読み込みカウント」分読み込みます。
バッファは事前に確保する必要があります。
バッファは必ずサイズ分確保してください。中でチェックは行っていません。
Windows でバイナリ読み込みしたい場合は、この関数を使用してモードを "rb" を指定してください。

int SDL_wheel_WriteFileMode(const char *fname, void *buf, size_t size, int cnt, char *mode);
 in ファイル名
    書き込みバッファ
    書き込みサイズ
    書き込みカウント
    ファイルオープンモード
out -1=失敗/0<書き込みサイズ
ファイルをオープンするモードを指定して、指定ファイルを指定バッファに、「書き込みサイズ×書き込みカウント」分書き込みます。
Windows でバイナリ保存したい場合は、この関数を使用してモードを "wb" を指定してください。

Uint32 SDL_wheel_GetFileSizeMode(const char *fname, char *mode);
 in ファイル名
    ファイルオープンモード
out 0xffffffff=失敗/それ以外=ファイルサイズ
ファイルをオープンするモードを指定して、指定ファイルのファイルサイズを取得します。


[ascii]

void SDL_wheel_InitAscii(SDL_Surface *surf, Sint16 fsize, Sint16 ox, Sint16 oy, Sint16 sx, Sint16 sy);
 in フォントサーフェース
    フォントの1文字あたりの実サイズ
    フォントの横オフセット座標
    フォントの縦オフセット座標
    フォントの1文字あたりの横サイズ
    フォントの1文字あたりの縦サイズ
out なし
サーフェスとサイズを指定して、アスキーを初期化します。
「フォントの1文字あたりの実サイズ」は、画像上の1文字のサイズです。文字を切り出す際に使用します。
「フォントの横オフセット座標」は、文字の描画を開始するX座標です。
「フォントの縦オフセット座標」は、文字の描画を開始するY座標です。
「フォントの1文字あたりの横サイズ」は、文字のXサイズです。
「フォントの1文字あたりの縦サイズ」は、文字のYサイズです。
また、このライブラリで使用する辞書は以下のとおりです。

[ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ abcdefghijklmnopqrstuvwxyz{|}~]

void SDL_wheel_CloseAscii(void);
 in なし
out なし
アスキーを終了します。

void SDL_wheel_DispAscii(char *str, Sint16 px, Sint16 py);
 in 描画文字列
    描画X座標
    描画Y座標
out なし
指定座標に指定文字列を描画します。

void SDL_wheel_DrawAscii(SDL_Surface *surf, char *str, Sint16 px, Sint16 py);
 in サーフェスへのポインタ
    描画文字列
    描画X座標
    描画Y座標
out なし
指定サーフェスの指定座標に指定文字列を描画します。

int SDL_wheel_SearchDictAscii(char word);
 in 検索文字
out 辞書内文字番号

Sint16 SDL_wheel_GetWidthAscii(char *str);
 in 文字列
out 描画幅
指定文字列の描画幅を取得します。


[noize]

int SDL_wheel_InitNoize(Sint16 sx, Sint16 sy);
 in Xサイズ
    Yサイズ
out 0=成功/-1=失敗
ノイズ用のサーフェスを作成し、初期化します。

void SDL_wheel_CloseNoize(void);
 in なし
out なし
ノイズを終了します。

void SDL_wheel_ExecNoize(int x, int y, int cx, int cy);
 in 描画X座標
    描画Y座標
    描画横カウント
    描画縦カウント
out なし
ノイズを実行します。実際は描画用のノイズテーブルを作成します。
ノイズの描画単位は「NOIZE_SX」「NOIZE_SY」で定義されています。値は共に「16」です。

void SDL_wheel_DrawNoize(void);
 in なし
out なし
ノイズテーブルを元にノイズを画面に描画します。


[raster]

void SDL_wheel_RasterMultiLine(SDL_Surface *sourf, Sint16 start, Sint16 end, Sint16 rad, float ang, float add);
 in サーフェスへのポインタ
    開始Y座標
    終了Y座標
    スクロール半径
    開始角度
    1ドット辺りの加算角度
out なし
指定サーフェスを指定範囲分ラスタスクロールさせます。

void SDL_wheel_RasterMultiLineSkip(SDL_Surface *sourf, Sint16 start, Sint16 end, Sint16 rad, float ang, float add, int per);
 in サーフェスへのポインタ
    開始Y座標
    終了Y座標
    スクロール半径
    開始角度
    1ドット辺りの加算角度
    ラスタスクロールさせる確立(0〜100)
out なし
指定サーフェスを指定範囲分ラスタスクロールさせます。
指定した確立に満たない場合はスクロールさせません。確立判定はラインごとに行われます。

void SDL_wheel_RasterRandLine(SDL_Surface *sourf, Sint16 start, Sint16 end, Sint16 rad, Sint16 offx);
 in サーフェスへのポインタ
    開始Y座標
    終了Y座標
    スクロール半径
    描画オフセットX座標
out なし
指定サーフェスを指定範囲分ラスタスクロールさせます。角度はランダムに設定されます。
描画開始座標はオフセット分ずらされます。

void SDL_wheel_RasterRandLineSkip(SDL_Surface *sourf, Sint16 start, Sint16 end, Sint16 rad, Sint16 offx, int per);
 in サーフェスへのポインタ
    開始Y座標
    終了Y座標
    スクロール半径
    描画オフセットX座標
    ラスタスクロールさせる確立(0〜100)
out なし
指定サーフェスを指定範囲分ラスタスクロールさせます。角度はランダムに設定されます。
描画開始座標はオフセット分ずらされます。
指定した確立に満たない場合はスクロールさせません。確立判定はラインごとに行われます。


[mosaic]

void SDL_wheel_Mosaic(SDL_Surface *surf, Sint16 sx, Sint16 sy, Sint16 ex, Sint16 ey, Sint16 size);
 in サーフェスへのポインタ
    開始X座標
    開始Y座標
    終了X座標
    終了Y座標
    モザイクサイズ
out なし
指定範囲を指定サイズでモザイク描画します。


[fade]

int SDL_wheel_InitFade(void);
 in なし
out 0=成功/-1=失敗
フェードを初期化します。

void SDL_wheel_CloseFade(void);
 in なし
out なし
フェードを終了します。

void SDL_wheel_ExecFade(void);
 in なし
out なし
フェードを実行します。
実行内容はSDL_wheel_SetFadeで実行した結果で異なります。SDL_wheel_SetFadeを実行する前に呼んでも何も実行されません。

void SDL_wheel_DrawFade(void);
 in なし
out なし
フェードを描画します。SDL_wheel_SetFadeを実行する前に呼んでも何も描画されません。

void SDL_wheel_SetFade(int fade, int time);
 in フェード種別
    フェード時間(フレーム単位)
out なし
フェードの内容、時間を設定します。指定できるフェードは以下の4つです。

FADE_IN_BLACK  黒フェードイン
FADE_IN_WHITE  白フェードイン
FADE_OUT_BLACK 黒フェードアウト
FADE_OUT_WHITE 白フェードアウト


[blend]

void SDL_wheel_Blend(SDL_Surface *s_surf, SDL_Surface *d_surf, Sint16 sx, Sint16 sy, Sint16 ex, Sint16 ey, float sblend, float dblend, float ablend);
 in ブレンド元サーフェスへのポインタ
    ブレンド先サーフェスへのポインタ
    開始X座標
    開始Y座標
    終了X座標
    終了Y座標
    ブレンド元ブレンド値(0.0〜1.0)
    ブレンド先ブレンド値(0.0〜1.0)
    α値(0.0〜1.0)
out なし
ブレンド元、先の二つのサーフェスを合成して、ブレンドされたサーフェスを生成します。
ブレンドの計算は以下のとおりです。

r = (src-blend * src-r + dst-blend * dst-r) * alpha-blend;
g = (src-blend * src-g + dst-blend * dst-g) * alpha-blend;
b = (src-blend * src-b + dst-blend * dst-b) * alpha-blend;
a = (src-blend * src-a + dst-blend * dst-a) * alpha-blend;
if(r > 255) r = 255;
if(g > 255) g = 255;
if(b > 255) b = 255;
if(a > 255) a = 255;


(C)2008 HELLO WORLD PROJECT (Jumpei Isshiki)