/*
 * $Id: fbmgr.h,v 1.1 2003/02/07 18:15:44 wheeler Exp $
 *
 * $Log: fbmgr.h,v $
 * Revision 1.1  2003/02/07 18:15:44  wheeler
 * Fox's version of libultra and friends.
 *
 * Revision 1.9  1997/01/29  12:05:43  hayakawa
 * 細かい修正
 *
 * Revision 1.8  1996/11/21  06:23:45  hayakawa
 * フレームバッファの数を返す（インチキ）関数の追加
 * インクルードするべきファイルをインクルードしていなかった
 *
 * Revision 1.7  1996/10/20  09:12:19  hayakawa
 * _LANGUAGE_C_PLUS_PLUS を __cplusplus に変更
 *
 */

#ifndef __FBMGR_H_
#define __FBMGR_H_

#include "ultra64.h"

typedef struct cfbinfo_s {
//    char *cfb;			/* フレームバッファ先頭 */
//    char *zbuffer;		/* 対応するＺバッファ */
//    unsigned short fmt;		/* ピクセルフォーマット(G_IM_FMT_RGBA) */
//    unsigned short siz;		/* ピクセルサイズ(G_IM_SIZ_16) */
//    int ScreenWidth;		/* 横幅（ピクセル） */
//    int ScreenHeight;		/* 縦幅（ピクセル） */
    char keep_frame;		/* 最低表示フレーム */
    char disp_frame;		/* 実績表示フレーム */
    OSViMode *vimode;		/* ビデオモード */
    int mode;			/* 0:なし   */
				/* 1:キープ */
				/* 2:描画中 */
				/* 3:表示中 */
} cfbinfo_t;
typedef cfbinfo_t CFBInfo;



#ifdef __cplusplus
extern "C" {
#endif

    void framebuf_init( const int num, void *const *const img );
    void *framebuf_getfree( void );
    void framebuf_ungetfree( void *fb );
    void framebuf_setfree( void *fb );
    int framebuf_getFBnumber( void );
    void CreateFramebufferManager( void );
    void CreateRetraceManager( void );
    
    extern int retrace_cnt;
    extern OSTime retrace_time;
    extern OSTime before_retrace_time;
//extern int SwapFrame_disable;	/* 非０で,フレームスワップを抑制する */

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /* __FBMGR_H_ */
