Code: Select all
IrrlichtDevice* Setup(std::string filename, CEventReceiver* receiver)
{
IrrXMLReader* xml = createIrrXMLReader(filename.c_str());
std::string d;
int x,y,z,f,vs,sb,aa;
while(xml && xml->read())
{
switch(xml->getNodeType())
{
case EXN_ELEMENT:
{
if (!strcmp("Screen", xml->getNodeName()))
{
x = xml->getAttributeValueAsInt("X");
y = xml->getAttributeValueAsInt("Y");
z = xml->getAttributeValueAsInt("Z");
f = xml->getAttributeValueAsInt("F");
}
else
if (!strcmp("Render", xml->getNodeName()))
{
aa = xml->getAttributeValueAsInt("AA");
sb = xml->getAttributeValueAsInt("SB");
vs = xml->getAttributeValueAsInt("VS");
d = xml->getAttributeValue("Driver");
}
}
break;
}
}
delete xml;
E_DRIVER_TYPE driver;
if(d!="gl")
#ifdef _IRR_COMPILE_WITH_DIRECT3D_9_
if(d!="dx")
#endif
d="so";
if(d=="gl")
driver=EDT_OPENGL;
if(d=="dx")
driver=EDT_DIRECT3D9;
if(d=="so")
driver=EDT_BURNINGSVIDEO;
SIrrlichtCreationParameters params;
params.AntiAlias=aa;
params.Stencilbuffer=sb;
params.Vsync=vs;
params.WindowSize=dimension2d<s32>(x,y);
params.Bits=z;
params.Fullscreen=f;
params.EventReceiver=receiver;
params.DriverType=driver;
IrrlichtDevice* device=createDeviceEx(params);
return device;
}Code: Select all
<!-- Graphics Config -->
<Screen X="1280" Y="1024" Z="32" F="1"/>
<Render AA="1" SB="1" VS="1" Driver="gl"/>
<!-- Valid Values -->
<!-- Driver -> gl, dx -->Enjoy!