Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL Surface palautus

kayttaja-3842 [22.03.2008 16:52:51]

#

Morjensta vaan kaikille.

Eli ongelmana olisi sellanen että menetän surface datan kun palautan sen.

Eli:

   SDL_Surface *libG_Draw::RotateImg(SDL_Surface *img){


    Uint32 rmask, gmask, bmask, amask;

    #if SDL_BYTEORDER == SDL_BIG_ENDIAN
	   rmask = 0xff000000;
	   gmask = 0x00ff0000;
	   bmask = 0x0000ff00;
	   amask = 0x000000ff;
       #else
	   rmask = 0x000000ff;
	   gmask = 0x0000ff00;
	   bmask = 0x00ff0000;
	   amask = 0xff000000;
       #endif

   	  SDL_Surface *newImg = SDL_CreateRGBSurface(SDL_SWSURFACE, img->w, img->h, 32,
					  rmask, gmask,	bmask, amask);


	  SDL_FillRect(newImg, 0, 0xffffff);


	  // putPixel(newImg, 0, 0, getPixel(img, 0, 0));

    return newImg;
   }

... nytten kun piirrän palautetun datan, niin ruutuun ei tule mitään???

Mikä avuksi?

Metabolix [22.03.2008 17:49:42]

#

Data on aivan kunnossa, se vain on väärää. Huomannet, että olet asettanut pintaasi myös alfakanavan eli läpinäkyvyyden, jonka arvo tuon täyttösi jälkeen little endian -koneilla (esim. x86) jää nollaksi, eli koko pinta on läpinäkyvä. Lisää väriarvoon vielä kaksi f-kirjainta.

Muista sitten myös vapauttaa luomasi pinta. :)

kayttaja-3842 [22.03.2008 18:15:48]

#

Niinpä näkyy. Nytten toimii , kiitos paljon. :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta