#pragma once

/*!
@mainpage Mainpage
プラグインのメインページです。<br>
各種プラグインの作成については @subpage introduction_page または、以下のリンクからお進みください。<br>

<ul>
	<li><b><b>\ref intro_graphics_page</b></b></li><br>
	<ul>
		<li><b><b>\ref intro_graphics_textureLoader_sec</b></b></li><br>
		テクスチャをロードするためのプラグインです。<br>
		また、既定で以下のものが用意されています。<br>
		<br>
		<ul>
			<li><b>DDS.dll</b></li><br>
			Microsoft(R) DirectDraw(R) サーフェイス (DDS) ファイルフォーマットのテクスチャローダーです。<br>
			また、メインイメージ、ミップマップイメージのフォーマットは以下のものに限定されます。<br>
			<ul>
				<li><b>R8G8B8</b></li><br>
				チャンネルごとに 8 Bit を使用する、24 Bit RGB ピクセルフォーマットです。
				<li><b>R8G8B8A8</b></li><br>
				チャンネルごとに 8 Bit を使用する、アルファ付きの 32 Bit ARGB ピクセルフォーマットです。
				<li><b>BC1 ( DXT1 )</b></li><br>
				BC1 圧縮フォーマットです。
				<li><b>BC2 ( DXT3 )</b></li><br>
				BC2 圧縮フォーマットです。
				<li><b>BC3 ( DXT5 )</b></li><br>
				BC3 圧縮フォーマットです。
			</ul>
			<li><b>BMP.dll</b></li><br>
			BMP ( Microsoft(R) Windows Bitmap Image ) ファイルのテクスチャローダーです。<br>
			また、圧縮はサポートしていません。<br>
			<li><b>PNG.dll</b></li><br>
			PNG ( Portable Network Graphics ) ファイルのテクスチャローダーです。<br>
			また、フォーマットは <b>24 Bit RGB</b>、<b>32 Bit RGBA</b> ピクセルフォーマットのみサポートしています。<br>
			<li><b>JPEG.dll</b></li><br>
			JPEG ( Joint Photographic Experts Group ) ファイルのテクスチャローダーです。<br>
			また、カラーパレットはサポートしていません。<br>
		</ul>
		<br>
	</ul>
	<li><b><b>\ref intro_sound_page</b></b></li><br>
	<ul>
		<li><b><b>\ref intro_sound_decoder_sec</b></b></li><br>
		音声ファイルフォーマットをデコードするためのプラグインです。<br>
		また、既定で以下のものが用意されています。<br>
		<br>
		<ul>
			<li><b>Wave.dll</b></li><br>
			無圧縮の Wave 音声ファイルのデコーダーです。
			<li><b>OggVorbis.dll</b></li><br>
			OggVorbis 音声ファイルのデコーダーです。
		</ul>
		<br>
	</ul>
</ul>
*/

/*!
@page introduction_page Introduction
<ul>
	<li><b>@subpage intro_graphics_page "Graphics"</b></li><br>
	\ref intro_graphics_textureLoader_sec プラグインの作成について説明します。<br>
	<li><b>@subpage intro_sound_page "Sound"</b></li><br>
	\ref intro_sound_decoder_sec プラグインの作成について説明します。<br>
</ul>
*/

#include <Windows.h>

//! @namespace Mix
//! @brief ルート
namespace Mix{}

//! @namespace Mix::Plugin
//! @brief プラグイン
namespace Mix{ namespace Plugin{

	//! @enum TYPE
	//! @brief プラグインタイプ列挙定数
	enum TYPE
	{
		TEXTURE_LOADER	= 1,	//!< テクスチャローダー
		SOUND_DECODER	= 2,	//!< サウンドデコーダー
	};

	//! @struct INFORMATION
	//! @brief プラグイン情報構造体
	struct INFORMATION
	{
		Mix::Plugin::TYPE type;		//!< タイプ
		const wchar_t* pName;		//!< 名前
		const wchar_t* pVersion;	//!< バージョン
	};

}}

//! @namespace Mix::Plugin::Graphics
//! @brief グラフィックス
namespace Mix{ namespace Plugin{ namespace Graphics{}}}

//! @namespace Mix::Plugin::Sound
//! @brief サウンド
namespace Mix{ namespace Plugin{ namespace Sound{}}}
