+
Lets start: Create an Irrlicht device and setup the window.
+
+
+ #include
+#include
+using namespace irr;
+
+#pragma comment(lib, "Irrlicht.lib")
+
+int main()
+{
+ // ask user for driver
+
+ video::E_DRIVER_TYPE driverType;
+
+ printf("Please select the driver you want for this example:\n"\
+ " (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n"\
+ " (d) Software Renderer\n (e) Apfelbaum Software Renderer\n"\
+ " (f) NullDevice\n (otherKey) exit\n\n");
+
+ char i;
+ std::cin >> i;
+
+ switch(i)
+ {
+ case 'a': driverType = video::EDT_DIRECT3D9;break;
+ case 'b': driverType = video::EDT_DIRECT3D8;break;
+ case 'c': driverType = video::EDT_OPENGL; break;
+ case 'd': driverType = video::EDT_SOFTWARE; break;
+ case 'e': driverType = video::EDT_BURNINGSVIDEO;break;
+ case 'f': driverType = video::EDT_NULL; break;
+ default: return 1;
+ }
+
+ // create device and exit if creation failed
+
+ IrrlichtDevice* device =
+ createDevice(driverType, core::dimension2d(640, 480));
+
+ if (device == 0)
+ return 1; // could not create selected driver.
+
+ device->setWindowCaption(L"Load .irr file example");
+
+ video::IVideoDriver* driver = device->getVideoDriver();
+ scene::ISceneManager* smgr = device->getSceneManager();
+ |
+
+
+
Now load our .irr file. .irr files can store the whole scene graph
+ including animators, materials and particle systems. And there is also
+ the possibility to store arbitrary user data for every scene node in
+ that file. To keep this example simple, we are simply loading the scene
+ here. See the documentation at ISceneManager::loadScene and ISceneManager::saveScene
+ for more information. So to load and display a complicated huge scene,
+ we only need a single call to loadScene().
+
+
+ // load the scene smgr->loadScene("../../media/example.irr"); |
+
+
+
That was it already. Now add a camera and draw the scene.
+
+
+ // add a user controlled camera
+
+ smgr->addCameraSceneNodeFPS();
+
+ // and draw everything.
+
+ while(device->run())
+ if (device->isWindowActive())
+ {
+ driver->beginScene(true, true, video::SColor(0,200,200,200));
+ smgr->drawAll();
+ driver->endScene();
+ }
+
+ device->drop();
+
+ return 0;
+}
+ |
+
+
+
+
+