#pragma once

namespace Mix{ namespace Graphics{ namespace Common{

	class Device;

	class DeviceObject
	{
	private:
		Mix::Graphics::Common::Device* m_pDevice;

#ifdef _DEBUG
		Mix::StringW m_DebugName;
#endif //_DEBUG

	protected:
		DeviceObject( Mix::Graphics::Common::Device* pDevice );
		virtual ~DeviceObject( void );

	public:
		virtual void Invalidate( void ) {}
		virtual void Validate( void ) {}

#ifdef _DEBUG
		const wchar_t* GetDebugName( void ) const;
		void SetDebugName( const wchar_t* pDebugName );
#endif //_DEBUG
	};

}}}
