-#define FM_DEF_CODEPOINT_BITS (32)
-#define FM_DEF_SIZE_BITS (12)
-#define FM_DEF_SUBPIXEL_BITS (6)
-#define FM_DEF_BLURRADIUS_BITS (8)
-#define FM_DEF_BLURSCALE_BITS (6)
-
-#define FM_DEF_CODEPOINT_SHIFT (0)
-#define FM_DEF_SIZE_SHIFT (FM_DEF_CODEPOINT_BITS)
-#define FM_DEF_SUBPIXEL_SHIFT (FM_DEF_CODEPOINT_BITS+FM_DEF_SIZE_BITS)
-#define FM_DEF_BLURRADIUS_SHIFT (FM_DEF_CODEPOINT_BITS+FM_DEF_SIZE_BITS+FM_DEF_SUBPIXEL_BITS)
-#define FM_DEF_BLURSCALE_SHIFT (FM_DEF_CODEPOINT_BITS+FM_DEF_SIZE_BITS+FM_DEF_SUBPIXEL_BITS+FM_DEF_BLURRADIUS_BITS)
-
-#define FM_GLYPH_COMPUTE_DEF(codepoint,size,subpixel,blurradius,blurscale) ( (((uint64)(codepoint))<<FM_DEF_CODEPOINT_SHIFT) | (((uint64)(size))<<FM_DEF_SIZE_SHIFT) | (((uint64)(subpixel))<<FM_DEF_SUBPIXEL_SHIFT) | (((uint64)(blurradius))<<FM_DEF_BLURRADIUS_SHIFT) | (((uint64)(blurscale))<<FM_DEF_BLURSCALE_SHIFT) )
+class FMDefBits : uint64
+{
+public:
+ uint32 codePoint:32;
+ int size:11, subPixel:6, blurRadius:6, blurScale:6;
+ bool outline:1;
+}