Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL_ttf

kayttaja-3842 [22.09.2008 21:18:20]

#

Terve vaan kaikille...

Elikkäs onko kellään tietoa mikä voisi olla syynä siitä kun SDL_ttf "kaatuu" eli jostain syystä minulla ohjelman jonkin aikaa päällä ollessa SDL_ttf kauttaa piiretyt tekstit häivää. Eli mikään muu grafiikka ei häviä, mutta yhtäkkiä kaikki tekstit häviää.

Itse tarkastelin koodia enkä löytänyt mitään esim. ehtoa jonka takia tekstit häviäisi. Koodillisesti tekstin häviämiseen ei ole mitään syytä eikä järkeä, tuntuu kuin TTF tuki yhtäkkiä häviäis ja sen myötä tekstit häiväisi.,

Piirto funktio

 void DRAW::drawText(char* text, SDL_Surface *textSurf, SDL_Surface *screen, float x, float y, TTF_Font *font, SDL_Color color){


  textSurf =  TTF_RenderText_Solid( font, text, color );

  SDL_Rect screen_rect;
   screen_rect.x = x;
   screen_rect.y = y;


  SDL_BlitSurface(textSurf, NULL, screen, &screen_rect);


}

Metabolix [22.09.2008 21:23:11]

#

Ainakaan et vapauta pintoja, muisti loppuu kesken. Lisää funktion loppuun SDL_FreeSurface(textSurf). Tarkista vastaavat perusvirheet muualtakin ohjelmastasi. Jos ohjelmassa on yksikin tuollainen tapaus, ei ole mikään ihme, jos kaikki alkaa takkuilla.

Myöskään ei ole mitään järkeä antaa tuota textSurfia parametrina, koska ylikirjoitat sen arvon heti. (Arvohan ei siirry funktiosta ulos noin.)

kayttaja-2499 [22.09.2008 21:23:48]

#

Voisiko johtua siitä että et ole alustanut screen_rect:a?

kayttaja-3842 [23.09.2008 11:55:20]

#

Tuon piirto pinnan lisäsin tuonne parametreihin ihan testinä vaan, kokeilin jospa se ois johtunu siitä. Eli oikeesti minulla on tuo textSurf määritelty suoraan funktioon SDL_Surface *textSurf

Vastaus

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

Tietoa sivustosta