1 #include <irrlicht.h>
2 #include "driverChoice.h"
3 
4 // include the gui creator element factory
5 #include "CGUIEditFactory.h"
6 
7 using namespace irr;
8 using namespace gui;
9 
10 #ifdef _MSC_VER
11 #pragma comment(lib, "Irrlicht.lib")
12 #endif
13 
main()14 int main()
15 {
16 	// ask user for driver
17 	video::E_DRIVER_TYPE driverType=driverChoiceConsole();
18 	if (driverType==video::EDT_COUNT)
19 		return 1;
20 
21 	IrrlichtDevice *device = createDevice(driverType, core::dimension2du(800, 600));
22 	video::IVideoDriver* driver = device->getVideoDriver();
23 	scene::ISceneManager* smgr = device->getSceneManager();
24 	gui::IGUIEnvironment *env = device->getGUIEnvironment();
25 
26 	device->setResizable(true);
27 
28 	/*
29 		first we create the factory which can make new GUI elements
30 		and register it with the gui environment.
31 	*/
32 
33 	IGUIElementFactory* factory = new CGUIEditFactory(env);
34 	env->registerGUIElementFactory(factory);
35 	// remember to drop since we created with a create call
36 	factory->drop();
37 
38 	IGUISkin *skin = env->createSkin(EGST_WINDOWS_METALLIC);
39 	env->setSkin(skin);
40 
41 	IGUIFont *font = env->getFont("../../media/lucida.xml");
42 	if (font)
43 		skin->setFont(font);
44 	skin->drop();
45 
46 	// change transparency of skin
47 	for (s32 i=0; i<gui::EGDC_COUNT ; ++i)
48 	{
49 		video::SColor col = env->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
50 		col.setAlpha(250);
51 		env->getSkin()->setColor((gui::EGUI_DEFAULT_COLOR)i, col);
52 	}
53 
54 	/*
55 		now we add the GUI Editor Workspace
56 	*/
57 
58 	env->addGUIElement("GUIEditor");
59 
60 	while(device->run())
61 	{
62 		device->sleep(10);
63 
64 		if (device->isWindowActive())
65 		{
66 			driver->beginScene(true, true, video::SColor(0,200,200,200));
67 			smgr->drawAll();
68 			env->drawAll();
69 			driver->endScene();
70 		}
71 	}
72 
73 	device->drop();
74 
75 	return 0;
76 }
77