struct Font {

	typedef struct GlyphInfo {
		long mTexturePage;
		long mChannel;
		TRect<float> mGlyph;
		float mWidth;
		float mHeight;
		float mXOffset;
		float mYOffset;
		float mXAdvance;
		//OLDER GAMES
		float mGradientSize;
		//-------
	} GlyphInfo;

	String mName;
	bool mbUnicode;
	float mHeight;
	float mBase;

	//OLDER GAMES --- (before WD4, exclusive)
	float mWiiScale;
	float mFontScale;
	//-----

	Map<unsigned int, GlyphInfo> mGlyphInfo;
	DCArray<T3Texture> mTexturePages;
	bool mIsDistanceField;

	//-- NEWER DATA BELOW (>=WD4)
	bool mIsRuntime;
	bool mIsFiltered;
	BinaryBuffer mTtfData;
	float mBasePointSize;
	DCArray<unsigned int> mPreferredPointSizes;

	static METAOP_FUNC_IMPL__(SerializeAsync) {
		return Meta::MetaOperation_SerializeAsync(pObj, pObjDescription, pContextDescription, pUserData);
	}

};

#endif