/*
 * $Id: m_fbdemo_wipe1.h,v 1.1 2003/06/06 00:15:12 tong Exp $
 *
 * ワイプデモ
 *
 *
 */

#ifndef _M_FBDEMO_WIPE1_H_
#define _M_FBDEMO_WIPE1_H_

#include "u64basic.h"

typedef struct {
    Mtx model_smtx;		/* スケーリング行列 */
    Mtx model_rmtx;		/* ローテート行列 */
    Mtx model_tmtx;		/* トランスレート行列 */
} fbdemo_wipe1_dynamic_t;

typedef struct {
    rgba8888_u_t color;		/* 表示色 */
    rgba8888_u_t alt_color;	/* 変更色 */
    u8 Wipein;			/* !0:Wipein 0:Wipeout */
    u8 bank;			/* dynamicバンク */
    u8 finished;
    u8 __aligner;
    u16 txt_s;			/* テクスチャスクロールＳ */
    u16 txt_t;			/* テクスチャスクロールＴ */
    u16 normal;
    u16 __aligner16;
    Mtx project_mtx;		/* プロジェクション行列 */
    Mtx lookat_mtx;		/* プロジェクション行列 */
    fbdemo_wipe1_dynamic_t dynamic[2];
} fbdemo_wipe1_t;

#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif

/* 初期設定処理 */
extern fbdemo_wipe1_t *fbdemo_wipe1_init(fbdemo_wipe1_t *this);
/* 動作処理 */
extern void fbdemo_wipe1_move(fbdemo_wipe1_t *this, int frame);
/* 描画処理 */
extern void fbdemo_wipe1_draw(fbdemo_wipe1_t *this, Gfx **gpp);
/* 開始処理 */
extern void fbdemo_wipe1_startup(fbdemo_wipe1_t *this);
/* タイプ設定処理 */
extern void fbdemo_wipe1_settype(fbdemo_wipe1_t *this, int t);
/* カラー設定処理 */
extern void fbdemo_wipe1_setcolor_rgba8888(fbdemo_wipe1_t *this, u32 c);
/* カラー設定処理 */
extern void fbdemo_wipe1_setaltcolor_rgba8888(fbdemo_wipe1_t *this, u32 c);
/* 終了チェック処理 */
extern int  fbdemo_wipe1_is_finish(fbdemo_wipe1_t *this);

#ifdef _LANGUAGE_C_PLUS_PLUS
} /* extern "C"  */
#endif

#endif /* _M_FBDEMO_WIPE1_H_ */
