S
aha..., die funktion habe ich auch nur übernommen
hier die funktion <jetzt hab ich auch das teminierende 0 gefunden>
void RenderString(unsigned char *string, int sx, int sy, int maxwidth, int layout, int size, int color)
{
int stringlen, ex, charwidth;
// set size
if(size == SMALL)
{
desc.font.pix_width = desc.font.pix_height = 26;
}
else if(size == NORMAL)
{
desc.font.pix_width = desc.font.pix_height = 32;
}
else
{
desc.font.pix_width = desc.font.pix_height = 40;
}
// set alignment
if(layout != LEFT)
{
stringlen = GetStringLen(string);
switch(layout)
{
case CENTER:
if(stringlen < maxwidth)
{
sx += (maxwidth - stringlen)/2;
}
break;
case RIGHT:
if(stringlen < maxwidth)
{
sx += maxwidth - stringlen;
}
}
}
// reset kerning
prev_glyphindex = 0;
// render string
ex = sx + maxwidth;
while(*string != '\0')
{
if((charwidth = RenderChar(*string, sx, sy, ex, color)) == -1)
{
return; /* string > maxwidth */
}
sx += charwidth;
string++;
}
}
und hier die unterfunktion
int GetStringLen(unsigned char *string)
{
int stringlen = 0;
// reset kerning
prev_glyphindex = 0;
// calc len
while(*string != '\0')
{
stringlen += RenderChar(*string, -1, -1, -1, -1);
string++;
}
return stringlen;
}
was haltet ihr davon?