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.
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.
Luot kaiketi 32-bittisen pinnan. Laitahan putpixelillä (ja muuallakin) alfa-arvot kuntoon, 0xff.
No nyt kun mainitset niin en laittanut. Ja kun astian korjaa, kaikki toimii sangen parhaasti. Kiitoksia metsän näyttämisestä puilta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.