Hej
Piszę sobie małą giereczkę w C++ z wykorzystaniem biblioteki SDL2. I napotkałem problem - chodzi o przekazanie wskaźnika na obiekt do mojej funkcji, wewnątrz której będzie wywołanie funkcji z SDL'a która wymaga wskaźnika na wskaźnik
Jest tam taka funkcja która tworzy okienko i podstawowy renderer:
SDL_CreateWindowAndRenderer(int width, int height, Uint32 window_flags, SDL_Window** window, SDL_Renderer** renderer) //zwraca inta
Udało mi się użyć jej wewnątrz main'a:
int main(int argc, char **argv) {
//różne zmienne
SDL_Window *window = nullptr;
SDL_Renderer *renderer = nullptr;
//nudny kod
int status = SDL_CreateWindowAndRenderer(SCREEN_WIDTH, SCREEN_HEIGHT, 0, &window, &renderer);
if (status != 0) {
SDL_Quit();
return 1;
}
}
Musiałem użyć tego & aby SDL_Window** akcpetowało SDL_Window*. Działa dobrze
Jednak chciałbym wywoływać to wewnątrz funkcji init, którą sobie napisałem i która ustawia, tytuł, parametry okienka itp., ale zupełnie nie wiem jak napisać/oznaczyć parametry SDL_Window* oraz SDL_Renderer* do tej funkcji i jak je wywołać aby obiekty zainicjalizowały się poprawnie.
//tak aby ta linia wykonała się poprawnie wewnątrz inita:
int status = SDL_CreateWindowAndRenderer(SCREEN_WIDTH, SCREEN_HEIGHT, 0, &window, &renderer);
Moje próby (dla czytelności pomijam resztę parametrów, bo nie są ważne):
void initSDL(SDL_Window **& window, SDL_Renderer **& renderer)
void initSDL(SDL_Window ** window, SDL_Renderer ** renderer)
void initSDL(SDL_Window *& window, SDL_Renderer *& renderer)
// + próba zmiany sposobu przekazania parametru wewnątrz main'a - robienie dodatkowych wskaźników na ten obiekt, jakieś & przy wywołaniu etc.
Nic nie działa, zawsze jest błąd (status != 0) i okno się nie pojawia