Przejdź do zawartości

OGRE/Pierwszy program

Z Wikibooks, biblioteki wolnych podręczników.
Wstecz: Zalążek programu OGRE Spis treści Dalej: Środowisko pracy skompilowanej aplikacji
Po skompilowaniu przykładu zobaczymy taki wynik.

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.