[Allegro5] Klasa i wskaźniki
Ostatnio zmodyfikowano 2010-02-09 23:56
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 :) |
|
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. |
|
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... |
|
DejaVu |
» 2010-02-09 19:57:12 @up: Najlepiej to przestać programować no nie? :) |
|
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... |
|
Elaine |
» 2010-02-09 19:59:44 Dziwna ta analogia. Czemu pisanie w języku z GC ma być podobne do zaprzestania programowania? |
|
steckel Temat założony przez niniejszego użytkownika |
» 2010-02-09 20:01:31 W konstruktorze powinno być: 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: font = new ALLEGRO_FONT( * al_load_ttf_font( "times.ttf", 20, 0 ) );
delete font;
Niestety to też nie działało. |
|
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). |
|
| 1 « 2 » 3 |