• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tekstura obiektu

Cloud VPS
0 głosów
266 wizyt
pytanie zadane 11 marca 2018 w C i C++ przez robertb12354 Nowicjusz (220 p.)
edycja 11 marca 2018 przez Patrycjerz
Aktualnie pisze program dydaktyczny w C++ z pomocą biblioteki SDL2 którego zadanie jest pokazywanie obiektów na ekranie .Pisze ten program obiektowo i nie wiem jak zrobić aby każdy z obiektów jednej klasy miał jedną teksturę która wczytywała by się raz zamiast osobo dla każdego obiektu.

Pozdrawia, i liczę na twoją odpowiedź :)

1 odpowiedź

+2 głosów
odpowiedź 11 marca 2018 przez Patrycjerz Mędrzec (192,320 p.)
wybrane 16 marca 2018 przez robertb12354
 
Najlepsza
Stwórz menedżer zasobów, który będzie zwracał dany zasób i zliczał referencje do niego. Jeśli jest ich zero, a ktoś potrzebuje dostępu do tekstury, to załaduj ją do pamięci i zainkrementuj licznik. Później cały czas zwracaj tę samą teksturę. Gdy wszystkie obiekty zwolnią zasób, a licznik stanie się zerem, usuwasz go.
komentarz 16 marca 2018 przez robertb12354 Nowicjusz (220 p.)
Nie wiem jak by to miało wyglądać

 

Mógłbyś pokazać kawałek kodu jak by to miało wyglądać
komentarz 16 marca 2018 przez Patrycjerz Mędrzec (192,320 p.)
Tworzysz klasę, która będzie zwracała tekstury na żądanie (np. po nazwie pliku). Gdy pierwszy raz odwołasz się do danego zasobu, to zostanie on załadowany do programu. W późniejszych odwołaniach będziesz zwracał już wczytaną teksturę. Oczywiście cały czas inkrementujesz licznik referencji. Jeśli dany zasób zostanie zwolniony, to dekrementujesz licznik, aż dojdzie do zera, wtedy usuwasz cały zasób (kolejne odwołanie do niego będzie poprzedzone kolejnym wczytaniem go do pamięci).

Oczywiście można taki menedżer spersonalizować pod własne potrzeby, nie musi wyglądać dokładnie jak napisałem. Pamiętaj, że każdy zasób musi mieć swój licznik, zaś dostęp do menedżera możesz zapewnić poprzez metody statyczne lub referencję dla każdego obiektu.
komentarz 18 marca 2018 przez robertb12354 Nowicjusz (220 p.)
Ok,dziękuje za odpowiedź :)

Podobne pytania

0 głosów
2 odpowiedzi 618 wizyt
pytanie zadane 3 czerwca 2017 w Sprzęt komputerowy przez Aviis Początkujący (300 p.)
0 głosów
0 odpowiedzi 287 wizyt
pytanie zadane 26 sierpnia 2020 w Systemy operacyjne, programy przez PanPrezes Obywatel (1,520 p.)
0 głosów
1 odpowiedź 6,715 wizyt
pytanie zadane 14 stycznia 2019 w Grafika i multimedia przez kubekszklany Gaduła (3,250 p.)

93,467 zapytań

142,460 odpowiedzi

322,734 komentarzy

62,847 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...