#pragma once
#include<DxLib.h>
#include<Image.h>
#include<Sound.h>
#include<Movie.h>
#include<Font.h>

namespace DXFW
{
///	<summary>非同期読み込みクラス</summary>
///	<example>
///	[サンプルコード:未完成]<BR>
/// サンプル説明<BR>
///	<code>
///	int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )<BR>
///	{<BR>
///		if( !Dx::Initialise() ) return -1;<BR>
///		Dx::End();<BR>
///		return 0;<BR>
/// }<BR>
/// </code>	
/// </example>
class AsyncLoad
{
private:
	AsyncLoad(void);
	~AsyncLoad(void);
public:
	/// <summary>非同期読み込みフラグのセット</summary>
	/// 画像、音声等。リソースの非同期読み込みを設定。
	static bool SetIsUse(bool 非同期読み込みフラグ)
	{
		return !DxLib::SetUseASyncLoadFlag( 非同期読み込みフラグ );
	}
			
	/// <summary>読み込みが完了しているか取得</summary>
	/// Image,Sound,Movie,Fontの読み込みが完了しているか取得
	template<typename T>
	static bool CheckData(const T &リソース)
	{
		return !DxLib::CheckHandleASyncLoad( リソース.GetHandle() );
	}
			
	///<summary>非同期読み込み中のリソース数を取得</summary>
	///非同期読み込み中のリソースの数を取得
	static int GetNum()
	{
		return DxLib::GetASyncLoadNum();
	}
};
}