/***************************************************************/
//
//
//		torikuro	[main.h]
//
//									Author	kazuki tanaka
//									Date	2016 07/01
/*---------------------------------------------------------------
■Update : 2016/04/18
			メッセージボックスを表示
■Update : 2016/04/25
ｍ
■Update : 2016/06/15
			FPSの表示

/*-------------------------------------------------------------*/
#ifndef _MAIN_H_

#define _MAIN_H_

#include <Windows.h>
#include <stdio.h>
#include <d3dx9.h>
#define DIRECTINPUT_VERSION (0x0800)
#include <dinput.h>

#pragma comment (lib,"d3d9.lib")
#pragma comment (lib,"d3dx9.lib")
#pragma comment (lib,"dxguid.lib")
#pragma comment (lib,"winmm.lib")				//システム時刻取得に必要
#pragma comment (lib,"dinput8.lib")
//#pragma comment (lib,"User32.lib")			//マウスのポジションの取得に必要

//マクロ定義

#define FRAME_RESET( f , c ) { if (f==c) {(f=0);} }

#define SAFE_DELETE(p)         { if (p) { delete (p);     (p)=NULL; } }
#define SAFE_DELETE_ARRAY(p)   { if (p) { delete[] (p);   (p)=NULL; } }
#define SAFE_RELEASE(p)        { if (p) { (p)->Release(); (p)=NULL; } }
#define SAFE_RELEASE_DELETE(p) { if (p) { ( p[0] )->Release(); delete[] (p); ( p[0] )=NULL; } }

//#define ATTENUATION_RATE(speed) ( speed * 0.98f )	//減衰率
//#define ATTENUATION_RATE(speed) ( speed * 0.93f )	//減衰率


//定数定義

// youtube等の画面比と同じ
//#define SCREEN_WIDTH ( 960 )
//#define SCREEN_HEIGHT ( 540 )
// ほぼフルスクリーンと同義
#define SCREEN_WIDTH ( 1280 )
#define SCREEN_HEIGHT ( 720 )


// モード
typedef enum {

	SCENE_TITLE = 0,	// タイトル
	SCENE_TUTORIAL,		// チュートリアル
	SCENE_GAME,			// ゲーム
	SCENE_RESULT,		// リザルト
	SCENE_MAX			// モードの数

}SCENE;


//頂点フォーマット
#define FVF_VERTEX_2D (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)


//頂点構造体(上のフォーマットの方に合わせること)
typedef struct{

	D3DXVECTOR3 pos;	//座標変換済み頂点フラグ(必ず1.0fが入る)
	float rhw;			//
	D3DCOLOR color;		//頂点色
	D3DXVECTOR2 tex;	//テクスチャUV値

}VERTEX_2D;


//プロトタイプ宣言
LPDIRECT3DDEVICE9 GetDevice(void);				//デバイスの取得
void ChangeScene( SCENE scene );				//モードの取得

#endif	// _MAIN_H_
