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

#ifndef DSE_RS_TEXTURE_LOADABLETEXTURE_COMMON_HPP
#define DSE_RS_TEXTURE_LOADABLETEXTURE_COMMON_HPP

#include <Darkstar/common.hpp>

namespace rs_private
{
	struct _Masks
	{
		unsigned int amask;
		unsigned int rmask;
		unsigned int bmask;
		unsigned int gmask;

		_Masks();
	};

	enum _TextureType
	{
		TEXTURE2D = 0,
		TEXTURE_VOLUME = 1,
		TEXTURE_CUBE = 2,
	};

	enum _CubeFaces
	{
		PX = 1,
		NX = 2,
		PY = 4,
		NY = 8,
		PZ = 16,
		NZ = 32,
	};

	struct DSUBRES_DATA
	{
		const void* pointer;
		unsigned int row_pitch;
		unsigned int slice_pitch;
	};

	void _reduceTmpValues(unsigned int& tmp_width, unsigned int& tmp_height, unsigned int& tmp_depth, const unsigned int i = 1);
	unsigned int _getShiftAndSize(const unsigned int mask, unsigned int& size);
	bool setCorrectSizeToDXT(unsigned int& width, unsigned int& height);
};

#endif