Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto in SDL... Come si usa SDL_SetGamma  per regolare la luminosità???
Forum - C/C++ - Aiuto in SDL... Come si usa SDL_SetGamma per regolare la luminosità???

Avatar
xsubzerox (Normal User)
Newbie


Messaggi: 5
Iscritto: 30/04/2010

Segnala al moderatore
Postato alle 13:49
Venerdì, 30/04/2010
Questa funzione accetta 3 parametri di tipo float... che corrispondono al rosso, verde, blu... ritorna un intero, -1 se è presente un errore, o 0 se è andata a buon fine.
Ho provato ad usarla in un mio progetto, ma non funziona.
Qualcuno mi può dire qualcosa di più riguardo questa funzione??
grazie in anticipo...

PM Quote
Avatar
napco (Normal User)
Pro


Messaggi: 64
Iscritto: 16/04/2010

Segnala al moderatore
Postato alle 14:11
Venerdì, 30/04/2010
Ciao! SDL_SetGamma() accetta parametri che variano tra 0.0 e 1.0, dove 1.0 è la luminosità massima del relativo colore. SDL_SetGamma non funziona con tutti i tipi di scheda video, quindi il tuo problema potrebbe proprio essere quello. Comunque, se ti può interessare: http://sdl.beuc.net/sdl.wiki/SDL_SetGamma

EDIT: Mi sono scordato di dirti che se non è supportato il gamma adjustment la funzione restituisce -1, quindi non dovresti avere problemi a verificare!

Ultima modifica effettuata da napco il 30/04/2010 alle 14:13
PM Quote
Avatar
xsubzerox (Normal User)
Newbie


Messaggi: 5
Iscritto: 30/04/2010

Segnala al moderatore
Postato alle 15:03
Venerdì, 30/04/2010
boh... forse è la scheda video,perche mi dà l'errore.... e vabbe..
grazie lo stesso ;)

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 18:07
Venerdì, 30/04/2010
Testo quotato

Postato originariamente da xsubzerox:

boh... forse è la scheda video,perche mi dà l'errore.... e vabbe..
grazie lo stesso ;)



o è un vero pezzo di antiquariato, oppure c'è qualche problema in qualche altro punto del codice :)

PM Quote
Avatar
napco (Normal User)
Pro


Messaggi: 64
Iscritto: 16/04/2010

Segnala al moderatore
Postato alle 15:15
Sabato, 01/05/2010
Aggiungo una cosa a proposito di SDL_SetGamma... La variazione della tonalità viene applicata anche al desktop e alle altre finestre pure su Windows XP (appena provato). Ti consiglierei quindi di trovare qualche tipo di rimpiazzo perchè sinceramente l'effetto risultante non è il massimo, a meno che tu non voglia utilizzare lo schermo intero.

PM Quote
Avatar
xsubzerox (Normal User)
Newbie


Messaggi: 5
Iscritto: 30/04/2010

Segnala al moderatore
Postato alle 15:33
Sabato, 01/05/2010
a ok... avevo letto qualcosa in proposito... cercherò di trovare qualche altro metodo... xD
intanto ti andrebbe di postare il codice che hai scritto tu per provarlo, cosi vedo se ho fatto qualche errore...?
grazie mille :)

PM Quote
Avatar
napco (Normal User)
Pro


Messaggi: 64
Iscritto: 16/04/2010

Segnala al moderatore
Postato alle 16:49
Sabato, 01/05/2010
Beh, semplicemente:

Codice sorgente - presumibilmente C++

  1. #include <SDL.h>
  2.  
  3. int main(int argc, char *argv[])
  4. {
  5.     SDL_Init(SDL_INIT_EVERYTHING);
  6.     SDL_Surface *display = SDL_SetVideoMode(320, 240, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
  7.  
  8.     SDL_SetGamma(1.0, 0.5, 0.5); // Eccola qui
  9.  
  10.     bool quit = false;
  11.  
  12.     do
  13.     {
  14.         SDL_FillRect(display, &display.clip_rect, 0); // Cancella schermo
  15.         SDL_Flip(display); // Mostra display
  16.  
  17.         SDL_Event e;
  18.         if(SDL_PollEvent(&e) && e.type == SDL_QUIT) quit = true;
  19.     }
  20.     while(!quit);
  21.  
  22.     SDL_Quit();
  23.  
  24.     return 0;
  25. }



Tra SDL_FillRect e SDL_Flip puoi inserire qualsiasi operazione di disegno, per vedere come i colori vengono modificati!

Ultima modifica effettuata da napco il 01/05/2010 alle 16:51
PM Quote
Avatar
xsubzerox (Normal User)
Newbie


Messaggi: 5
Iscritto: 30/04/2010

Segnala al moderatore
Postato alle 17:35
Sabato, 01/05/2010
grazie mille... :)
sono riuscito a farlo andare...
grazie ancora... :k:

PM Quote