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

#ifndef DSE_RS_TEXTURES_BASETEXTURE_HPP
#define DSE_RS_TEXTURES_BASETEXTURE_HPP

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

namespace rs
{
	class BaseTexture
	{
	protected:
		unsigned int height;
		unsigned int width;
		unsigned int depth;

		DSEFORMAT pixel_format;

#ifdef GD_D3D10
		ID3D10ShaderResourceView* srv;
#endif
#ifdef GD_D3D9
		IDirect3DBaseTexture9* tex;
#endif
	public:
		BaseTexture();
		virtual ~BaseTexture();

		unsigned int getHeight() const;
		unsigned int getWidth() const;
		unsigned int getDepth() const;

		const DSEFORMAT& getPixelFormat() const;

#ifdef GD_D3D10
		ID3D10ShaderResourceView* getShaderResourceView() const;
#endif
#ifdef GD_D3D9
		IDirect3DBaseTexture9* getTexture() const;
#endif
	};
};

#include <Darkstar/Resource System/Textures/baseTexture.inl>

#endif