[glyf] Minor adjustment to lastflag handling
No logic change.
This commit is contained in:
parent
0ca9fda889
commit
03e6bde790
|
@ -235,7 +235,7 @@ struct SimpleGlyph
|
||||||
|
|
||||||
static void encode_flag (uint8_t &flag,
|
static void encode_flag (uint8_t &flag,
|
||||||
uint8_t &repeat,
|
uint8_t &repeat,
|
||||||
uint8_t &lastflag,
|
uint8_t lastflag,
|
||||||
hb_vector_t<uint8_t> &flags /* OUT */)
|
hb_vector_t<uint8_t> &flags /* OUT */)
|
||||||
{
|
{
|
||||||
if (flag == lastflag && repeat != 255)
|
if (flag == lastflag && repeat != 255)
|
||||||
|
@ -257,7 +257,6 @@ struct SimpleGlyph
|
||||||
repeat = 0;
|
repeat = 0;
|
||||||
flags.push (flag);
|
flags.push (flag);
|
||||||
}
|
}
|
||||||
lastflag = flag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool compile_bytes_with_deltas (const contour_point_vector_t &all_points,
|
bool compile_bytes_with_deltas (const contour_point_vector_t &all_points,
|
||||||
|
@ -276,7 +275,7 @@ struct SimpleGlyph
|
||||||
if (unlikely (!x_coords.alloc (2*num_points))) return false;
|
if (unlikely (!x_coords.alloc (2*num_points))) return false;
|
||||||
if (unlikely (!y_coords.alloc (2*num_points))) return false;
|
if (unlikely (!y_coords.alloc (2*num_points))) return false;
|
||||||
|
|
||||||
uint8_t lastflag = 0, repeat = 0;
|
uint8_t lastflag = 255, repeat = 0;
|
||||||
int prev_x = 0.f, prev_y = 0.f;
|
int prev_x = 0.f, prev_y = 0.f;
|
||||||
|
|
||||||
for (unsigned i = 0; i < num_points; i++)
|
for (unsigned i = 0; i < num_points; i++)
|
||||||
|
@ -288,11 +287,11 @@ struct SimpleGlyph
|
||||||
float cur_y = roundf (all_points[i].y);
|
float cur_y = roundf (all_points[i].y);
|
||||||
encode_coord (cur_x - prev_x, flag, FLAG_X_SHORT, FLAG_X_SAME, x_coords);
|
encode_coord (cur_x - prev_x, flag, FLAG_X_SHORT, FLAG_X_SAME, x_coords);
|
||||||
encode_coord (cur_y - prev_y, flag, FLAG_Y_SHORT, FLAG_Y_SAME, y_coords);
|
encode_coord (cur_y - prev_y, flag, FLAG_Y_SHORT, FLAG_Y_SAME, y_coords);
|
||||||
if (i == 0) lastflag = flag + 1; //make lastflag != flag for the first point
|
|
||||||
encode_flag (flag, repeat, lastflag, flags);
|
encode_flag (flag, repeat, lastflag, flags);
|
||||||
|
|
||||||
prev_x = cur_x;
|
prev_x = cur_x;
|
||||||
prev_y = cur_y;
|
prev_y = cur_y;
|
||||||
|
lastflag = flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned len_before_instrs = 2 * header.numberOfContours + 2;
|
unsigned len_before_instrs = 2 * header.numberOfContours + 2;
|
||||||
|
|
Loading…
Reference in New Issue