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


#ifndef	__GPU_RENDER_LIST__
#define __GPU_RENDER_LIST__


		#include "gpu/gpu_display_list.h"
		#include "core/renderable.h"


namespace GS {
	namespace GPU {

struct	RenderableList
{
	AutoStack <Render::Primitive *> primitive_list;
	AutoStack <RenderPrimitive *> display_lists[3];

	// 0 - opaque, 1 - transparent, 2 - framebuffer dependent
	void			Clear(bool free_internals = true)
	{
		primitive_list.Clear(free_internals);
		for (int n = 0; n < 3; ++n)
			display_lists[n].Clear(free_internals);
	}
};

	} // GPU
} // GS


#endif	// __GPU_RENDER_LIST__
