Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro5] Klasa i wskaźniki

Ostatnio zmodyfikowano 2010-02-09 23:56
Autor Wiadomość
DejaVu
» 2010-02-09 19:43:18
http://forum.gamedev.pl/index.php?topic=15316.30

/edit:
http://www.allegro.cc/manual/api/fonts/

Poszukaj funkcji do kopiowania istniejącej instancji czcionki. Jeśli nie znajdziesz to proponuję użyć boost::shared_ptr'a do czcionki, tj. boost::shared_ptr<CFont> i zaimplementuj sobie klasę CFont, która będzie prawidłowo tworzyła i usuwała czcionkę (najlepiej żeby klasa była wtedy noncopyable).

/edit2:
Ale link niestety jest do allegro4, więc pogrzeb w dokumentacji allegro5 :)
P-13706
Elaine
» 2010-02-09 19:45:33
Patrzę na ten kod i się zastanawiam, czy to w ogóle ma prawo działać - al_destroy_font pewnie używa free lub czegoś innego, ty zaś podajesz wskaźnik otrzymany przez new, co raczej się nie uda.
P-13707
WinerFresh
» 2010-02-09 19:55:01
Najlepiej to niepier*** się z Tłustem lub czymś tam innym, ale użyć języka z porządnym GC i problemu nie ma...
P-13708
DejaVu
» 2010-02-09 19:57:12
@up: Najlepiej to przestać programować no nie? :)
P-13709
WinerFresh
» 2010-02-09 19:57:22
Najlepiej to nie pier*** się z Tłustem lub czymś tam innym, ale użyć języka z porządnym GC i problemu nie ma...
P-13710
Elaine
» 2010-02-09 19:59:44
Dziwna ta analogia. Czemu pisanie w języku z GC ma być podobne do zaprzestania programowania?
P-13711
steckel
Temat założony przez niniejszego użytkownika
» 2010-02-09 20:01:31
W konstruktorze powinno być:
C/C++
Czcionka( const Czcionka & czcionka ) {
    font = czcionka.font;
    kolor = czcionka.kolor;
}
Pomyłka wystąpiła przez to, że próbowałem też poprzez użycie:
C/C++
font = new ALLEGRO_FONT( * al_load_ttf_font( "times.ttf", 20, 0 ) );
//
delete font;
Niestety to też nie działało.
P-13713
DejaVu
» 2010-02-09 21:57:15
Jeśli ALLEGRO_FONT jest wskaźnikiem lub strukturą, w której następuje alokacja dynamiczna to czcionka = bazowa.czcionka; jest błędnym rozwiązaniem (w konstruktorze kopiującym).
P-13720
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona