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


#ifndef	__EMBEDDEDRESOURCEEXTRACTOR__
#define	__EMBEDDEDRESOURCEEXTRACTOR__


		#include "core/embedded_resource_handler_interface.h"


namespace GS {
	namespace Core {

//
struct	EmbeddedResourceExtractor : public IEmbeddedResourceHandler
{
		bool		extract_to_ram;

/*
	@name	Provide support for legacy embedded resources.
	@{
*/
virtual	bool		ExtractEmbeddedMaterial(String &out, NML::Tag &, const char *context, int slot);
virtual	bool		ExtractEmbeddedShaderTree(String &out, NML::Tag &, const char *context);
///	@}

		/// Warning: Do not use ram-based extraction in production code!
		EmbeddedResourceExtractor(bool extract_to_ramdisk = false);
};

	} // Core
} // GS


#endif	// __EMBEDDEDRESOURCEEXTRACTOR__
