Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Uuteen pintaan blittaus (SDL)

Puhveli [01.11.2007 22:58:39]

#

Haluan ladata SDL_LoadBMP:llä bittikartan, luoda uuden pinnan ja siirtää tälle pinnalle pienen osan bittikartasta, jotta voisin blittailla kuvia nopeasti. Miten tämä tehdään? En tarkoita pelkästään uuden pinnan luomista SDL_CreateRGBSurfacella vaan myös kuvan saamista tälle pinnalle ja siltä ulos.

Kysymys oli yllä, alla hieman triviaa:

Olen SDL_BlitSurfacella sekä putpixel-funktiollani onnistuneesti piirrellyt jännyyksiä näytölle, eli SDL_SetVideoMode luodulle pinnalle.

int SDL_BlitSurface  (SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);

Kun yritän samaa SDL_CreateRGBSurfacella luodulle pinnalle, pinta ilmeisesti jää mustaksi jos dst != NULL. Ainakaan siitä 'näytölle' blitattaessa (oli dst mikä hyvänsä) ei jää jälkeä (ei edes mustaa).

Vaikka kyse on ymmärtääkseni aloittelijatason ongelmasta, toivoisin silti kohteliasta ja tyhjentävää vasausta, ja sellaisesta lausunkin nyt jo etukäteen mitä lämpimimmät kiitokseni. Nk. googlaamista olen jo yrittänyt.

Puhveli [02.11.2007 00:04:58]

#

Lisäksi putpixel-funktio ei edes palautettuna SDL-oppaan opettamaan versioon tuota pisteitä tälle pinnalle, vaan ennemminkin 'syö' siihen (vasempaan ylänurkkaan) blitatun kuvan läpinäkyväksi. Harmi, sillä putpixelin käyttö olisi välttämätönä. Yritän nimittäin prerenderöidä osan tileset-bittikartan kuvista omiin surfaceihinsa.

Metabolix [02.11.2007 00:39:39]

#

Luot kaiketi 32-bittisen pinnan. Laitahan putpixelillä (ja muuallakin) alfa-arvot kuntoon, 0xff.

Puhveli [02.11.2007 10:55:29]

#

No nyt kun mainitset niin en laittanut. Ja kun astian korjaa, kaikki toimii sangen parhaasti. Kiitoksia metsän näyttämisestä puilta.

Vastaus

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

Tietoa sivustosta