O próximo paramater define o resultion tela. Mais uma vez esses valores vêm do arquivo ConfigurationValues.h.
O IrrlichtDevice retruned, que o dispositivo de pontos variáveis para, é o objeto raiz para usar o motor. Ele contém a maioria dos objetos, vamos utilizar quando se trata do motor 3D subjacente. A função CreateDevice também cria a janela que irá mostrar a cena 3D vamos (eventualmente) criar.
O título da janela estiver definida chamando a função IrrlichtDevice setWindowCaption.
Em seguida, precisamos obter algumas indicações para o gestor do controlador de vídeo e cena na posse do IrrlichtDevice. Isto é realmente apenas por conveniência: não estamos a criar esses objetos, ficando apenas um ponteiro para eles do IrrlichtDevice
A função de desligamento essencialmente faz o inverso da função de inicialização.. Nós chamamos a função de queda IrrlichtDevice, que irá apagar o IrrlichtDevice.
Como regra geral, qualquer objeto Irrlicht que é instanciado com uma função que começa com a palavra "criar" (como CreateDevice) precisa ser destruído chamando a função de queda. Irrlicht mantém um contador de referência nos bastidores, o que lhe dá uma forma muito básica de coleta de lixo, e os criam e soltar funções permitem Irrlicht saber quando não houver mais referências a um objeto. A função InitialiseVariables é então chamado para definir todas as variáveis de volta para NULL.
Quase todas as aplicações 3D que você vai fazer (com Irrlicht ou não) tem o que é chamado um loop de processamento. Este é um loop que atualiza o aplicativo (por mover objetos ao redor, disparando balas, atualizando sistemas de partículas, etc) e, em seguida, torna o resultado desse quadro para a tela. A função StartRenderLoop contém a nossa renda loop.
O loop será executado até Device-> run () retorna false. Dentro do loop que chamamos Driver de> BeginScene (...), que tem de ser chamado antes de qualquer processamento é feito.
Os dois primeiros paramaters indicar que queremos para limpar o buffer de fundo eo buffer z, que limpa essencialmente afastado qualquer informação a partir do último quadro. O terceiro paramater define que cor o buffer de fundo será limpo com.
Em seguida, chamar o gerente de cena. Como o próprio nome sugere, um gerente de cena contém todos os objetos em uma cena, então quando nós chamamos smgr-> drawAll () todos os objetos 3D em uma cena será desenhado.