OGRE/Pierwszy program

Windows
[edytuj]#include "Ogre.h"
#include "ExampleApplication.h"
#include <windows.h>
// Dziedziczymy ExampleApplication
class FirstApp : public ExampleApplication
{
public:
FirstApp() { }
/** createScene jest funkcją czysto wirtualną w ExampleApplication,
* nadpisujemy ją, aby nic nie robiła.
* Na początku tworzy ona pustą scenę.
**/
void createScene(void) { }
};
INT WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT) {
FirstApp myApp; // Tworzymy instancję naszej klasy
try { // Wychwytuje powstałe wyjątki, które mogą powstać
myApp.go(); // ExampleApplication dostarcza metodę go, która rozpoczyna rendering
} catch (Ogre::Exception& e) {
MessageBox( NULL, e.getFullDescription().c_str(), "Wyjątek!",
MB_OK | MB_ICONERROR | MB_TASKMODAL);
}
}
Linux
[edytuj]#include <Ogre.h> /* Wszystkie nagłówki OGRE */
#include <iostream> /* Umożliwia wypisywanie błędów na konsole */
#include "ExampleApplication.h"
// Dziedziczymy ExampleApplication
class FirstApp : public ExampleApplication
{
public:
FirstApp() { }
/** createScene jest funkcją czysto wirtualną w ExampleApplication, nadpisujemy ją, aby nic nie robiła.
* Na początku tworzy ona pustą scenę.
**/
void createScene(void) { }
};
int main(int argc, char **argv) {
FirstApp myApp; // Tworzymy instację naszej klasy
try {
myApp.go(); // ExampleApplication dostarcza metodę go, która rozpoczyna rendering
return 0; // Zwraca 0 w przypadku powodzenia
} catch (Ogre::Exception& e) {
std::cerr <<"Wyjątek:\n";
std::cerr <<e.getFullDescription().c_str() <<"\n";
return 1; // Zwrócenie liczby różnej od zera oznacza niepowodzenie
}
}
Dodatkowe informacje związane z Linuksem
[edytuj]Pliki Samples/Common/include/ExampleApplication.h, Samples/Common/include/ExampleFrameListener.h i Samples/Common/include/ExampleLoadingBar.h powinny zostać przekopiowane do katalogu, w którym chcesz zapisać plik z kodem źródłowym.
Zapisz plik jako main.cpp i przekompiluj go poleceniem:
$ gcc `pkg-config --cflags OGRE` `pkg-config --libs OGRE` main.cpp
Następnie przekopiuj plik wykonywalny a.out do Samples/Common/bin, przejdź do tego katalogu i uruchom go poleceniem
$ ./a.out
Jeśli pkg-config nie może odnaleźć OGRE utwórz plik OGRE.pc w odpowiednim katalogu za pomocą polecenia:
$ ln -s /usr/local/lib/pkgconfig/OGRE.pc /usr/lib/pkgconfig/OGRE.pc
Oczywiście zakładamy, że plik OGRE.pl znajduje się w /usr/local/lib/pkgconfig/.
Zamiast kopiować przekompilowany program do Samples/Common/bin możesz przekopiować pliki plugins.cfg i resources.cfg do katalogu ze swoim projektem, a następnie skonfigurować ścieżki w resources.cfg. W przypadku tworzenia większych projektów jest to najlepsze rozwiązanie.