Upgraded to code2000 font

This commit is contained in:
Willem Cazander 2022-02-11 02:46:44 +01:00
parent bb76cbbe2f
commit 76014cfe87
11 changed files with 81 additions and 106 deletions

Binary file not shown.

View file

@ -36,24 +36,19 @@ public class ImGuiSetup {
}
private static void initFonts(final ImGuiIO io) {
io.getFonts().addFontDefault();
ImFontConfig fontConfig = new ImFontConfig();
fontConfig.setMergeMode(true);
ImFontGlyphRangesBuilder fontBuilder = new ImFontGlyphRangesBuilder();
addRangeUnicodePlane0(fontBuilder);
final short[] glyphRanges = fontBuilder.buildRanges();
io.getFonts().addFontFromMemoryTTF(Gdx.files.internal("font/noto-sans-cjkjp-medium.otf").readBytes(), 14, fontConfig, glyphRanges);
io.getFonts().addFontFromMemoryTTF(Gdx.files.internal("font/free-sans.ttf").readBytes(), 14, fontConfig, glyphRanges);
io.getFonts().addFontFromMemoryTTF(Gdx.files.internal("font/roboto-bold.ttf").readBytes(), 14, fontConfig, glyphRanges);
io.getFonts().addFontFromMemoryTTF(Gdx.files.internal("font/arslan-wessam.ttf").readBytes(), 14, fontConfig, glyphRanges);
io.getFonts().addFontFromMemoryTTF(Gdx.files.internal("font/norse-kawl.otf").readBytes(), 14, fontConfig, glyphRanges);
io.getFonts().addFontFromMemoryTTF(Gdx.files.internal("font/code2000.ttf").readBytes(), 24, fontConfig, glyphRanges);
fontConfig.setMergeMode(true);
// note: just for 3 sub chars for SUBHEX, but still missing 2 chars from T12 alt1 clock
io.getFonts().addFontFromMemoryTTF(Gdx.files.internal("font/free-sans.ttf").readBytes(), 24, fontConfig, glyphRanges);
fontConfig.destroy();
}
private static void addRangeUnicodePlane0(ImFontGlyphRangesBuilder fontBuilder) {
for (int c=0x0100;c<=0xFFEF;c++) {
for (int c=0x0001;c<=0xFFEF;c++) {
StringBuilder buf = new StringBuilder();
buf.append(""+(char)c);
fontBuilder.addText(buf.toString());

View file

@ -1,23 +1,16 @@
package love.distributedrebirth.gdxapp.screen;
import java.util.ArrayList;
import java.util.List;
import imgui.ImGui;
import imgui.flag.ImGuiCond;
import imgui.flag.ImGuiTableFlags;
import imgui.type.ImBoolean;
import imgui.type.ImInt;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp.GDXAppMain;
import love.distributedrebirth.gdxapp.ImGuiRendererMain;
import love.distributedrebirth.numberxd.glyph.BaseGlyphSet;
import love.distributedrebirth.numberxd.glyph.BaseGlyphSetNumber;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class SystemBaseGlyphRenderer extends ImGuiRendererMain {
private ImInt selectedGlyphPart = new ImInt();
public SystemBaseGlyphRenderer(GDXAppMain main) {
super(main);
@ -27,83 +20,45 @@ public class SystemBaseGlyphRenderer extends ImGuiRendererMain {
public void render(ImBoolean widgetOpen) {
ImGui.setNextWindowPos(200, 200, ImGuiCond.FirstUseEver);
ImGui.setNextWindowSize(640, 480, ImGuiCond.FirstUseEver);
if (ImGui.begin("Base glyph", widgetOpen)) {
List<BaseGlyphSet> bases = new ArrayList<>();
for (BaseGlyphSet glyphSet:BaseGlyphSet.values()) {
bases.add(glyphSet);
}
String[] items = new String[bases.size()];
for (int i=0;i<items.length;i++) {
items[i] = bases.get(i).BȍőnNaam();
}
String selectedItem = items[selectedGlyphPart.get()];
BaseGlyphSet glyphSet = BaseGlyphSet.valueOf(selectedItem);
ImGui.text("Glyph:");
ImGui.sameLine();
ImGui.combo("Set", selectedGlyphPart, items);
if (ImGui.begin("Base Glyph Set", widgetOpen)) {
int flags = ImGuiTableFlags.ScrollX | ImGuiTableFlags.RowBg | ImGuiTableFlags.BordersOuter | ImGuiTableFlags.BordersV;
ImGui.beginTable("base-part", 7, flags);
ImGui.tableSetupColumn("Example");
ImGui.tableSetupColumn("tel10");
ImGui.tableSetupColumn("hon10");
ImGui.tableSetupColumn("tel16");
ImGui.tableSetupColumn("hon16");
ImGui.tableSetupColumn("tel36");
ImGui.tableSetupColumn("hon36");
ImGui.beginTable("base-part", 3, flags);
ImGui.tableSetupColumn("Language");
ImGui.tableSetupColumn("10Numbers");
ImGui.tableSetupColumn("16Numbers");
ImGui.tableHeadersRow();
int[] numberSet = {0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,
24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42};
for (int number:numberSet) {
int number100 = number * 1;
BaseGlyphSetNumber number10 = glyphSet.BȍőnGlyphSetNumber10();
BaseGlyphSetNumber number16 = glyphSet.BȍőnGlyphSetNumber16();
BaseGlyphSetNumber number36 = glyphSet.BȍőnGlyphSetNumber36();
for (BaseGlyphSet set:BaseGlyphSet.values()) {
ImGui.tableNextRow();
ImGui.tableNextColumn();
ImGui.text(Integer.toString(number));
if (number10 != null) {
ImGui.tableNextColumn();
ImGui.text(glyphSet.BȍőnPrintGlyphSetNumber10(number, 50));
ImGui.tableNextColumn();
ImGui.text(glyphSet.BȍőnPrintGlyphSetNumber10(number100, 500));
} else {
ImGui.tableNextColumn();
ImGui.text("");
ImGui.tableNextColumn();
ImGui.text("");
}
if (number16 != null) {
ImGui.tableNextColumn();
ImGui.text(glyphSet.BȍőnPrintGlyphSetNumber16(number, 50));
ImGui.tableNextColumn();
ImGui.text(glyphSet.BȍőnPrintGlyphSetNumber16(number100, 500));
} else {
ImGui.tableNextColumn();
ImGui.text("");
ImGui.tableNextColumn();
ImGui.text("");
}
if (number36 != null) {
ImGui.tableNextColumn();
ImGui.text(glyphSet.BȍőnPrintGlyphSetNumber36(number, 50));
ImGui.tableNextColumn();
ImGui.text(glyphSet.BȍőnPrintGlyphSetNumber36(number100, 500));
} else {
ImGui.tableNextColumn();
ImGui.text("");
ImGui.tableNextColumn();
ImGui.text("");
}
ImGui.text(set.BȍőnNaam());
ImGui.tableNextColumn();
ImGui.text(print10Numbers(set));
ImGui.tableNextColumn();
ImGui.text(print16Numbers(set));
}
ImGui.endTable();
}
ImGui.end();
}
private String print10Numbers(BaseGlyphSet set) {
StringBuilder buf = new StringBuilder();
for (int i=0;i<10;i++) {
buf.append(set.BȍőnGlyphSetNumber10().BȍőnCharFor(i));
buf.append(set.BȍőnGlyphSetNumber10().BȍőnCharSeperator());
}
return buf.toString();
}
private String print16Numbers(BaseGlyphSet set) {
StringBuilder buf = new StringBuilder();
for (int i=0;i<16;i++) {
buf.append(set.BȍőnPrintGlyphSetNumber16(i, 99));
buf.append(" ");
}
return buf.toString();
}
}