poniedziałek, 9 sierpnia 2010

Kilka pierwszych problemów

Projektuje na razie klasy i rozmyślam o ich implementacji. Natrafiłem na pewne trudności i sposoby ich rozwiązania, oto one:

  1. Rozwiązanie projektowe managera zasobów:
    • Pierwsza, przechowywać zasoby w specjalizowanych managerach dla każdego typu;
    • Druga, Stworzyć pojedynczą "mapę" na na obiekty typu IResource(w tej klasie zarezerwować pole dla typu zasobu), każdy zasób dziedziczy po niej. I wystarczy przy pobieraniu rzutować na wybrany typ;Wybrałem to rozwiązanie!!!
  2. Klasa czcionki i problem z funkcją w stylu printf()



  • Rozwiązanie 1:
    • Wyszedłem od takiego prototypu: 
                      void DrawTextf(int x, int y, int flags, const char * string, ...)
    •  Ale nie można przekazać do funkcji tego "...", więc można by zastosować vsprintf()  do którego można przekazać va_list i dzięki temu można  wszystko połączyć i wykorzystać DrawText();
    • Niestety wadą tego rozwiązania jest to że musimy znać rozmiar bufora do którego zapisujemy.
  • Rozwiązanie 2:
    • skorzystać z Boost Format library i stworzyć funkcję przyjmującą taki obiekt :
                   DrawTextf( int x, int y, int flags ,boost::format));

    1 komentarz:

    1. Musimy? Jesteś pewien? _vscprintf ;)

      Ogólnie nie jestem zwolennikiem Boosta(za dużo szablonów i zbyt kobylaste) więc odradzam rozwiązanie 2.

      OdpowiedzUsuń