//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007-2008)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: render_target_common.hpp
//      Краткое описание: common render target objects and structures
//

#ifndef DSE_GS_RT_RENDER_TARGET_COMMON_HPP
#define DSE_GS_RT_RENDER_TARGET_COMMON_HPP

#include <Darkstar/Graphic System/Direct3D/direct3d_include.hpp>

namespace gs
{
	enum DRTFORMAT
	{
		DRTFMT_R32G32B32A32_FLOAT = 0,
		DRTFMT_R32G32B32_FLOAT = 1,
		DRTFMT_R16G16B16A16_FLOAT = 2,
		DRTFMT_R32G32_FLOAT = 3,
		DRTFMT_R10G10B10A2_UNORM = 4,
		DRTFMT_R11G11B10_FLOAT = 5,
		DRTFMT_R8G8B8A8_UNORM = 6,
		DRTFMT_R16G16_FLOAT = 7,
		DRTFMT_R32_FLOAT = 8,
		DRTFMT_R16_FLOAT = 9,
		DRTFMT_B5G5R5A1_UNORM = 10,
		DRTFMT_B5G6R5_UNORM = 11,
		DRTFMT_D16_UNORM = 12,
		DRTFMT_D24_UNORM_S8_UINT = 13,
		DRTFMT_D32_FLOAT = 14,
		DRTFMT_B8G8R8A8_UNORM = 15,
		DRTFMT_UNKNOWN = 70,
	};

	RTFORMAT getSpecRTFormat(const DRTFORMAT& darkstar_format);
	DRTFORMAT getDarkRTFormat(const RTFORMAT& spec_format);

	bool isDepthStencilFormat(const DRTFORMAT& darkstar_format);


	struct DRTAATYPE
	{
		unsigned int count;
		unsigned int quality;
	};

	const DRTAATYPE WITHOUT_AA = {1, 0};

	const unsigned int CUBE_POSITIVE_X = 0;
	const unsigned int CUBE_NEGATIVE_X = 1;
	const unsigned int CUBE_POSITIVE_Y = 2;
	const unsigned int CUBE_NEGATIVE_Y = 3;
	const unsigned int CUBE_POSITIVE_Z = 4;
	const unsigned int CUBE_NEGATIVE_Z = 5;
};

#include <Darkstar/Graphic System/Render Target/render_target_common.inl>

#endif