[C++] [SDL] Gdzie trzymać renderer


(invader92) #1

Pytanie głównie do ludzi, którzy znają SDL2 i mają dobre praktyki w nawyku.

Zainteresowałem się ostatnio biblioteką SDL2 (pod kątem projektu na studia), więc od razu zaznaczam, że jestem mocno - początkujący.

Projekt zakłada prostą grę 2d. Dla ułatwienia postanowiłem utworzyć coś na wzór menedżera zasobów (singleton) ( głównie tekstur, czcionek i dźwięków).

Aby jednak wygenerować teksturę (funkcją SDL_CreateTextureFromSurface) potrzebny mi jest dostęp do tworu, co się zowie SDL_Renderer.

Tego samego tworu potrzebuję, aby coś na ekran wyrzucić, jest częścią okna programu.

Pytanie:

Jak w takim razie mieć dostęp do tego renderera w dowolnym miejscu programu?

Pytanie 2:

Czy takie rozwiązanie, albo czy dążenie do niego jest w ogóle sensowne, bo być może na takie działanie jest inne, bardziej eleganckie i sensowne rozwiązanie,

o którym po prostu jeszcze nie wiem, bo np nie dotarłem to tego etapu?

Rozważałem koncepcję silngletonu (podobnie jak z zasobami), gdzie w ciągu życia programu istnieje tylko jeden renderer i jest dostępny z każdego miejsca.

Z góry dziękuję.