// Copyright (C) 2002-2006 Nikolaus Gebhardt
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h

#ifndef __E_DRIVER_TYPES_NET_H_INCLUDED__
#define __E_DRIVER_TYPES_NET_H_INCLUDED__

namespace Irrlicht
{
namespace Video
{
	/// <summary>
	/// An enum for all types of drivers the Irrlicht Engine supports.
	/// </summary>
	__value public enum DriverType
	{
		/// <summary> Null device, useful for applications to run the engine without visualisation. 
		/// The null device is able to load textures, but does not render and display
		/// any graphics.
        /// </summary>
		NULL_DRIVER,     

		/// <summary>
		/// The Irrlicht Engine Software renderer, runs on all platforms,
		/// with every hardware. It should only be used for 2d graphics, 
		/// but it can also perform some primitive 3d functions. These 3d drawing 
		/// functions are quite fast, but very inaccurate, and don't even support 
		/// clipping in 3D mode.
		/// </summary>
		SOFTWARE, 

		/// <summary>
		/// The Burning's Software Renderer, an alternative software renderer for Irrlicht.
		/// Basically it can be described as the Irrlicht Software renderer on steroids. It rasterizes
		/// 3D geometry perfectly: It is able to perform correct 3d clipping, perspective 
		/// correct texture mapping, perspective correct color mapping, and renders 
		/// sub pixel correct, sub texel correct primitives. In addition, it does
		/// bilinear texel filtering and supports more materials than the EDT_SOFTWARE driver.
		/// This renderer has been written entirely by Thomas Alten, thanks a lot for this huge
		/// contribution.
		/// </summary>
		SOFTWARE2,

		/// <summary>
		/// Direct3D 8 device, only available on Win32 platforms including Win95, Win98, WinNT,
		/// Win2K, WinXP.
		/// </summary>
		DIRECT3D8, 

		/// <summary>
		/// Direct3D 9 device, only available on Win32 platforms including Win95, Win98, WinNT,
		/// Win2K, WinXP.
		/// </summary>
		DIRECT3D9,

		/// <summary> OpenGL device, available on all Win32 platforms and on Linux. </summary>
		OPENGL    
	};

} // end namespace video
} // end namespace irr


#endif

