/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
------------------------------------------------------------------------------*/


#ifndef	__GPUCONFIG__
#define	__GPUCONFIG__


		#include "ntypes.h"
		#include "alloc/ialloc.h"


namespace GS {
	namespace GPU {

struct	RendererConfig
{
		NPLACEMENT_NEW(Renderer)

enum NPOTSupport
{
	NPOT_None	=	0,
	NPOT_Limited,		// NPOT support with no mipmap and wrap as clamp to edge only.
	NPOT_Full
};

		uint		npot;
		uint		shadow_size;
		uint		max_anisotropy;

		bool		use_rtt;

		bool		can_resolve_msaa;
		bool		can_stream_vertex_from_memory;

		bool		enable_aa;
		bool		enable_shadow;
		bool		tex_origin_is_top_left;

		RendererConfig()
		{
			npot = NPOT_Full;
			shadow_size = 1024;
			max_anisotropy = 1;

			use_rtt = true;

			can_resolve_msaa = true;
			can_stream_vertex_from_memory = true;

			enable_aa = false;
			enable_shadow = true;

			tex_origin_is_top_left = true;
		}
};

	} // GPU
} // GS


#endif	// __GPUCONFIG__
