mirror of
https://github.com/minetest/irrlicht.git
synced 2024-11-18 08:10:32 +01:00
63 lines
1.5 KiB
C++
63 lines
1.5 KiB
C++
|
#include <irrlicht.h>
|
||
|
#include "exampleHelper.h"
|
||
|
|
||
|
using namespace irr;
|
||
|
|
||
|
using namespace core;
|
||
|
using namespace scene;
|
||
|
using namespace video;
|
||
|
using namespace io;
|
||
|
using namespace gui;
|
||
|
|
||
|
// It's important for iOS projects to use 'irrlicht_main' instead of standard 'main' function.
|
||
|
|
||
|
void irrlicht_main()
|
||
|
{
|
||
|
IrrlichtDevice *device = createDevice(EDT_OGLES2, dimension2d<u32>(0, 0), 16, false, false, false, 0);
|
||
|
|
||
|
if (!device)
|
||
|
return;
|
||
|
|
||
|
device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");
|
||
|
|
||
|
IVideoDriver* driver = device->getVideoDriver();
|
||
|
ISceneManager* smgr = device->getSceneManager();
|
||
|
IGUIEnvironment* guienv = device->getGUIEnvironment();
|
||
|
|
||
|
guienv->addStaticText(L"Hello World! This is the Irrlicht Software renderer!", rect<s32>(10,10,260,22), true);
|
||
|
|
||
|
const io::path mediaPath = getExampleMediaPath();
|
||
|
|
||
|
IAnimatedMesh* mesh = smgr->getMesh(mediaPath + "sydney.md2");
|
||
|
|
||
|
if (!mesh)
|
||
|
{
|
||
|
device->drop();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );
|
||
|
|
||
|
if (node)
|
||
|
{
|
||
|
node->setMaterialFlag(EMF_LIGHTING, false);
|
||
|
node->setMD2Animation(scene::EMAT_STAND);
|
||
|
node->setMaterialTexture( 0, driver->getTexture(mediaPath + "sydney.bmp") );
|
||
|
}
|
||
|
|
||
|
smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));
|
||
|
|
||
|
while (device->run())
|
||
|
if (device->isWindowActive())
|
||
|
{
|
||
|
driver->beginScene(ECBF_COLOR | ECBF_DEPTH, SColor(255,255,255,255));
|
||
|
|
||
|
smgr->drawAll();
|
||
|
guienv->drawAll();
|
||
|
|
||
|
driver->endScene();
|
||
|
}
|
||
|
|
||
|
device->drop();
|
||
|
}
|