mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-23 08:33:55 +08:00
debug and tune
This commit is contained in:
@@ -659,8 +659,9 @@ GlyphGravity ScriptGetGlyphGravityForWide (ScriptType script, BOOL vertical,
|
||||
*
|
||||
* Wide characters are always upright.
|
||||
*/
|
||||
if (!vertical || wide)
|
||||
if (!vertical || wide) {
|
||||
return base_gravity;
|
||||
}
|
||||
|
||||
/* If here, we have a narrow character in a vertical gravity setting.
|
||||
* Resolve depending on the hint.
|
||||
@@ -668,13 +669,16 @@ GlyphGravity ScriptGetGlyphGravityForWide (ScriptType script, BOOL vertical,
|
||||
switch (hint) {
|
||||
default:
|
||||
case GLYPH_GRAVITY_POLICY_NATURAL:
|
||||
if (props.vert_dir == VERTICAL_DIRECTION_NONE)
|
||||
if (props.vert_dir == VERTICAL_DIRECTION_NONE) {
|
||||
return GLYPH_GRAVITY_SOUTH;
|
||||
if ((base_gravity == GLYPH_GRAVITY_EAST) ^
|
||||
(props.vert_dir == VERTICAL_DIRECTION_BTT))
|
||||
}
|
||||
if (((base_gravity == GLYPH_GRAVITY_EAST) ^
|
||||
(props.vert_dir == VERTICAL_DIRECTION_BTT))
|
||||
|| props.wide)
|
||||
return GLYPH_GRAVITY_SOUTH;
|
||||
else
|
||||
else {
|
||||
return GLYPH_GRAVITY_NORTH;
|
||||
}
|
||||
|
||||
case GLYPH_GRAVITY_POLICY_STRONG:
|
||||
return base_gravity;
|
||||
|
||||
@@ -139,6 +139,8 @@ static GlyphOrient resolve_glyph_orient(const LAYOUT* layout,
|
||||
trun->flags & TEXTRUN_FLAG_UPRIGHT,
|
||||
layout->grv_base, layout->grv_plc);
|
||||
|
||||
assert(gravity != GLYPH_GRAVITY_NORTH);
|
||||
|
||||
return (GlyphOrient)gravity;
|
||||
}
|
||||
|
||||
@@ -162,6 +164,7 @@ static void resolve_layout_run_dir(const LAYOUT* layout,
|
||||
break;
|
||||
case GLYPH_GRAVITY_NORTH:
|
||||
lrun->el++;
|
||||
assert(0);
|
||||
break;
|
||||
case GLYPH_GRAVITY_EAST:
|
||||
lrun->el += 1;
|
||||
|
||||
+1
-1
@@ -598,7 +598,7 @@ static GlyphString* shape_run(LAYOUTLINE *line, LayoutState *state,
|
||||
shape_space(layout, lrun, glyphs);
|
||||
}
|
||||
else {
|
||||
if (state->shape_set)
|
||||
if (MG_UNLIKELY(state->shape_set))
|
||||
shape_shape(layout->truns->ucs + lrun->si, lrun->len,
|
||||
&state->shape_ink_rect,
|
||||
&state->shape_logical_rect, glyphs);
|
||||
|
||||
@@ -210,6 +210,7 @@ static BOOL shape_layout_run(SEInstance* inst,
|
||||
}
|
||||
|
||||
hb_buffer_set_direction(hb_buf, run->dir + HB_DIRECTION_LTR);
|
||||
|
||||
hb_buffer_set_script(hb_buf, ScriptTypeToISO15924(run->st));
|
||||
hb_buffer_set_language(hb_buf,
|
||||
hb_language_from_string(LanguageCodeToISO639s1(run->lc), -1));
|
||||
|
||||
Reference in New Issue
Block a user