GLYPH_TYPE_MAX
};
+enum glyph_category
+ {
+ GLYPH_CATEGORY_NORMAL,
+ GLYPH_CATEGORY_MODIFIER,
+ GLYPH_CATEGORY_FORMATTER
+ };
+
typedef struct
{
int pos, to;
int c;
unsigned code;
- MSymbol category;
MRealizedFace *rface;
short width, ascent, descent, lbearing, rbearing;
short xoff, yoff;
unsigned right_padding : 1;
unsigned otf_encoded : 1;
unsigned bidi_level : 6;
+ enum glyph_category category : 2;
enum glyph_type type : 3;
int combining_code;
} MGlyph;
int size, inc, used;
MGlyph *glyphs;
- MText *mt;
int from, to;
short width, height, ascent, descent;
short physical_ascent, physical_descent, lbearing, rbearing;
short text_ascent, text_descent, line_ascent, line_descent;
int indent, width_limit;
- /* Members to keep temporary data while layouting. */
- short sub_width, sub_lbearing, sub_rbearing;
-
/* Copied for <control>.anti_alias but never set if the frame's
depth is less than 8. */
unsigned anti_alias : 1;
MDrawControl control;
- MDrawRegion region;
-
struct MGlyphString *next, *top;
};
#define COMBINING_CODE_CLASS(code) ((code) & 0xFFFFFF)
+#define MAKE_PRECOMPUTED_COMBINDING_CODE() (0x2000000)
+
+#define COMBINING_PRECOMPUTED_P(code) ((code) & 0x2000000)
+
typedef struct MGlyphString MGlyphString;
typedef struct MFontDriver MFontDriver;
MSymbol (*parse_event) (MFrame *frame, void *arg, int *modifiers);
};
-extern MSymbol Mx;
+extern MSymbol Mlatin;
+
extern MSymbol Mgd;
-extern MSymbol Mfreetype;
extern int mfont__init ();
extern void mfont__fini ();