/*
/ BRAINSTEM.H
/ ***********
/ Base header that exposes the core
/ creation functions of the engine, 
/ (such as creating the kernel).
/
/ Will Beddow 2010 - http://343gs.com/brainstem
/
/ This software is currently under development
/ and is subject to change and improvement. Some
/ aspects of the system are incomplete and/or 
/ unstable due to ongoing implementation.
/
*/

#ifndef __BRAINSTEM_H__
#define __BRAINSTEM_H__

#define WIN32_LEAN_AND_MEAN

#include "Compile.h"
#include "Types.h"
#include "Utils.h"
#include "Kernel.h"
#include "Params.h"
#include "Matrix.h"
#include "Device.h"
#include "Director.h"
#include "Display.h"
#include "Node.h"
#include "Scene.h"
#include "Sky.h"
#include "Sprite.h"
#include "Event.h"
#include "Terrain.h"
#include "Camera.h"

namespace Brainstem
{
	extern "C" 
	{
		BRAINSTEM_API IKernel* CreateKernel(const Kernel_Params& params);

		BRAINSTEM_API IKernel* CreateKernelEx(
			HWND hWnd, 
			HINSTANCE hInstance, 
			Dimension2<int> size,
			bool fullscreen);

		BRAINSTEM_API IKernel* GetKernel();
	}
}


#endif