Salve a tutti
vorrei gentilmente sapere come posso passarmi da una funzione ad un altra le seguenti
informazioni:
k = grafica(screen,screenren,larghezza,lunghezza,moda);
cosi definite nel main
SDL_Window *screen=NULL;
SDL_Renderer *screenren=NULL;
queste 2 variabili vengono modificate nella funzione grafica che dovrebbe poi restituirmele modificate ma non lo fa!
la funzione grafica e la seguente:
int grafica(SDL_Window *screen,SDL_Renderer *screenren,int &larghezza,int &lunghezza,int &moda)
{
int k=0;
if (screen != NULL) { return -20; }
if (screenren != NULL) { return -20; }
if (SDL_Init(SDL_INIT_VIDEO)==-1) { return -1; }
SDL_DisplayMode dm;
if (SDL_GetDesktopDisplayMode(0,&dm) != 0) { return -2; }
if (larghezza < 0) { return -3; }
if (larghezza > dm.w) { return -3; }
if (lunghezza < 0) { return -3; }
if (lunghezza > dm.h) { return -3; }
if (larghezza == 0 && lunghezza == 0)
{ larghezza = dm.w; lunghezza = dm.h; k = 1;}
SDL_Window *s;
SDL_Renderer *r;
if (k == 1)
{
(SDL_CreateWindowAndRenderer(larghezza,lunghezza,SDL_WINDOW_FULLSCREEN_DESKTOP,&s,&r));
}
else
{
(SDL_CreateWindowAndRenderer(larghezza,lunghezza,SDL_WINDOW_BORDERLESS,&s,&r));
}
if (s == NULL) { return -6;};
if (r == NULL) { return -7;};
screen = s; screenren = r; moda = 1;
cout << " sono in grafica! screen window = " << screen << " screen renderer = " << screenren << "\n";
return 0;
}
ho già provato:
k = grafica(&screen,&screenren,larghezza,lunghezza,moda);
ma in fase di compilazione mi restituisce
impossibile convertire il parametro 1 da 'SDL_Window **' a 'SDL_Window *'
ho provato anche
k = grafica(*screen,*screenren,larghezza,lunghezza,moda);
ma mi restituisce error C2664: 'grafica': impossibile convertire il parametro 1 da 'SDL_Window' a 'SDL_Window *'
qualche suggerimento su come risolvere il problema?
grazie anticipatamente a tutti