#pragma once

// Scaleform driver & engine interface
#include "RuScaleformDriver_Base.h"
#include "RuScaleformEngine_Base.h"

#pragma managed(push, off)

// ************************************************************************************************************************************************************

class CRuScaleform : public IRuObject
{
	ruRTTI_DECLARE
	ruHEAP_DECLARE
	ruCLASSGUID_DECLARE

public:
	enum RuScaleformRendererType
	{
		ruRENDERERTYPE_OPENGL					= 0,
		ruRENDERERTYPE_D3D9						= 1,
		ruRENDERERTYPE_D3D10					= 2
	};

protected:
	IRuScaleformDriver*							m_driver;
	IRuScaleformEngine*							m_engine;

public:
												CRuScaleform();
	virtual										~CRuScaleform();

	BOOL										Initialize(RuScaleformRendererType rendererType);
	IRuScaleformDriver*							GetDriver();
	IRuScaleformEngine*							GetEngine();
};

// ************************************************************************************************************************************************************

#pragma managed(pop)
