Elikkäs, mites onnistuu SDL_TTF:sä tekstin rivitus uudelle riville? Eli jos leveys on esim suuripi kuin 50, niin kaikki ylimääränen heitetään uudelle riville? Eli teksti pitäisi saada rivittymään 1 pinnalla jonka nimi olisi vaikka SDL_Surface *teksti.
Oisko jotenki niin, että Jos tekstin leveys * merkkien määrä riviillä ylittää ikkunan leveyden, jonka olen alussa määritellyt niin tekstin y piirto on y plus tekstin korkeus + riviväli.
Jos SDL_ttf tukee tekstissä rivinvaihtomerkkejä, voit itse muokata tekstin noin.
int len = strlen(teksti); char *rivitetty = malloc(len + ((len - 1) / 50) + 1); int i, j; for (i = j = 0; i < len; ++i, ++j) { rivitetty[j] = teksti[i]; if (i % 50 == 49) { rivitetty[j] = '\n'; ++j; } } rivitetty[j] = 0; // Sitten tehdään siitä pinta, ja lopuksi: free(rivitetty);
Muussa tapauksessa voit sitten soveltaa samantapaista ajatusta, mutta aina 50 merkin jälkeen piirtää tuloksesi ja siirtyä hieman alemmaksi. Tuhat ja sata muutakin konstia toki on olemassa.
Jos tarkoitit leveyttä pikseleinä etkä merkkeinä, joudut ensin piirtämään ja sitten katkomaan ellet tiedä merkkien leveyksiä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.