//------------------------------------------------------------------------------------
// irr::SIrrCreationParameters wrappers
//------------------------------------------------------------------------------------

extern "C" 
{

	SIrrlichtCreationParameters* Irr_SIrrlichtCreationParameters_new()
	{
		return new SIrrlichtCreationParameters();
	}

	SIrrlichtCreationParameters* Irr_SIrrlichtCreationParameters_newFromOther(SIrrlichtCreationParameters* other)
	{
		return new SIrrlichtCreationParameters(*other);
	}

	SIrrlichtCreationParameters* Irr_SIrrlichtCreationParameters_setEq(SIrrlichtCreationParameters* cp, SIrrlichtCreationParameters* other)
	{
		*cp = *other;
		return cp;		
	}
		
	void Irr_SIrrlichtCreationParameters_del(SIrrlichtCreationParameters* cp)
	{
		if (cp) delete cp;
		cp=0;
	}
	
	u8 Irr_SIrrlichtCreationParameters_getAntiAlias(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->AntiAlias; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setAntiAlias(SIrrlichtCreationParameters* cp, u8 bAntiAlias)
	{
		if (cp) cp->AntiAlias=bAntiAlias;
	}

	u8 Irr_SIrrlichtCreationParameters_getBits(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->Bits; else return 0;
	}
	
	void Irr_SIrrlichtCreationParameters_setBits(SIrrlichtCreationParameters* cp, u8 bits)
	{
		if (cp) cp->Bits=bits;
	}
	
	u32 Irr_SIrrlichtCreationParameters_getDriverType(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->DriverType; else return 0;
	}
	
	void Irr_SIrrlichtCreationParameters_setDriverType(SIrrlichtCreationParameters* cp,E_DRIVER_TYPE type)
	{
		if (cp) cp->DriverType=type;
	}
	
	IEventReceiver* Irr_SIrrlichtCreationParameters_getEventReceiver(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->EventReceiver; else return 0;
	}
	
	void Irr_SIrrlichtCreationParameters_setEventReceiver(SIrrlichtCreationParameters* cp,IEventReceiver* recv)
	{
		if (cp) cp->EventReceiver=recv;
	}
	
	bool Irr_SIrrlichtCreationParameters_getFullscreen(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->Fullscreen; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setFullscreen(SIrrlichtCreationParameters* cp,bool fullscreen)
	{
		if (cp) cp->Fullscreen=fullscreen;
	}
	
	bool Irr_SIrrlichtCreationParameters_getStencilbuffer(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->Stencilbuffer; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setStencilbuffer(SIrrlichtCreationParameters* cp,bool sb)
	{
		if (cp) cp->Stencilbuffer=sb;
	}
	
	bool Irr_SIrrlichtCreationParameters_getVsync(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->Vsync; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setVsync(SIrrlichtCreationParameters* cp,bool vs)
	{
		if (cp) cp->Vsync=vs;
	}
	
	void* Irr_SIrrlichtCreationParameters_getWindowId(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->WindowId; else return 0;
	}
	
	void Irr_SIrrlichtCreationParameters_setWindowId(SIrrlichtCreationParameters* cp,void* hwnd)
	{
		if (cp) cp->WindowId=hwnd;
	}
	
	dimension2di* Irr_SIrrlichtCreationParameters_getWindowSize(SIrrlichtCreationParameters* cp)
	{
		if (cp) return new dimension2di(cp->WindowSize); else return 0;
	}

	void Irr_SIrrlichtCreationParameters_setWindowSize(SIrrlichtCreationParameters* cp,dimension2di* size)
	{
		if (cp) cp->WindowSize=*size;
	}
	
	bool Irr_SIrrlichtCreationParameters_getHighPrecisionFPU(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->HighPrecisionFPU; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setHighPrecisionFPU(SIrrlichtCreationParameters* cp,bool hpfpu)
	{
		if (cp) cp->HighPrecisionFPU=hpfpu;
	}
	
	u8 Irr_SIrrlichtCreationParameters_getZBufferBits(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->ZBufferBits; else return 0;
	}
	
	void Irr_SIrrlichtCreationParameters_setZBufferBits(SIrrlichtCreationParameters* cp, u8 bits)
	{
		if (cp) cp->ZBufferBits = bits;
	}

	bool Irr_SIrrlichtCreationParameters_getWithAlphaChannel(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->WithAlphaChannel; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setWithAlphaChannel(SIrrlichtCreationParameters* cp, bool WithAlphaChannel)
	{
		if (cp) cp->WithAlphaChannel = WithAlphaChannel;
	}

	bool Irr_SIrrlichtCreationParameters_getIgnoreInput(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->IgnoreInput; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setIgnoreInput(SIrrlichtCreationParameters* cp, bool IgnoreInput)
	{
		if (cp) cp->IgnoreInput = IgnoreInput;
	}

	u32 Irr_SIrrlichtCreationParameters_getDeviceType(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->DeviceType; else return 0;
	}
	
	void Irr_SIrrlichtCreationParameters_setDeviceType(SIrrlichtCreationParameters* cp, E_DEVICE_TYPE type)
	{
		if (cp) cp->DeviceType=type;
	}

	bool Irr_SIrrlichtCreationParameters_getDoublebuffer(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->Doublebuffer; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setDoublebuffer(SIrrlichtCreationParameters* cp, bool DoubleBuffer)
	{
		if (cp) cp->Doublebuffer = DoubleBuffer;
	}

	bool Irr_SIrrlichtCreationParameters_getStereobuffer(SIrrlichtCreationParameters* cp)
	{
		if (cp) return cp->Stereobuffer; else return false;
	}
	
	void Irr_SIrrlichtCreationParameters_setStereobuffer(SIrrlichtCreationParameters* cp, bool StereoBuffer)
	{
		if (cp) cp->Stereobuffer = StereoBuffer;
	}
	
	s32 Irr_SIrrlichtCreationParameters_getLoggingLevel(SIrrlichtCreationParameters* cp)
	{
		if (cp)
			return cp->LoggingLevel;
		else return -1;
	}
	
	void Irr_SIrrlichtCreationParameters_setLoggingLevel(SIrrlichtCreationParameters* cp, ELOG_LEVEL log_level)
	{
		if (cp)
			cp->LoggingLevel = log_level;
	}
	
}


