/// <summary> /// Returns the vertical metrics based on the current text style.<br/> /// Measured values are returned in local coordinate space. /// </summary> public static void TextMetrics(this Nvg nvg, out float ascender, out float descender, out float lineh) { Fontstash fons = nvg.fontManager.Fontstash; State state = nvg.stateStack.CurrentState; float scale = nvg.fontManager.GetFontScale() * nvg.pixelRatio.DevicePxRatio; float invscale = 1.0f / scale; if (state.FontId == Fontstash.INVALID) { ascender = descender = lineh = -1.0f; return; } fons.SetSize(state.FontSize * scale); fons.SetSpacing(state.LetterSpacing * scale); fons.SetBlur(state.FontBlur * scale); fons.SetAlign((int)state.TextAlign); fons.SetFont(state.FontId); fons.VertMetrics(out ascender, out descender, out lineh); ascender *= invscale; descender *= invscale; lineh *= invscale; }