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); }
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.)
Voisiko johtua siitä että et ole alustanut screen_rect:a?
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.