/* See comment in print_texture_string for bit layout explanation.
*/
- int lbearing = (f->per_char
+ int lbearing = (f->per_char && ii >= f->min_char_or_byte2
? f->per_char[ii - f->min_char_or_byte2].lbearing
: f->min_bounds.lbearing);
- int ascent = (f->per_char
+ int ascent = (f->per_char && ii >= f->min_char_or_byte2
? f->per_char[ii - f->min_char_or_byte2].ascent
: f->max_bounds.ascent);
- int width = (f->per_char
+ int width = (f->per_char && ii >= f->min_char_or_byte2
? f->per_char[ii - f->min_char_or_byte2].width
: f->max_bounds.width);
while (*c)
{
int cc = *((unsigned char *) c);
- w += (f->per_char
+ w += (f->per_char && cc >= f->min_char_or_byte2
? f->per_char[cc-f->min_char_or_byte2].width
: f->max_bounds.width);
c++;
We want to make a quad from point A to point C.
We want to position that quad so that point B lies at x,y.
*/
- int lbearing = (f->per_char
+ int lbearing = (f->per_char && c >= f->min_char_or_byte2
? f->per_char[c - f->min_char_or_byte2].lbearing
: f->min_bounds.lbearing);
- int rbearing = (f->per_char
+ int rbearing = (f->per_char && c >= f->min_char_or_byte2
? f->per_char[c - f->min_char_or_byte2].rbearing
: f->max_bounds.rbearing);
- int ascent = (f->per_char
+ int ascent = (f->per_char && c >= f->min_char_or_byte2
? f->per_char[c - f->min_char_or_byte2].ascent
: f->max_bounds.ascent);
- int descent = (f->per_char
+ int descent = (f->per_char && c >= f->min_char_or_byte2
? f->per_char[c - f->min_char_or_byte2].descent
: f->max_bounds.descent);
- int cwidth = (f->per_char
+ int cwidth = (f->per_char && c >= f->min_char_or_byte2
? f->per_char[c - f->min_char_or_byte2].width
: f->max_bounds.width);