Mikä seuraavassa koodissa mättää:
#include <SDL/SDL.h>
int main(int argc, char *argv[]) {
if( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "SDL:n alustus ei onnistunut: %s\n", SDL_GetError());
return 0;
}
SDL_Surface *naytto;
naytto = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF);
SDL_Surface *kuva;
kuva = SDL_LoadBMP("testi.bmp");
void PiirraKuva(SDL_Surface *kuva, SDL_Surface *naytto, int x, int y) {
SDL_Rect alue;
alue.x = x;
alue.y = y;
SDL_BlitSurface(kuva, NULL, naytto, $alue);
}
PiirraKuva(kuva, naytto, 50, 50);
SDL_Delay(5000);
SDL_FreeSurface(kuva);
SDL_Quit();
return 0;
}Tuon tarkoituksena olisi piirtää kuva näytölle.
Tulostaa hemmetisti erroreja vain.
Siinä mättää se, että funktio PiirraKuva on määritelty väärässä paikkaa. Eli kun siirrät sen ennen main-funktiota, niin pitäisi pelittää. Suosittelisin C++:n perusteisiin perehtymään ehkä vähän enemmänkin ennen kun rupeat SDL:n parissa touhuilemaan.
Ei toimi
SDL_Flip() näyttää myös puuttuvan, kun kerran SDL_DOUBLEBUF-lippu on asetettu.
Mihin kohtaan se Flip-funktio tulee
EDIT: ookkei. sain toimimaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.