package speiger.src.coreengine.rendering.gui.renderer; import speiger.src.coreengine.rendering.gui.components.TextComponent; import speiger.src.coreengine.rendering.textures.base.ITexture; public interface IFontRenderer { public static final int BOLD = 1; public static final int SPECIAL = 2; public float height(); public float baseLine(); public ITexture getTexture(); public CharInstance getInstance(int codepoint, boolean bold); public void updateText(TextComponent component); public default String trimToWidth(String text, float limit){return trimToWidth(text, limit, false);} public String trimToWidth(String text, float limit, boolean reverse); public default float width(int codepoint){return width(codepoint, false);}; public float width(int codepoint, boolean bold); public default float width(String text){return width(text, 0);}; public float width(String text, int flags); public float[] widths(String text, int flags); public default float height(String text){return height(text, 0);}; public float height(String text, int flags); public String[] split(String text, float maxWidth, int flags); public boolean isCharValid(int codepoint); public default String clearInvalidLetters(String text) { if(text == null || text.isEmpty()) { return ""; } StringBuilder builder = new StringBuilder(text.length()); for(int i = 0,m=text.length();i