Almost rendering glyphs

This commit is contained in:
Willem Cazander 2022-03-16 17:47:42 +01:00
parent ad8102be3a
commit df5efd4dab
19 changed files with 629 additions and 625 deletions

View file

@ -28,88 +28,7 @@
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
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
</Import-Package>
<Import-Package>${vrgem4.packages}</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>

View file

@ -28,88 +28,7 @@
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
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
</Import-Package>
<Import-Package>${vrgem4.packages}</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>

View file

@ -28,88 +28,7 @@
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
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
</Import-Package>
<Import-Package>${vrgem4.packages}</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>

View file

@ -28,88 +28,7 @@
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
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
</Import-Package>
<Import-Package>${vrgem4.packages}</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>

View file

@ -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

View file

@ -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<V072Tong> 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)
// );
// }
}
}
}

View file

@ -28,88 +28,7 @@
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
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
</Import-Package>
<Import-Package>${vrgem4.packages}</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>

View file

@ -31,7 +31,6 @@
<soft:hash file="plane1/new-gardiner-smp.ttf" hex="0"/>
<soft:hash file="plane1/noto-sans-brahmi.ttf" hex="0"/>
<soft:hash file="plane2/code-2002.ttf" hex="0"/>
<soft:hash file="plane0/code-2000.ttf4d" hex="0"/>
<soft:hash file="plane0/free-sans.ttf4d" hex="0"/>
<soft:hash file="plane0/new-gardiner-bmp.ttf4d" hex="0"/>

View file

@ -31,7 +31,6 @@
<link:magic file="plane1/new-gardiner-smp.ttf" mime="application/x-font-ttf-plane1"/>
<link:magic file="plane1/noto-sans-brahmi.ttf" mime="application/x-font-ttf-plane1"/>
<link:magic file="plane2/code-2002.ttf" mime="application/x-font-ttf-plane2"/>
<link:magic file="plane0/code-2000.ttf4d" mime="application/x-font-ttf4d"/>
<link:magic file="plane0/free-sans.ttf4d" mime="application/x-font-ttf4d"/>
<link:magic file="plane0/new-gardiner-bmp.ttf4d" mime="application/x-font-ttf4d"/>

View file

@ -19,5 +19,6 @@ public enum CodePointCommandᶻᴰ {
XY_OFF_CURVE_START,
XY_ON_CURVE,
XY_OFF_CURVE,
XY_SPACE
XY_SPACE,
;
}

View file

@ -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<DrawGlyphContour> 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<ImGlyphPoint> 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<DrawGlyphContour> 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;
}
}

View file

@ -0,0 +1,28 @@
package love.distributedrebirth.unicode4d.draw;
import java.util.ArrayList;
import java.util.List;
public class DrawGlyphContour {
private final List<ImGlyphPoint> 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<ImGlyphPoint> getPoints() {
return points;
}
}

View file

@ -0,0 +1,196 @@
package love.distributedrebirth.unicode4d.draw;
import java.util.ArrayList;
import java.util.List;
public class DrawGlyphPath {
private final List<ImGlyphPathCommand> 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<ImGlyphPathCommand> getPath() {
return commands;
}
}

View file

@ -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) {

View file

@ -28,104 +28,7 @@
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
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}
</Import-Package>
<Export-Package>
love.distributedrebirth.gdxapp4d.vrgem4.service,

View file

@ -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<Integer, FontAtlasStoreGlyph> unicodeMap;
private final Map<Integer, DrawCharacter> 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,7 +84,7 @@ public class VrGem4Unicode4DServiceImpl implements VrGem4Unicode4DService {
}
@Override
public FontAtlas getMasterFontAtlas() {
public FontAtlas getFontAtlas() {
return masterFontAtlas;
}
@ -79,4 +92,9 @@ public class VrGem4Unicode4DServiceImpl implements VrGem4Unicode4DService {
public FontAtlasStoreGlyph getGlyphForUnicode(int unicode) {
return unicodeMap.get(unicode);
}
@Override
public DrawCharacter getCharacterForUnicode(int unicode) {
return unicodeCharMap.get(unicode);
}
}

View file

@ -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);
}

View file

@ -28,88 +28,7 @@
<_donotcopy>(.git)</_donotcopy>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
<Import-Package>
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
</Import-Package>
<Import-Package>${vrgem4.packages}</Import-Package>
<Bundle-Vendor>distributedrebirth.love</Bundle-Vendor>
</instructions>
</configuration>

106
pom.xml
View file

@ -38,6 +38,112 @@
<gdx.version>1.10.0</gdx.version>
<spair.version>1.86.0</spair.version>
<nativefilechooser.version>1.0.0</nativefilechooser.version>
<tos4.packages>
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>
<vrgem4.packages>
${tos4.packages},
love.distributedrebirth.gdxapp4d.vrgem4.service,
love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp
</vrgem4.packages>
</properties>
<dependencyManagement>
<dependencies>