Eli jos mulla on piirrettynä joku kuva harmaasävyinä ja lataan sen SDL:ässä surfaceen niin miten saisin siitä helposti muita surfaceja jotka ovat identtisiä muuten mutta väri on muuttunut haluamakseni? Eikös tämä liity siihen gammahommaan?
Esimerkki olis kiva....:)
Tolla koodilla on vissiin käytävä moneen kertaan surface läpi väri kerrallaan?
Eikös joku gammacorrection koko surfacelle ajaisi saman asian?
Googletan mutta vielä en ole vastausta löytänyt.
Lisäinfoa,kiitos!:)
Ahaa,gammacorrection vaikuttaa koko ruutuun.
Pitää nyt laittaa testiin tuo putkassa ollut funktio....
En saa toimimaan tota PaintImage funktiota.
Sen verran olen kärryillä että homma kaatuu siihen että kuvani ei ole 32-bittinen.
Koetin increase color depthiä piirto-ohjelmassa mutta sielläkin maksimiarvo 24-bittinen.
Näytön asetukset sen sijaan ovat 32-bittiset.
Mitä pitäisi tehdä jotta saan kuvastani 32-bittisen?
Ratkaisin ongelman selailtuani nettiä.
optimizedImage = SDL_DisplayFormat( loadedImage );
SDL_FreeSurface( loadedImage );
Eli ladattu kuva olipa se missä formaatissa vain pitää muuttaa SDL_DisplayFormat käskyllä optimoiduksi 32-bittiseksi kuvaksi jotta PaintImage toimii.
SDL_DisplayFormat tietenkin edellyttää, että näyttöpintasi on 32-bittinen. Muita vaihtoehtoja olisivat SDL_CreateRGBSurface yhdistettynä pinnan kopiointiin tai SDL_ConvertSurface.
SDL itsessään ei sisällä mitään valmista värinmuuttotapaa, se on tasoltaan ja toiminnoiltaan erittäin rajoittunut kirjasto.
Joo mutta mukavalta tuntuu kun oppii koko ajan lisää...
Noihin mainitsemiisi pitää tutustua.
Monta dos-sätöstä odottaa kääntöä SDL-maailmaan.
BlitzBasicista opin tavallaan teorian miten windowskoodia tehdään mutta kyllä C syntaksi on C syntaksi.....:)
Aihe on jo aika vanha, joten et voi enää vastata siihen.