mirror of
https://github.com/nothings/stb
synced 2024-12-15 12:22:55 +03:00
Merge pull request #395 from dougallj/patch-1
stb_truetype: Fix a couple of CFF bugs
This commit is contained in:
commit
f5c9aaacd2
@ -460,7 +460,7 @@ extern "C" {
|
||||
// private structure
|
||||
typedef struct
|
||||
{
|
||||
stbtt_uint8 *data;
|
||||
unsigned char *data;
|
||||
int cursor;
|
||||
int size;
|
||||
} stbtt__buf;
|
||||
@ -1752,7 +1752,7 @@ static void stbtt__track_vertex(stbtt__csctx *c, stbtt_int32 x, stbtt_int32 y)
|
||||
c->started = 1;
|
||||
}
|
||||
|
||||
static void stbtt__cstx_v(stbtt__csctx *c, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy, stbtt_int32 cx1, stbtt_int32 cy1)
|
||||
static void stbtt__csctx_v(stbtt__csctx *c, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy, stbtt_int32 cx1, stbtt_int32 cy1)
|
||||
{
|
||||
if (c->bounds) {
|
||||
stbtt__track_vertex(c, x, y);
|
||||
@ -1771,7 +1771,7 @@ static void stbtt__cstx_v(stbtt__csctx *c, stbtt_uint8 type, stbtt_int32 x, stbt
|
||||
static void stbtt__csctx_close_shape(stbtt__csctx *ctx)
|
||||
{
|
||||
if (ctx->first_x != ctx->x || ctx->first_y != ctx->y)
|
||||
stbtt__cstx_v(ctx, STBTT_vline, (int)ctx->first_x, (int)ctx->first_y, 0, 0, 0, 0);
|
||||
stbtt__csctx_v(ctx, STBTT_vline, (int)ctx->first_x, (int)ctx->first_y, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static void stbtt__csctx_rmove_to(stbtt__csctx *ctx, float dx, float dy)
|
||||
@ -1779,14 +1779,14 @@ static void stbtt__csctx_rmove_to(stbtt__csctx *ctx, float dx, float dy)
|
||||
stbtt__csctx_close_shape(ctx);
|
||||
ctx->first_x = ctx->x = ctx->x + dx;
|
||||
ctx->first_y = ctx->y = ctx->y + dy;
|
||||
stbtt__cstx_v(ctx, STBTT_vmove, (int)ctx->x, (int)ctx->y, 0, 0, 0, 0);
|
||||
stbtt__csctx_v(ctx, STBTT_vmove, (int)ctx->x, (int)ctx->y, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static void stbtt__csctx_rline_to(stbtt__csctx *ctx, float dx, float dy)
|
||||
{
|
||||
ctx->x += dx;
|
||||
ctx->y += dy;
|
||||
stbtt__cstx_v(ctx, STBTT_vline, (int)ctx->x, (int)ctx->y, 0, 0, 0, 0);
|
||||
stbtt__csctx_v(ctx, STBTT_vline, (int)ctx->x, (int)ctx->y, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static void stbtt__csctx_rccurve_to(stbtt__csctx *ctx, float dx1, float dy1, float dx2, float dy2, float dx3, float dy3)
|
||||
@ -1797,7 +1797,7 @@ static void stbtt__csctx_rccurve_to(stbtt__csctx *ctx, float dx1, float dy1, flo
|
||||
float cy2 = cy1 + dy2;
|
||||
ctx->x = cx2 + dx3;
|
||||
ctx->y = cy2 + dy3;
|
||||
stbtt__cstx_v(ctx, STBTT_vcubic, (int)ctx->x, (int)ctx->y, (int)cx1, (int)cy1, (int)cx2, (int)cy2);
|
||||
stbtt__csctx_v(ctx, STBTT_vcubic, (int)ctx->x, (int)ctx->y, (int)cx1, (int)cy1, (int)cx2, (int)cy2);
|
||||
}
|
||||
|
||||
static stbtt__buf stbtt__get_subr(stbtt__buf idx, int n)
|
||||
|
Loading…
Reference in New Issue
Block a user