//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007-2008)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: display_mode.inl
//      Краткое описание: this class is used to describe one mode of graphic adapter
//

namespace gs
{
	inline DisplayMode::DisplayMode(const unsigned int width, const unsigned int height, const DISPLAY_PIXEL_FORMAT& pixel_format, const unsigned int refresh_rate)
	{
		this->width = width;
		this->height = height;
		this->pixel_format = pixel_format;
		this->refresh_rate = refresh_rate;
	};

	inline DisplayMode::~DisplayMode()
	{

	};

	inline unsigned int DisplayMode::getWidth() const
	{
		return width;
	};

	inline unsigned int DisplayMode::getHeight() const
	{
		return height;
	};

	inline unsigned int DisplayMode::getRefreshRate() const
	{
		return refresh_rate;
	};

	inline const DISPLAY_PIXEL_FORMAT& DisplayMode::getPixelFormat() const
	{
		return pixel_format;
	};

	inline bool DisplayMode::operator ==(const DisplayMode& mode2)
	{
		return width == mode2.getWidth() && height == mode2.getHeight() && pixel_format == mode2.getPixelFormat() &&
			refresh_rate == mode2.getRefreshRate();
	};

#ifdef GD_D3D10
	inline RTFORMAT DisplayMode::getSpecPixelFormat() const
	{
		switch(pixel_format)
		{
		case DPF_R8G8B8A8_UNORM:
			return DXGI_FORMAT_R8G8B8A8_UNORM;
		default:
			return DXGI_FORMAT_UNKNOWN;
		};
	};
#endif

#ifdef GD_D3D9
	inline RTFORMAT DisplayMode::getSpecPixelFormat() const
	{
		switch(pixel_format)
		{
		case DPF_R8G8B8A8_UNORM:
			return D3DFMT_A8B8G8R8;
		default:
			return D3DFMT_UNKNOWN;
		};
	};
#endif
};