diff --git a/gdxapp4d-app-calculator/pom.xml b/gdxapp4d-app-calculator/pom.xml
index c13f54bf..b4ab03db 100644
--- a/gdxapp4d-app-calculator/pom.xml
+++ b/gdxapp4d-app-calculator/pom.xml
@@ -28,88 +28,7 @@
<_donotcopy>(.git)
<_dsannotations>*
<_metatypeannotations>*
-
- org.osgi.framework,
- org.osgi.service.packageadmin,
- org.osgi.service.url,
- org.osgi.service.startlevel,
- org.osgi.util.tracker,
- love.distributedrebirth.gdxapp4d.tos4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
- com.badlogic.gdx,
- com.badlogic.gdx.assets,
- com.badlogic.gdx.assets.loaders,
- com.badlogic.gdx.assets.loaders.resolvers,
- com.badlogic.gdx.audio,
- com.badlogic.gdx.files,
- com.badlogic.gdx.graphics,
- com.badlogic.gdx.graphics.g2d,
- com.badlogic.gdx.graphics.g2d.freetype,
- com.badlogic.gdx.graphics.g3d,
- com.badlogic.gdx.graphics.g3d.attributes,
- com.badlogic.gdx.graphics.g3d.decals,
- com.badlogic.gdx.graphics.g3d.environment,
- com.badlogic.gdx.graphics.g3d.loader,
- com.badlogic.gdx.graphics.g3d.model,
- com.badlogic.gdx.graphics.g3d.model.data,
- com.badlogic.gdx.graphics.g3d.particles,
- com.badlogic.gdx.graphics.g3d.particles.bactches,
- com.badlogic.gdx.graphics.g3d.particles.emitters,
- com.badlogic.gdx.graphics.g3d.particles.influencers,
- com.badlogic.gdx.graphics.g3d.particles.renderers,
- com.badlogic.gdx.graphics.g3d.particles.values,
- com.badlogic.gdx.graphics.g3d.shaders,
- com.badlogic.gdx.graphics.g3d.utils,
- com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
- com.badlogic.gdx.graphics.glutils,
- com.badlogic.gdx.graphics.profiling,
- com.badlogic.gdx.input,
- com.badlogic.gdx.maps,
- com.badlogic.gdx.maps.objects,
- com.badlogic.gdx.maps.tiled,
- com.badlogic.gdx.maps.tiled.objects,
- com.badlogic.gdx.maps.tiled.renderers,
- com.badlogic.gdx.maps.tiled.tiles,
- com.badlogic.gdx.math,
- com.badlogic.gdx.math.collision,
- com.badlogic.gdx.net,
- com.badlogic.gdx.scenes.scene2d,
- com.badlogic.gdx.scenes.scene2d.actions,
- com.badlogic.gdx.scenes.scene2d.ui,
- com.badlogic.gdx.scenes.scene2d.utils,
- com.badlogic.gdx.utils,
- com.badlogic.gdx.utils.async,
- com.badlogic.gdx.utils.compression,
- com.badlogic.gdx.utils.compression.lz,
- com.badlogic.gdx.utils.compression.lzma,
- com.badlogic.gdx.utils.compression.rangecoder,
- com.badlogic.gdx.utils.reflect,
- com.badlogic.gdx.utils.viewport,
- imgui,
- imgui.flag,
- imgui.glfw,
- imgui.gl3,
- imgui.type,
- net.spookygames.gdx.nativefilechooser,
- love.distributedrebirth.bassboonyd,
- love.distributedrebirth.bassboonyd.jmx,
- love.distributedrebirth.numberxd,
- love.distributedrebirth.numberxd.base2t,
- love.distributedrebirth.numberxd.base2t.part,
- love.distributedrebirth.numberxd.base2t.part.warp,
- love.distributedrebirth.numberxd.base2t.type,
- love.distributedrebirth.numberxd.base2t.typexl,
- love.distributedrebirth.numberxd.glyph,
- love.distributedrebirth.numberxd.x4o,
- love.distributedrebirth.warpme,
- love.distributedrebirth.warpme.core,
- love.distributedrebirth.warpme.hash,
- love.distributedrebirth.warpme.sea,
- love.distributedrebirth.warpme.ship,
- love.distributedrebirth.unicode4d,
- love.distributedrebirth.unicode4d.atlas
-
+ ${vrgem4.packages}
distributedrebirth.love
diff --git a/gdxapp4d-app-glyphdemo/pom.xml b/gdxapp4d-app-glyphdemo/pom.xml
index 006d981a..7940df13 100644
--- a/gdxapp4d-app-glyphdemo/pom.xml
+++ b/gdxapp4d-app-glyphdemo/pom.xml
@@ -28,88 +28,7 @@
<_donotcopy>(.git)
<_dsannotations>*
<_metatypeannotations>*
-
- org.osgi.framework,
- org.osgi.service.packageadmin,
- org.osgi.service.url,
- org.osgi.service.startlevel,
- org.osgi.util.tracker,
- love.distributedrebirth.gdxapp4d.tos4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
- com.badlogic.gdx,
- com.badlogic.gdx.assets,
- com.badlogic.gdx.assets.loaders,
- com.badlogic.gdx.assets.loaders.resolvers,
- com.badlogic.gdx.audio,
- com.badlogic.gdx.files,
- com.badlogic.gdx.graphics,
- com.badlogic.gdx.graphics.g2d,
- com.badlogic.gdx.graphics.g2d.freetype,
- com.badlogic.gdx.graphics.g3d,
- com.badlogic.gdx.graphics.g3d.attributes,
- com.badlogic.gdx.graphics.g3d.decals,
- com.badlogic.gdx.graphics.g3d.environment,
- com.badlogic.gdx.graphics.g3d.loader,
- com.badlogic.gdx.graphics.g3d.model,
- com.badlogic.gdx.graphics.g3d.model.data,
- com.badlogic.gdx.graphics.g3d.particles,
- com.badlogic.gdx.graphics.g3d.particles.bactches,
- com.badlogic.gdx.graphics.g3d.particles.emitters,
- com.badlogic.gdx.graphics.g3d.particles.influencers,
- com.badlogic.gdx.graphics.g3d.particles.renderers,
- com.badlogic.gdx.graphics.g3d.particles.values,
- com.badlogic.gdx.graphics.g3d.shaders,
- com.badlogic.gdx.graphics.g3d.utils,
- com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
- com.badlogic.gdx.graphics.glutils,
- com.badlogic.gdx.graphics.profiling,
- com.badlogic.gdx.input,
- com.badlogic.gdx.maps,
- com.badlogic.gdx.maps.objects,
- com.badlogic.gdx.maps.tiled,
- com.badlogic.gdx.maps.tiled.objects,
- com.badlogic.gdx.maps.tiled.renderers,
- com.badlogic.gdx.maps.tiled.tiles,
- com.badlogic.gdx.math,
- com.badlogic.gdx.math.collision,
- com.badlogic.gdx.net,
- com.badlogic.gdx.scenes.scene2d,
- com.badlogic.gdx.scenes.scene2d.actions,
- com.badlogic.gdx.scenes.scene2d.ui,
- com.badlogic.gdx.scenes.scene2d.utils,
- com.badlogic.gdx.utils,
- com.badlogic.gdx.utils.async,
- com.badlogic.gdx.utils.compression,
- com.badlogic.gdx.utils.compression.lz,
- com.badlogic.gdx.utils.compression.lzma,
- com.badlogic.gdx.utils.compression.rangecoder,
- com.badlogic.gdx.utils.reflect,
- com.badlogic.gdx.utils.viewport,
- imgui,
- imgui.flag,
- imgui.glfw,
- imgui.gl3,
- imgui.type,
- net.spookygames.gdx.nativefilechooser,
- love.distributedrebirth.bassboonyd,
- love.distributedrebirth.bassboonyd.jmx,
- love.distributedrebirth.numberxd,
- love.distributedrebirth.numberxd.base2t,
- love.distributedrebirth.numberxd.base2t.part,
- love.distributedrebirth.numberxd.base2t.part.warp,
- love.distributedrebirth.numberxd.base2t.type,
- love.distributedrebirth.numberxd.base2t.typexl,
- love.distributedrebirth.numberxd.glyph,
- love.distributedrebirth.numberxd.x4o,
- love.distributedrebirth.warpme,
- love.distributedrebirth.warpme.core,
- love.distributedrebirth.warpme.hash,
- love.distributedrebirth.warpme.sea,
- love.distributedrebirth.warpme.ship,
- love.distributedrebirth.unicode4d,
- love.distributedrebirth.unicode4d.atlas
-
+ ${vrgem4.packages}
distributedrebirth.love
diff --git a/gdxapp4d-app-hewallet/pom.xml b/gdxapp4d-app-hewallet/pom.xml
index 083871bb..4cea7bce 100644
--- a/gdxapp4d-app-hewallet/pom.xml
+++ b/gdxapp4d-app-hewallet/pom.xml
@@ -28,88 +28,7 @@
<_donotcopy>(.git)
<_dsannotations>*
<_metatypeannotations>*
-
- org.osgi.framework,
- org.osgi.service.packageadmin,
- org.osgi.service.url,
- org.osgi.service.startlevel,
- org.osgi.util.tracker,
- love.distributedrebirth.gdxapp4d.tos4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
- com.badlogic.gdx,
- com.badlogic.gdx.assets,
- com.badlogic.gdx.assets.loaders,
- com.badlogic.gdx.assets.loaders.resolvers,
- com.badlogic.gdx.audio,
- com.badlogic.gdx.files,
- com.badlogic.gdx.graphics,
- com.badlogic.gdx.graphics.g2d,
- com.badlogic.gdx.graphics.g2d.freetype,
- com.badlogic.gdx.graphics.g3d,
- com.badlogic.gdx.graphics.g3d.attributes,
- com.badlogic.gdx.graphics.g3d.decals,
- com.badlogic.gdx.graphics.g3d.environment,
- com.badlogic.gdx.graphics.g3d.loader,
- com.badlogic.gdx.graphics.g3d.model,
- com.badlogic.gdx.graphics.g3d.model.data,
- com.badlogic.gdx.graphics.g3d.particles,
- com.badlogic.gdx.graphics.g3d.particles.bactches,
- com.badlogic.gdx.graphics.g3d.particles.emitters,
- com.badlogic.gdx.graphics.g3d.particles.influencers,
- com.badlogic.gdx.graphics.g3d.particles.renderers,
- com.badlogic.gdx.graphics.g3d.particles.values,
- com.badlogic.gdx.graphics.g3d.shaders,
- com.badlogic.gdx.graphics.g3d.utils,
- com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
- com.badlogic.gdx.graphics.glutils,
- com.badlogic.gdx.graphics.profiling,
- com.badlogic.gdx.input,
- com.badlogic.gdx.maps,
- com.badlogic.gdx.maps.objects,
- com.badlogic.gdx.maps.tiled,
- com.badlogic.gdx.maps.tiled.objects,
- com.badlogic.gdx.maps.tiled.renderers,
- com.badlogic.gdx.maps.tiled.tiles,
- com.badlogic.gdx.math,
- com.badlogic.gdx.math.collision,
- com.badlogic.gdx.net,
- com.badlogic.gdx.scenes.scene2d,
- com.badlogic.gdx.scenes.scene2d.actions,
- com.badlogic.gdx.scenes.scene2d.ui,
- com.badlogic.gdx.scenes.scene2d.utils,
- com.badlogic.gdx.utils,
- com.badlogic.gdx.utils.async,
- com.badlogic.gdx.utils.compression,
- com.badlogic.gdx.utils.compression.lz,
- com.badlogic.gdx.utils.compression.lzma,
- com.badlogic.gdx.utils.compression.rangecoder,
- com.badlogic.gdx.utils.reflect,
- com.badlogic.gdx.utils.viewport,
- imgui,
- imgui.flag,
- imgui.glfw,
- imgui.gl3,
- imgui.type,
- net.spookygames.gdx.nativefilechooser,
- love.distributedrebirth.bassboonyd,
- love.distributedrebirth.bassboonyd.jmx,
- love.distributedrebirth.numberxd,
- love.distributedrebirth.numberxd.base2t,
- love.distributedrebirth.numberxd.base2t.part,
- love.distributedrebirth.numberxd.base2t.part.warp,
- love.distributedrebirth.numberxd.base2t.type,
- love.distributedrebirth.numberxd.base2t.typexl,
- love.distributedrebirth.numberxd.glyph,
- love.distributedrebirth.numberxd.x4o,
- love.distributedrebirth.warpme,
- love.distributedrebirth.warpme.core,
- love.distributedrebirth.warpme.hash,
- love.distributedrebirth.warpme.sea,
- love.distributedrebirth.warpme.ship,
- love.distributedrebirth.unicode4d,
- love.distributedrebirth.unicode4d.atlas
-
+ ${vrgem4.packages}
distributedrebirth.love
diff --git a/gdxapp4d-app-notepad/pom.xml b/gdxapp4d-app-notepad/pom.xml
index 4c762060..98fe4bdc 100644
--- a/gdxapp4d-app-notepad/pom.xml
+++ b/gdxapp4d-app-notepad/pom.xml
@@ -28,88 +28,7 @@
<_donotcopy>(.git)
<_dsannotations>*
<_metatypeannotations>*
-
- org.osgi.framework,
- org.osgi.service.packageadmin,
- org.osgi.service.url,
- org.osgi.service.startlevel,
- org.osgi.util.tracker,
- love.distributedrebirth.gdxapp4d.tos4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
- com.badlogic.gdx,
- com.badlogic.gdx.assets,
- com.badlogic.gdx.assets.loaders,
- com.badlogic.gdx.assets.loaders.resolvers,
- com.badlogic.gdx.audio,
- com.badlogic.gdx.files,
- com.badlogic.gdx.graphics,
- com.badlogic.gdx.graphics.g2d,
- com.badlogic.gdx.graphics.g2d.freetype,
- com.badlogic.gdx.graphics.g3d,
- com.badlogic.gdx.graphics.g3d.attributes,
- com.badlogic.gdx.graphics.g3d.decals,
- com.badlogic.gdx.graphics.g3d.environment,
- com.badlogic.gdx.graphics.g3d.loader,
- com.badlogic.gdx.graphics.g3d.model,
- com.badlogic.gdx.graphics.g3d.model.data,
- com.badlogic.gdx.graphics.g3d.particles,
- com.badlogic.gdx.graphics.g3d.particles.bactches,
- com.badlogic.gdx.graphics.g3d.particles.emitters,
- com.badlogic.gdx.graphics.g3d.particles.influencers,
- com.badlogic.gdx.graphics.g3d.particles.renderers,
- com.badlogic.gdx.graphics.g3d.particles.values,
- com.badlogic.gdx.graphics.g3d.shaders,
- com.badlogic.gdx.graphics.g3d.utils,
- com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
- com.badlogic.gdx.graphics.glutils,
- com.badlogic.gdx.graphics.profiling,
- com.badlogic.gdx.input,
- com.badlogic.gdx.maps,
- com.badlogic.gdx.maps.objects,
- com.badlogic.gdx.maps.tiled,
- com.badlogic.gdx.maps.tiled.objects,
- com.badlogic.gdx.maps.tiled.renderers,
- com.badlogic.gdx.maps.tiled.tiles,
- com.badlogic.gdx.math,
- com.badlogic.gdx.math.collision,
- com.badlogic.gdx.net,
- com.badlogic.gdx.scenes.scene2d,
- com.badlogic.gdx.scenes.scene2d.actions,
- com.badlogic.gdx.scenes.scene2d.ui,
- com.badlogic.gdx.scenes.scene2d.utils,
- com.badlogic.gdx.utils,
- com.badlogic.gdx.utils.async,
- com.badlogic.gdx.utils.compression,
- com.badlogic.gdx.utils.compression.lz,
- com.badlogic.gdx.utils.compression.lzma,
- com.badlogic.gdx.utils.compression.rangecoder,
- com.badlogic.gdx.utils.reflect,
- com.badlogic.gdx.utils.viewport,
- imgui,
- imgui.flag,
- imgui.glfw,
- imgui.gl3,
- imgui.type,
- net.spookygames.gdx.nativefilechooser,
- love.distributedrebirth.bassboonyd,
- love.distributedrebirth.bassboonyd.jmx,
- love.distributedrebirth.numberxd,
- love.distributedrebirth.numberxd.base2t,
- love.distributedrebirth.numberxd.base2t.part,
- love.distributedrebirth.numberxd.base2t.part.warp,
- love.distributedrebirth.numberxd.base2t.type,
- love.distributedrebirth.numberxd.base2t.typexl,
- love.distributedrebirth.numberxd.glyph,
- love.distributedrebirth.numberxd.x4o,
- love.distributedrebirth.warpme,
- love.distributedrebirth.warpme.core,
- love.distributedrebirth.warpme.hash,
- love.distributedrebirth.warpme.sea,
- love.distributedrebirth.warpme.ship,
- love.distributedrebirth.unicode4d,
- love.distributedrebirth.unicode4d.atlas
-
+ ${vrgem4.packages}
distributedrebirth.love
diff --git a/gdxapp4d-app-notepad/src/main/java/love/distributedrebirth/gdxapp4d/app/notepad/NotepadComponent.java b/gdxapp4d-app-notepad/src/main/java/love/distributedrebirth/gdxapp4d/app/notepad/NotepadComponent.java
index a46f1e73..2eb3fdb8 100644
--- a/gdxapp4d-app-notepad/src/main/java/love/distributedrebirth/gdxapp4d/app/notepad/NotepadComponent.java
+++ b/gdxapp4d-app-notepad/src/main/java/love/distributedrebirth/gdxapp4d/app/notepad/NotepadComponent.java
@@ -26,7 +26,7 @@ public class NotepadComponent {
private final DeskAppLauncher launcher;
public NotepadComponent() {
- launcher = new DeskAppLauncher(DeskAppMenuSection.EDITORS, "Notepad", () -> new NotepadDeskApp());
+ launcher = new DeskAppLauncher(DeskAppMenuSection.EDITORS, "Notepad", () -> new NotepadDeskApp(unicode4DService));
}
@Activate
diff --git a/gdxapp4d-app-notepad/src/main/java/love/distributedrebirth/gdxapp4d/app/notepad/NotepadDeskApp.java b/gdxapp4d-app-notepad/src/main/java/love/distributedrebirth/gdxapp4d/app/notepad/NotepadDeskApp.java
index 9b453802..3c6660b7 100644
--- a/gdxapp4d-app-notepad/src/main/java/love/distributedrebirth/gdxapp4d/app/notepad/NotepadDeskApp.java
+++ b/gdxapp4d-app-notepad/src/main/java/love/distributedrebirth/gdxapp4d/app/notepad/NotepadDeskApp.java
@@ -5,16 +5,25 @@ import imgui.ImDrawList;
import imgui.ImGui;
import imgui.ImVec2;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
+import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
-import love.distributedrebirth.unicode4d.atlas.FontAtlasStoreGlyph;
+import love.distributedrebirth.unicode4d.draw.DrawCharacter;
+import love.distributedrebirth.unicode4d.draw.DrawGlyphPath.ImGlyphLineTo;
+import love.distributedrebirth.unicode4d.draw.DrawGlyphPath.ImGlyphPathCommand;
+import love.distributedrebirth.unicode4d.draw.DrawGlyphPath.ImGlyphQuadCurveTo;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class NotepadDeskApp extends AbstractDeskApp implements DeskAppRenderer {
+ private final VrGem4Unicode4DService unicode4DService;
private String value = "";
+ public NotepadDeskApp(VrGem4Unicode4DService unicode4DService) {
+ this.unicode4DService = unicode4DService;
+ }
+
public void create() {
getContours().setTitle("Notepad");
getContours().registrateContour(DeskAppContourSection.MAIN, this);
@@ -25,49 +34,78 @@ public class NotepadDeskApp extends AbstractDeskApp implements DeskAppRenderer {
ImGui.text("Value:");
ImGui.text(value);
- //FontAtlasStore plane = GDXAppMain.INSTANCE.basePlane.getPlaneByName("MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A");
- FontAtlasStoreGlyph glyph = null; //plane.getBaseGlyphByUnicode("27d6");
+ //Integer.parseInt("27d6", 16)
+ //new Character('ﷲ').charValue()
+ //new ImCharacter(unicode4DService.getCharacterForUnicode(Integer.parseInt("27d6", 16))).render();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(new Character('ﷲ').charValue())).render();
+ ImGui.sameLine();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(new Character('v').charValue())).render();
+ ImGui.sameLine();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(new Character('r').charValue())).render();
+ //ImGui.sameLine();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(new Character('G').charValue())).render();
+ ImGui.sameLine();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(new Character('E').charValue())).render();
+ ImGui.sameLine();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(new Character('M').charValue())).render();
+ ImGui.sameLine();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(new Character('⁴').charValue())).render();
- ImCharacter c = new ImCharacter(glyph);
-
- c.render();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(Integer.parseInt("27d6", 16))).render();
+ ImGui.sameLine();
+ new ImCharacter(unicode4DService.getCharacterForUnicode(new Character('仙').charValue())).render();
}
class ImCharacter {
- private final FontAtlasStoreGlyph glyph;
+ private final DrawCharacter drawChar;
- public ImCharacter(FontAtlasStoreGlyph glyph) {
- this.glyph = glyph;
-
- //List tongs = glyph.getTongs();
+ public ImCharacter(DrawCharacter drawChar) {
+ this.drawChar = drawChar;
}
public void render() {
- ImVec2 size = new ImVec2(144f, 48f);
+ ImVec2 size = new ImVec2(50f, 70f);
ImGui.invisibleButton("canvas", size.x, size.y);
ImVec2 p0 = ImGui.getItemRectMin();
ImVec2 p1 = ImGui.getItemRectMax(); // p1 = p0 + size
ImDrawList drawList = ImGui.getWindowDrawList();
drawList.pushClipRect(p0.x, p0.y, p1.x, p1.y);
+
// draw unicode4D
+ float xOff = p0.x;
+ float yOff = p0.y + 55f;
+ float yFlip = -1f;
+ float scale = 0.025f;
+ ImGlyphPathCommand first = null;
+ ImGlyphPathCommand prev = null;
+ int color = ImColor.intToColor(255, 127, 63, 255);
+ for (ImGlyphPathCommand cmd: drawChar.getGlyphPath().getPath()) {
+ if (cmd.isImGlyphMoveTo()) {
+ first = cmd;
+ prev = cmd;
+ continue;
+ }
+ if (cmd.isImGlyphLineTo()) {
+ ImGlyphLineTo lineTo = cmd.toImGlyphLineTo();
+ drawList.addLine(xOff+prev.getX()*scale, yOff+prev.getY()*scale*yFlip, xOff+lineTo.getX()*scale, yOff+lineTo.getY()*scale*yFlip, color);
+ prev = cmd;
+ continue;
+ }
+ if (cmd.isImGlyphQuadCurveTo()) {
+ ImGlyphQuadCurveTo quadCurveTo = cmd.toImGlyphQuadCurveTo();
+ drawList.addBezierQuadratic(xOff+prev.getX()*scale, yOff+prev.getY()*scale*yFlip, xOff+quadCurveTo.getX1()*scale, yOff+quadCurveTo.getY1()*scale*yFlip, xOff+quadCurveTo.getX()*scale, yOff+quadCurveTo.getY()*scale*yFlip, color, 1);
+ prev = cmd;
+ continue;
+ }
+ if (cmd.isImGlyphClosePath()) {
+ drawList.addLine(xOff+prev.getX()*scale, yOff+prev.getY()*scale*yFlip, xOff+first.getX()*scale, yOff+first.getY()*scale*yFlip, color);
+ }
+ }
drawList.addQuad(p0.x, p0.y, p0.x+size.x, p0.y, p1.x, p1.y, p0.x, p0.y+size.y,
- ImColor.intToColor(127, 127, 255, 255), 5f);
-
- drawList.addLine(p0.x+10, p0.y+40, p0.x+20, p0.y+10, ImColor.intToColor(255, 127, 63, 255));
- drawList.addLine(p0.x+30, p0.y+40, p0.x+20, p0.y+10, ImColor.intToColor(255, 127, 63, 255));
- drawList.addLine(p0.x+13, p0.y+30, p0.x+27, p0.y+30, ImColor.intToColor(255, 127, 63, 255));
-
+ ImColor.intToColor(127, 127, 255, 255), 1f);
drawList.popClipRect();
- //System.out.println("p0.x="+p0.x+" p0.y="+p0.y);
- //System.out.println("p1.x="+p1.x+" p1.y="+p1.y);
-
-// for (int n = 0; n < (1.0f + Math.sin(ImGui.getTime() * 5.7f)) * 40.0f; n++) {
-// drawList.addCircle(p0.x + size.x * 0.5f, p0.y + size.y * 0.5f, size.y * (0.01f + n * 0.03f),
-// ImColor.intToColor(255, 140 - n * 4, n * 3, 255)
-// );
-// }
}
}
}
diff --git a/gdxapp4d-app-tosamp/pom.xml b/gdxapp4d-app-tosamp/pom.xml
index c75c8cea..a17e8b7d 100644
--- a/gdxapp4d-app-tosamp/pom.xml
+++ b/gdxapp4d-app-tosamp/pom.xml
@@ -28,88 +28,7 @@
<_donotcopy>(.git)
<_dsannotations>*
<_metatypeannotations>*
-
- org.osgi.framework,
- org.osgi.service.packageadmin,
- org.osgi.service.url,
- org.osgi.service.startlevel,
- org.osgi.util.tracker,
- love.distributedrebirth.gdxapp4d.tos4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
- com.badlogic.gdx,
- com.badlogic.gdx.assets,
- com.badlogic.gdx.assets.loaders,
- com.badlogic.gdx.assets.loaders.resolvers,
- com.badlogic.gdx.audio,
- com.badlogic.gdx.files,
- com.badlogic.gdx.graphics,
- com.badlogic.gdx.graphics.g2d,
- com.badlogic.gdx.graphics.g2d.freetype,
- com.badlogic.gdx.graphics.g3d,
- com.badlogic.gdx.graphics.g3d.attributes,
- com.badlogic.gdx.graphics.g3d.decals,
- com.badlogic.gdx.graphics.g3d.environment,
- com.badlogic.gdx.graphics.g3d.loader,
- com.badlogic.gdx.graphics.g3d.model,
- com.badlogic.gdx.graphics.g3d.model.data,
- com.badlogic.gdx.graphics.g3d.particles,
- com.badlogic.gdx.graphics.g3d.particles.bactches,
- com.badlogic.gdx.graphics.g3d.particles.emitters,
- com.badlogic.gdx.graphics.g3d.particles.influencers,
- com.badlogic.gdx.graphics.g3d.particles.renderers,
- com.badlogic.gdx.graphics.g3d.particles.values,
- com.badlogic.gdx.graphics.g3d.shaders,
- com.badlogic.gdx.graphics.g3d.utils,
- com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
- com.badlogic.gdx.graphics.glutils,
- com.badlogic.gdx.graphics.profiling,
- com.badlogic.gdx.input,
- com.badlogic.gdx.maps,
- com.badlogic.gdx.maps.objects,
- com.badlogic.gdx.maps.tiled,
- com.badlogic.gdx.maps.tiled.objects,
- com.badlogic.gdx.maps.tiled.renderers,
- com.badlogic.gdx.maps.tiled.tiles,
- com.badlogic.gdx.math,
- com.badlogic.gdx.math.collision,
- com.badlogic.gdx.net,
- com.badlogic.gdx.scenes.scene2d,
- com.badlogic.gdx.scenes.scene2d.actions,
- com.badlogic.gdx.scenes.scene2d.ui,
- com.badlogic.gdx.scenes.scene2d.utils,
- com.badlogic.gdx.utils,
- com.badlogic.gdx.utils.async,
- com.badlogic.gdx.utils.compression,
- com.badlogic.gdx.utils.compression.lz,
- com.badlogic.gdx.utils.compression.lzma,
- com.badlogic.gdx.utils.compression.rangecoder,
- com.badlogic.gdx.utils.reflect,
- com.badlogic.gdx.utils.viewport,
- imgui,
- imgui.flag,
- imgui.glfw,
- imgui.gl3,
- imgui.type,
- net.spookygames.gdx.nativefilechooser,
- love.distributedrebirth.bassboonyd,
- love.distributedrebirth.bassboonyd.jmx,
- love.distributedrebirth.numberxd,
- love.distributedrebirth.numberxd.base2t,
- love.distributedrebirth.numberxd.base2t.part,
- love.distributedrebirth.numberxd.base2t.part.warp,
- love.distributedrebirth.numberxd.base2t.type,
- love.distributedrebirth.numberxd.base2t.typexl,
- love.distributedrebirth.numberxd.glyph,
- love.distributedrebirth.numberxd.x4o,
- love.distributedrebirth.warpme,
- love.distributedrebirth.warpme.core,
- love.distributedrebirth.warpme.hash,
- love.distributedrebirth.warpme.sea,
- love.distributedrebirth.warpme.ship,
- love.distributedrebirth.unicode4d,
- love.distributedrebirth.unicode4d.atlas
-
+ ${vrgem4.packages}
distributedrebirth.love
diff --git a/gdxapp4d-chain-font-unicode4d/src/main/chain/warp-hash.xml b/gdxapp4d-chain-font-unicode4d/src/main/chain/warp-hash.xml
index 1dc27c7f..90f95814 100644
--- a/gdxapp4d-chain-font-unicode4d/src/main/chain/warp-hash.xml
+++ b/gdxapp4d-chain-font-unicode4d/src/main/chain/warp-hash.xml
@@ -31,7 +31,6 @@
-
diff --git a/gdxapp4d-chain-font-unicode4d/src/main/chain/warp-sea.xml b/gdxapp4d-chain-font-unicode4d/src/main/chain/warp-sea.xml
index 1a564594..c6e60d7a 100644
--- a/gdxapp4d-chain-font-unicode4d/src/main/chain/warp-sea.xml
+++ b/gdxapp4d-chain-font-unicode4d/src/main/chain/warp-sea.xml
@@ -31,7 +31,6 @@
-
diff --git a/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/CodePointCommandᶻᴰ.java b/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/CodePointCommandᶻᴰ.java
index d538caa4..3713f165 100644
--- a/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/CodePointCommandᶻᴰ.java
+++ b/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/CodePointCommandᶻᴰ.java
@@ -19,5 +19,6 @@ public enum CodePointCommandᶻᴰ {
XY_OFF_CURVE_START,
XY_ON_CURVE,
XY_OFF_CURVE,
- XY_SPACE
+ XY_SPACE,
+ ;
}
diff --git a/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawCharacter.java b/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawCharacter.java
new file mode 100644
index 00000000..e216d8da
--- /dev/null
+++ b/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawCharacter.java
@@ -0,0 +1,198 @@
+package love.distributedrebirth.unicode4d.draw;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import love.distributedrebirth.numberxd.base2t.part.T02PartBinary;
+import love.distributedrebirth.numberxd.base2t.type.V036Teger;
+import love.distributedrebirth.numberxd.base2t.type.V072Tong;
+import love.distributedrebirth.unicode4d.CodePointCommandᶻᴰ;
+import love.distributedrebirth.unicode4d.CodePointᶻᴰ;
+import love.distributedrebirth.unicode4d.atlas.FontAtlasStoreGlyph;
+import love.distributedrebirth.unicode4d.draw.DrawGlyphContour.ImGlyphPoint;
+
+public class DrawCharacter {
+
+ private final FontAtlasStoreGlyph glyph;
+ private final List contours = new ArrayList<>();
+ private final DrawGlyphPath glyphPath;
+ private DrawGlyphContour currentContour;
+ private int unicode;
+ private int xMax;
+ private int yMax;
+ private int xMin;
+ private int yMin;
+ private int advanceWidth;
+ private int leftSideBearing;
+ private boolean leftToRight;
+
+ public DrawCharacter(FontAtlasStoreGlyph glyph) {
+ this.glyph = glyph;
+ for (V072Tong tong: glyph.getTongs()) {
+ processCodePoint(tong.getValue(T02PartBinary.PART_1));
+ processCodePoint(tong.getValue(T02PartBinary.PART_2));
+ }
+ if (currentContour != null) {
+ contours.add(currentContour);
+ }
+ this.glyphPath = createGlyphPath();
+ }
+
+ private void processCodePoint(V036Teger codePoint) {
+ CodePointCommandᶻᴰ cmd = CodePointᶻᴰ.INSTANCE.getCommand(codePoint);
+ if (CodePointCommandᶻᴰ.NOP.equals(cmd)) {
+ return;
+ }
+ if (CodePointCommandᶻᴰ.START_LR.equals(cmd)) {
+ leftToRight = true;
+ return;
+ }
+ if (CodePointCommandᶻᴰ.START_RL.equals(cmd)) {
+ leftToRight = false;
+ return;
+ }
+ if (CodePointCommandᶻᴰ.UNICODE.equals(cmd)) {
+ unicode = CodePointᶻᴰ.INSTANCE.getArgumentUnicode(codePoint);
+ return;
+ }
+ if (CodePointCommandᶻᴰ.XY_MAX.equals(cmd)) {
+ xMax = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_1);
+ yMax = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_2);
+ return;
+ }
+ if (CodePointCommandᶻᴰ.XY_MIN.equals(cmd)) {
+ xMin = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_1);
+ yMin = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_2);
+ return;
+ }
+ if (CodePointCommandᶻᴰ.ADVANCE.equals(cmd)) {
+ advanceWidth = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_1);
+ leftSideBearing = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_2);
+ return;
+ }
+ if (CodePointCommandᶻᴰ.XY_ON_CURVE_START.equals(cmd)) {
+ if (currentContour != null) {
+ contours.add(currentContour);
+ }
+ int x = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_1);
+ int y = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_2);
+ currentContour = new DrawGlyphContour();
+ currentContour.point(x, y, true);
+ return;
+ }
+ if (CodePointCommandᶻᴰ.XY_OFF_CURVE_START.equals(cmd)) {
+ if (currentContour != null) {
+ contours.add(currentContour);
+ }
+ int x = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_1);
+ int y = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_2);
+ currentContour = new DrawGlyphContour();
+ currentContour.point(x, y, true);
+ return;
+ }
+ if (CodePointCommandᶻᴰ.XY_ON_CURVE.equals(cmd)) {
+ int x = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_1);
+ int y = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_2);
+ currentContour.point(x, y, true);
+ return;
+ }
+ if (CodePointCommandᶻᴰ.XY_OFF_CURVE.equals(cmd)) {
+ int x = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_1);
+ int y = CodePointᶻᴰ.INSTANCE.getArgument(codePoint, T02PartBinary.PART_2);
+ currentContour.point(x, y, false);
+ return;
+ }
+ }
+
+ private DrawGlyphPath createGlyphPath() {
+ // source function getPath(points): opentype.js/src/tables/glyf.js
+ DrawGlyphPath p = new DrawGlyphPath();
+
+ for (DrawGlyphContour contour: contours) {
+ //ImGlyphPoint prev = null;
+ ImGlyphPoint curr = contour.getPoints().get(contour.getPoints().size() - 1);
+ ImGlyphPoint next = contour.getPoints().get(0);
+
+ if (curr.onCurve) {
+ p.moveTo(curr.x, curr.y);
+ } else {
+ if (next.onCurve) {
+ p.moveTo(next.x, next.y);
+ } else {
+ int x = (curr.x + next.x) / 2;
+ int y = (curr.y + next.y) / 2;
+ p.moveTo(x, y);
+ }
+ }
+
+ Iterator pointIt = contour.getPoints().iterator();
+ pointIt.next(); // Remove first as that is 'next'
+ while (pointIt.hasNext()) {
+ //prev = curr;
+ curr = next;
+ next = pointIt.next();
+
+ if (curr.onCurve) {
+ p.lineTo(curr.x, curr.y);
+ } else {
+ int x = next.x;
+ int y = next.y;
+ if (next.onCurve) {
+ x = (curr.x + next.x) / 2;
+ y = (curr.y + next.y) / 2;
+ }
+ p.quadCurveTo(curr.x, curr.y, x, y);
+ }
+ }
+
+ p.closePath();
+ }
+
+ return p;
+ }
+
+ public FontAtlasStoreGlyph getGlyph() {
+ return glyph;
+ }
+
+ public List getContours() {
+ return contours;
+ }
+
+ public DrawGlyphPath getGlyphPath() {
+ return glyphPath;
+ }
+
+ public int getUnicode() {
+ return unicode;
+ }
+
+ public int getxMax() {
+ return xMax;
+ }
+
+ public int getyMax() {
+ return yMax;
+ }
+
+ public int getxMin() {
+ return xMin;
+ }
+
+ public int getyMin() {
+ return yMin;
+ }
+
+ public int getAdvanceWidth() {
+ return advanceWidth;
+ }
+
+ public int getLeftSideBearing() {
+ return leftSideBearing;
+ }
+
+ public boolean isLeftToRight() {
+ return leftToRight;
+ }
+}
diff --git a/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawGlyphContour.java b/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawGlyphContour.java
new file mode 100644
index 00000000..216eb0df
--- /dev/null
+++ b/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawGlyphContour.java
@@ -0,0 +1,28 @@
+package love.distributedrebirth.unicode4d.draw;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DrawGlyphContour {
+ private final List points = new ArrayList<>();
+
+ public class ImGlyphPoint {
+ int x;
+ int y;
+ boolean onCurve;
+
+ public ImGlyphPoint(int x, int y, boolean onCurve) {
+ this.x = x;
+ this.y = y;
+ this.onCurve = onCurve;
+ }
+ }
+
+ public void point(int x, int y, boolean onCurve) {
+ points.add(new ImGlyphPoint(x,y, onCurve));
+ }
+
+ public List getPoints() {
+ return points;
+ }
+}
diff --git a/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawGlyphPath.java b/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawGlyphPath.java
new file mode 100644
index 00000000..f3a6deca
--- /dev/null
+++ b/gdxapp4d-lib-unicodezd/src/main/java/love/distributedrebirth/unicode4d/draw/DrawGlyphPath.java
@@ -0,0 +1,196 @@
+package love.distributedrebirth.unicode4d.draw;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DrawGlyphPath {
+ private final List commands = new ArrayList<>();
+
+ public interface ImGlyphPathCommand {
+ int getX();
+ int getY();
+ default boolean isImGlyphMoveTo() {
+ return this instanceof ImGlyphMoveTo;
+ }
+ default boolean isImGlyphLineTo() {
+ return this instanceof ImGlyphLineTo;
+ }
+ default boolean isImGlyphCurveTo() {
+ return this instanceof ImGlyphCurveTo;
+ }
+ default boolean isImGlyphQuadCurveTo() {
+ return this instanceof ImGlyphQuadCurveTo;
+ }
+ default boolean isImGlyphClosePath() {
+ return this instanceof ImGlyphClosePath;
+ }
+ default ImGlyphMoveTo toImGlyphMoveTo() {
+ return ImGlyphMoveTo.class.cast(this);
+ }
+ default ImGlyphLineTo toImGlyphLineTo() {
+ return ImGlyphLineTo.class.cast(this);
+ }
+ default ImGlyphCurveTo toImGlyphCurveTo() {
+ return ImGlyphCurveTo.class.cast(this);
+ }
+ default ImGlyphQuadCurveTo toImGlyphQuadCurveTo() {
+ return ImGlyphQuadCurveTo.class.cast(this);
+ }
+ default ImGlyphClosePath toImGlyphClosePath() {
+ return ImGlyphClosePath.class.cast(this);
+ }
+ }
+
+ public final class ImGlyphMoveTo implements ImGlyphPathCommand {
+ private final int x;
+ private final int y;
+
+ public ImGlyphMoveTo(int x, int y) {
+ this.x = x;
+ this.y = y;
+ }
+
+ @Override
+ public int getX() {
+ return x;
+ }
+
+ @Override
+ public int getY() {
+ return y;
+ }
+ }
+
+ public final class ImGlyphLineTo implements ImGlyphPathCommand {
+ private final int x;
+ private final int y;
+
+ public ImGlyphLineTo(int x, int y) {
+ this.x = x;
+ this.y = y;
+ }
+
+ @Override
+ public int getX() {
+ return x;
+ }
+
+ @Override
+ public int getY() {
+ return y;
+ }
+ }
+
+ public final class ImGlyphCurveTo implements ImGlyphPathCommand {
+ private final int x1;
+ private final int y1;
+ private final int x2;
+ private final int y2;
+ private final int x;
+ private final int y;
+
+ public ImGlyphCurveTo(int x1, int y1,int x2, int y2,int x, int y) {
+ this.x1 = x1;
+ this.y1 = y1;
+ this.x2 = x2;
+ this.y2 = y2;
+ this.x = x;
+ this.y = y;
+ }
+
+ @Override
+ public int getX() {
+ return x;
+ }
+
+ @Override
+ public int getY() {
+ return y;
+ }
+
+ public int getX1() {
+ return x1;
+ }
+
+ public int getY1() {
+ return y1;
+ }
+
+ public int getX2() {
+ return x2;
+ }
+
+ public int getY2() {
+ return y2;
+ }
+ }
+
+ public final class ImGlyphQuadCurveTo implements ImGlyphPathCommand {
+ private final int x1;
+ private final int y1;
+ private final int x;
+ private final int y;
+
+ public ImGlyphQuadCurveTo(int x1, int y1,int x, int y) {
+ this.x1 = x1;
+ this.y1 = y1;
+ this.x = x;
+ this.y = y;
+ }
+
+ @Override
+ public int getX() {
+ return x;
+ }
+
+ @Override
+ public int getY() {
+ return y;
+ }
+
+ public int getX1() {
+ return x1;
+ }
+
+ public int getY1() {
+ return y1;
+ }
+ }
+
+ public class ImGlyphClosePath implements ImGlyphPathCommand {
+
+ @Override
+ public int getX() {
+ return -1;
+ }
+
+ @Override
+ public int getY() {
+ return -1;
+ }
+ }
+
+ public void moveTo(int x, int y) {
+ commands.add(new ImGlyphMoveTo(x,y));
+ }
+
+ public void lineTo(int x, int y) {
+ commands.add(new ImGlyphLineTo(x,y));
+ }
+
+ public void curveTo(int x1, int y1,int x2, int y2,int x, int y) {
+ commands.add(new ImGlyphCurveTo(x1,y1,x2,y2,x,y));
+ }
+
+ public void quadCurveTo(int x1, int y1,int x, int y) {
+ commands.add(new ImGlyphQuadCurveTo(x1,y1,x,y));
+ }
+
+ public void closePath() {
+ commands.add(new ImGlyphClosePath());
+ }
+
+ public List getPath() {
+ return commands;
+ }
+}
diff --git a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4BootFactory.java b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4BootFactory.java
index 46310a99..957e765e 100644
--- a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4BootFactory.java
+++ b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4BootFactory.java
@@ -134,7 +134,8 @@ public class GDXAppTos4BootFactory {
"love.distributedrebirth.warpme.sea,"+
"love.distributedrebirth.warpme.ship,"+
"love.distributedrebirth.unicode4d,"+
- "love.distributedrebirth.unicode4d.atlas"
+ "love.distributedrebirth.unicode4d.atlas,"+
+ "love.distributedrebirth.unicode4d.draw"
); // ; version=1.0.0
if (cachedir != null) {
diff --git a/gdxapp4d-vrgem4/pom.xml b/gdxapp4d-vrgem4/pom.xml
index 0393c5b8..87d4febb 100644
--- a/gdxapp4d-vrgem4/pom.xml
+++ b/gdxapp4d-vrgem4/pom.xml
@@ -28,104 +28,7 @@
<_dsannotations>*
<_metatypeannotations>*
- org.osgi.framework,
- org.osgi.service.packageadmin,
- org.osgi.service.url,
- org.osgi.service.startlevel,
- org.osgi.util.tracker,
- love.distributedrebirth.gdxapp4d.tos4.service,
- com.badlogic.gdx,
- com.badlogic.gdx.assets,
- com.badlogic.gdx.assets.loaders,
- com.badlogic.gdx.assets.loaders.resolvers,
- com.badlogic.gdx.audio,
- com.badlogic.gdx.files,
- com.badlogic.gdx.graphics,
- com.badlogic.gdx.graphics.g2d,
- com.badlogic.gdx.graphics.g2d.freetype,
- com.badlogic.gdx.graphics.g3d,
- com.badlogic.gdx.graphics.g3d.attributes,
- com.badlogic.gdx.graphics.g3d.decals,
- com.badlogic.gdx.graphics.g3d.environment,
- com.badlogic.gdx.graphics.g3d.loader,
- com.badlogic.gdx.graphics.g3d.model,
- com.badlogic.gdx.graphics.g3d.model.data,
- com.badlogic.gdx.graphics.g3d.particles,
- com.badlogic.gdx.graphics.g3d.particles.bactches,
- com.badlogic.gdx.graphics.g3d.particles.emitters,
- com.badlogic.gdx.graphics.g3d.particles.influencers,
- com.badlogic.gdx.graphics.g3d.particles.renderers,
- com.badlogic.gdx.graphics.g3d.particles.values,
- com.badlogic.gdx.graphics.g3d.shaders,
- com.badlogic.gdx.graphics.g3d.utils,
- com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
- com.badlogic.gdx.graphics.glutils,
- com.badlogic.gdx.graphics.profiling,
- com.badlogic.gdx.input,
- com.badlogic.gdx.maps,
- com.badlogic.gdx.maps.objects,
- com.badlogic.gdx.maps.tiled,
- com.badlogic.gdx.maps.tiled.objects,
- com.badlogic.gdx.maps.tiled.renderers,
- com.badlogic.gdx.maps.tiled.tiles,
- com.badlogic.gdx.math,
- com.badlogic.gdx.math.collision,
- com.badlogic.gdx.net,
- com.badlogic.gdx.scenes.scene2d,
- com.badlogic.gdx.scenes.scene2d.actions,
- com.badlogic.gdx.scenes.scene2d.ui,
- com.badlogic.gdx.scenes.scene2d.utils,
- com.badlogic.gdx.utils,
- com.badlogic.gdx.utils.async,
- com.badlogic.gdx.utils.compression,
- com.badlogic.gdx.utils.compression.lz,
- com.badlogic.gdx.utils.compression.lzma,
- com.badlogic.gdx.utils.compression.rangecoder,
- com.badlogic.gdx.utils.reflect,
- com.badlogic.gdx.utils.viewport,
- imgui,
- imgui.flag,
- imgui.glfw,
- imgui.gl3,
- imgui.type,
- net.spookygames.gdx.nativefilechooser,
- org.x4o.xml,
- org.x4o.xml.conv,
- org.x4o.xml.conv.text,
- org.x4o.xml.el,
- org.x4o.xml.eld,
- org.x4o.xml.eld.lang,
- org.x4o.xml.eld.xsd,
- org.x4o.xml.element,
- org.x4o.xml.io,
- org.x4o.xml.io.sax,
- org.x4o.xml.io.sax.ext,
- org.x4o.xml.lang,
- org.x4o.xml.lang.phase,
- org.x4o.xml.lang.task,
- org.x4o.xml.lang.task.run,
- javax.el,
- org.apache.el,
- org.apache.el.lang,
- org.apache.el.parser,
- org.apache.el.util,
- love.distributedrebirth.bassboonyd,
- love.distributedrebirth.bassboonyd.jmx,
- love.distributedrebirth.numberxd,
- love.distributedrebirth.numberxd.base2t,
- love.distributedrebirth.numberxd.base2t.part,
- love.distributedrebirth.numberxd.base2t.part.warp,
- love.distributedrebirth.numberxd.base2t.type,
- love.distributedrebirth.numberxd.base2t.typexl,
- love.distributedrebirth.numberxd.glyph,
- love.distributedrebirth.numberxd.x4o,
- love.distributedrebirth.warpme,
- love.distributedrebirth.warpme.core,
- love.distributedrebirth.warpme.hash,
- love.distributedrebirth.warpme.sea,
- love.distributedrebirth.warpme.ship,
- love.distributedrebirth.unicode4d,
- love.distributedrebirth.unicode4d.atlas
+ ${tos4.packages}
love.distributedrebirth.gdxapp4d.vrgem4.service,
diff --git a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/VrGem4Unicode4DServiceImpl.java b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/VrGem4Unicode4DServiceImpl.java
index 7bad3698..b0e43762 100644
--- a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/VrGem4Unicode4DServiceImpl.java
+++ b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/VrGem4Unicode4DServiceImpl.java
@@ -19,12 +19,14 @@ import love.distributedrebirth.unicode4d.atlas.FontAtlas;
import love.distributedrebirth.unicode4d.atlas.FontAtlasDriver;
import love.distributedrebirth.unicode4d.atlas.FontAtlasStore;
import love.distributedrebirth.unicode4d.atlas.FontAtlasStoreGlyph;
+import love.distributedrebirth.unicode4d.draw.DrawCharacter;
@Component
public class VrGem4Unicode4DServiceImpl implements VrGem4Unicode4DService {
private final FontAtlas masterFontAtlas;
private final Map unicodeMap;
+ private final Map unicodeCharMap;
@Reference
private SystemGdxLog log;
@@ -36,6 +38,7 @@ public class VrGem4Unicode4DServiceImpl implements VrGem4Unicode4DService {
public VrGem4Unicode4DServiceImpl() {
masterFontAtlas = new FontAtlas();
unicodeMap = new HashMap<>();
+ unicodeCharMap = new HashMap<>();
}
@Activate
@@ -53,16 +56,26 @@ public class VrGem4Unicode4DServiceImpl implements VrGem4Unicode4DService {
}
log.info(this, "Master font atlas size: {}", masterFontAtlas.getStores().size());
+ int dup = 0;
for (FontAtlasStore fontStore:masterFontAtlas.getStores()) {
log.info(this,"Map unicode: {} size: {}", fontStore.getName(), fontStore.getGlyphs().size());
for (FontAtlasStoreGlyph glyph: fontStore.getGlyphs()) {
int unicode = CodePointᶻᴰ.INSTANCE.searchUnicode(glyph.getTongs());
+ if (unicodeMap.containsKey(unicode)) {
+ dup++;
+ continue;
+ }
if (unicode > 0) {
unicodeMap.put(unicode, glyph);
+ try {
+ unicodeCharMap.put(unicode, new DrawCharacter(glyph));
+ } catch (Exception e) {
+ log.error(this, e.getMessage(), e);
+ }
}
}
}
- log.info(this, "unicode map size: {}", unicodeMap.size());
+ log.info(this, "unicode map size: {} dups: {}", unicodeMap.size(), dup);
}
@Deactivate
@@ -71,12 +84,17 @@ public class VrGem4Unicode4DServiceImpl implements VrGem4Unicode4DService {
}
@Override
- public FontAtlas getMasterFontAtlas() {
+ public FontAtlas getFontAtlas() {
return masterFontAtlas;
}
-
+
@Override
public FontAtlasStoreGlyph getGlyphForUnicode(int unicode) {
return unicodeMap.get(unicode);
}
+
+ @Override
+ public DrawCharacter getCharacterForUnicode(int unicode) {
+ return unicodeCharMap.get(unicode);
+ }
}
diff --git a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/service/VrGem4Unicode4DService.java b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/service/VrGem4Unicode4DService.java
index 952c1328..a73b8e36 100644
--- a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/service/VrGem4Unicode4DService.java
+++ b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/service/VrGem4Unicode4DService.java
@@ -2,10 +2,13 @@ package love.distributedrebirth.gdxapp4d.vrgem4.service;
import love.distributedrebirth.unicode4d.atlas.FontAtlas;
import love.distributedrebirth.unicode4d.atlas.FontAtlasStoreGlyph;
+import love.distributedrebirth.unicode4d.draw.DrawCharacter;
public interface VrGem4Unicode4DService {
- FontAtlas getMasterFontAtlas();
+ FontAtlas getFontAtlas();
FontAtlasStoreGlyph getGlyphForUnicode(int unicode);
+
+ DrawCharacter getCharacterForUnicode(int unicode);
}
diff --git a/gdxapp4d-vrsys5/pom.xml b/gdxapp4d-vrsys5/pom.xml
index 92127566..2b1e07b9 100644
--- a/gdxapp4d-vrsys5/pom.xml
+++ b/gdxapp4d-vrsys5/pom.xml
@@ -28,88 +28,7 @@
<_donotcopy>(.git)
<_dsannotations>*
<_metatypeannotations>*
-
- org.osgi.framework,
- org.osgi.service.packageadmin,
- org.osgi.service.url,
- org.osgi.service.startlevel,
- org.osgi.util.tracker,
- love.distributedrebirth.gdxapp4d.tos4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service,
- love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp,
- com.badlogic.gdx,
- com.badlogic.gdx.assets,
- com.badlogic.gdx.assets.loaders,
- com.badlogic.gdx.assets.loaders.resolvers,
- com.badlogic.gdx.audio,
- com.badlogic.gdx.files,
- com.badlogic.gdx.graphics,
- com.badlogic.gdx.graphics.g2d,
- com.badlogic.gdx.graphics.g2d.freetype,
- com.badlogic.gdx.graphics.g3d,
- com.badlogic.gdx.graphics.g3d.attributes,
- com.badlogic.gdx.graphics.g3d.decals,
- com.badlogic.gdx.graphics.g3d.environment,
- com.badlogic.gdx.graphics.g3d.loader,
- com.badlogic.gdx.graphics.g3d.model,
- com.badlogic.gdx.graphics.g3d.model.data,
- com.badlogic.gdx.graphics.g3d.particles,
- com.badlogic.gdx.graphics.g3d.particles.bactches,
- com.badlogic.gdx.graphics.g3d.particles.emitters,
- com.badlogic.gdx.graphics.g3d.particles.influencers,
- com.badlogic.gdx.graphics.g3d.particles.renderers,
- com.badlogic.gdx.graphics.g3d.particles.values,
- com.badlogic.gdx.graphics.g3d.shaders,
- com.badlogic.gdx.graphics.g3d.utils,
- com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
- com.badlogic.gdx.graphics.glutils,
- com.badlogic.gdx.graphics.profiling,
- com.badlogic.gdx.input,
- com.badlogic.gdx.maps,
- com.badlogic.gdx.maps.objects,
- com.badlogic.gdx.maps.tiled,
- com.badlogic.gdx.maps.tiled.objects,
- com.badlogic.gdx.maps.tiled.renderers,
- com.badlogic.gdx.maps.tiled.tiles,
- com.badlogic.gdx.math,
- com.badlogic.gdx.math.collision,
- com.badlogic.gdx.net,
- com.badlogic.gdx.scenes.scene2d,
- com.badlogic.gdx.scenes.scene2d.actions,
- com.badlogic.gdx.scenes.scene2d.ui,
- com.badlogic.gdx.scenes.scene2d.utils,
- com.badlogic.gdx.utils,
- com.badlogic.gdx.utils.async,
- com.badlogic.gdx.utils.compression,
- com.badlogic.gdx.utils.compression.lz,
- com.badlogic.gdx.utils.compression.lzma,
- com.badlogic.gdx.utils.compression.rangecoder,
- com.badlogic.gdx.utils.reflect,
- com.badlogic.gdx.utils.viewport,
- imgui,
- imgui.flag,
- imgui.glfw,
- imgui.gl3,
- imgui.type,
- net.spookygames.gdx.nativefilechooser,
- love.distributedrebirth.bassboonyd,
- love.distributedrebirth.bassboonyd.jmx,
- love.distributedrebirth.numberxd,
- love.distributedrebirth.numberxd.base2t,
- love.distributedrebirth.numberxd.base2t.part,
- love.distributedrebirth.numberxd.base2t.part.warp,
- love.distributedrebirth.numberxd.base2t.type,
- love.distributedrebirth.numberxd.base2t.typexl,
- love.distributedrebirth.numberxd.glyph,
- love.distributedrebirth.numberxd.x4o,
- love.distributedrebirth.warpme,
- love.distributedrebirth.warpme.core,
- love.distributedrebirth.warpme.hash,
- love.distributedrebirth.warpme.sea,
- love.distributedrebirth.warpme.ship,
- love.distributedrebirth.unicode4d,
- love.distributedrebirth.unicode4d.atlas
-
+ ${vrgem4.packages}
distributedrebirth.love
diff --git a/pom.xml b/pom.xml
index ed53d069..535f9f69 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,6 +38,112 @@
1.10.0
1.86.0
1.0.0
+
+ org.osgi.framework,
+ org.osgi.service.packageadmin,
+ org.osgi.service.url,
+ org.osgi.service.startlevel,
+ org.osgi.util.tracker,
+ love.distributedrebirth.gdxapp4d.tos4.service,
+ com.badlogic.gdx,
+ com.badlogic.gdx.assets,
+ com.badlogic.gdx.assets.loaders,
+ com.badlogic.gdx.assets.loaders.resolvers,
+ com.badlogic.gdx.audio,
+ com.badlogic.gdx.files,
+ com.badlogic.gdx.graphics,
+ com.badlogic.gdx.graphics.g2d,
+ com.badlogic.gdx.graphics.g2d.freetype,
+ com.badlogic.gdx.graphics.g3d,
+ com.badlogic.gdx.graphics.g3d.attributes,
+ com.badlogic.gdx.graphics.g3d.decals,
+ com.badlogic.gdx.graphics.g3d.environment,
+ com.badlogic.gdx.graphics.g3d.loader,
+ com.badlogic.gdx.graphics.g3d.model,
+ com.badlogic.gdx.graphics.g3d.model.data,
+ com.badlogic.gdx.graphics.g3d.particles,
+ com.badlogic.gdx.graphics.g3d.particles.bactches,
+ com.badlogic.gdx.graphics.g3d.particles.emitters,
+ com.badlogic.gdx.graphics.g3d.particles.influencers,
+ com.badlogic.gdx.graphics.g3d.particles.renderers,
+ com.badlogic.gdx.graphics.g3d.particles.values,
+ com.badlogic.gdx.graphics.g3d.shaders,
+ com.badlogic.gdx.graphics.g3d.utils,
+ com.badlogic.gdx.graphics.g3d.utils.shapebuilders,
+ com.badlogic.gdx.graphics.glutils,
+ com.badlogic.gdx.graphics.profiling,
+ com.badlogic.gdx.input,
+ com.badlogic.gdx.maps,
+ com.badlogic.gdx.maps.objects,
+ com.badlogic.gdx.maps.tiled,
+ com.badlogic.gdx.maps.tiled.objects,
+ com.badlogic.gdx.maps.tiled.renderers,
+ com.badlogic.gdx.maps.tiled.tiles,
+ com.badlogic.gdx.math,
+ com.badlogic.gdx.math.collision,
+ com.badlogic.gdx.net,
+ com.badlogic.gdx.scenes.scene2d,
+ com.badlogic.gdx.scenes.scene2d.actions,
+ com.badlogic.gdx.scenes.scene2d.ui,
+ com.badlogic.gdx.scenes.scene2d.utils,
+ com.badlogic.gdx.utils,
+ com.badlogic.gdx.utils.async,
+ com.badlogic.gdx.utils.compression,
+ com.badlogic.gdx.utils.compression.lz,
+ com.badlogic.gdx.utils.compression.lzma,
+ com.badlogic.gdx.utils.compression.rangecoder,
+ com.badlogic.gdx.utils.reflect,
+ com.badlogic.gdx.utils.viewport,
+ imgui,
+ imgui.flag,
+ imgui.glfw,
+ imgui.gl3,
+ imgui.type,
+ net.spookygames.gdx.nativefilechooser,
+ org.x4o.xml,
+ org.x4o.xml.conv,
+ org.x4o.xml.conv.text,
+ org.x4o.xml.el,
+ org.x4o.xml.eld,
+ org.x4o.xml.eld.lang,
+ org.x4o.xml.eld.xsd,
+ org.x4o.xml.element,
+ org.x4o.xml.io,
+ org.x4o.xml.io.sax,
+ org.x4o.xml.io.sax.ext,
+ org.x4o.xml.lang,
+ org.x4o.xml.lang.phase,
+ org.x4o.xml.lang.task,
+ org.x4o.xml.lang.task.run,
+ javax.el,
+ org.apache.el,
+ org.apache.el.lang,
+ org.apache.el.parser,
+ org.apache.el.util,
+ love.distributedrebirth.bassboonyd,
+ love.distributedrebirth.bassboonyd.jmx,
+ love.distributedrebirth.numberxd,
+ love.distributedrebirth.numberxd.base2t,
+ love.distributedrebirth.numberxd.base2t.part,
+ love.distributedrebirth.numberxd.base2t.part.warp,
+ love.distributedrebirth.numberxd.base2t.type,
+ love.distributedrebirth.numberxd.base2t.typexl,
+ love.distributedrebirth.numberxd.glyph,
+ love.distributedrebirth.numberxd.x4o,
+ love.distributedrebirth.warpme,
+ love.distributedrebirth.warpme.core,
+ love.distributedrebirth.warpme.hash,
+ love.distributedrebirth.warpme.sea,
+ love.distributedrebirth.warpme.ship,
+ love.distributedrebirth.unicode4d,
+ love.distributedrebirth.unicode4d.atlas,
+ love.distributedrebirth.unicode4d.draw
+
+
+ ${tos4.packages},
+ love.distributedrebirth.gdxapp4d.vrgem4.service,
+ love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp
+