fixing up diacritics; complete unipunct
175
.idea/workspace.xml
generated
@@ -7,15 +7,18 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="22c5bc80-996c-4846-b173-7dc8c2096fe3" name="Default" comment="">
|
<list default="true" id="22c5bc80-996c-4846-b173-7dc8c2096fe3" name="Default" comment="">
|
||||||
<change afterPath="$PROJECT_DIR$/CONTRIBUTORS.txt" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/testtext.txt" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/CONTRIBUTING.md" beforeDir="false" afterPath="$PROJECT_DIR$/CONTRIBUTING.md" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/CONTRIBUTING.md" beforeDir="false" afterPath="$PROJECT_DIR$/CONTRIBUTING.md" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/FontTestGDX/lib/TerrarumSansBitmap.jar" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/lib/TerrarumSansBitmap.jar" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/assets/ascii_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/ascii_variable.tga" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/assets/ascii_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/ascii_variable.tga" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/assets/devanagari_bengali_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/devanagari_bengali_variable.tga" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/assets/devanagari_bengali_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/devanagari_bengali_variable.tga" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/demo.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/demo.PNG" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/demo.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/demo.PNG" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/demotext.txt" beforeDir="false" afterPath="$PROJECT_DIR$/demotext.txt" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/demotext.txt" beforeDir="false" afterPath="$PROJECT_DIR$/demotext.txt" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" beforeDir="false" afterPath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/testing.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/testing.PNG" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/testtext.txt" beforeDir="false" afterPath="$PROJECT_DIR$/testtext.txt" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<ignored path="$PROJECT_DIR$/out/" />
|
<ignored path="$PROJECT_DIR$/out/" />
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
@@ -32,20 +35,20 @@
|
|||||||
<splitter split-orientation="horizontal" split-proportion="0.5">
|
<splitter split-orientation="horizontal" split-proportion="0.5">
|
||||||
<split-first>
|
<split-first>
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||||
<file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="false">
|
<file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
|
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="368">
|
<state relative-caret-position="521">
|
||||||
<caret line="1107" column="37" lean-forward="true" selection-start-line="1107" selection-start-column="37" selection-end-line="1107" selection-end-column="37" />
|
<caret line="1076" column="27" selection-start-line="1076" selection-start-column="27" selection-end-line="1076" selection-end-column="27" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="GlyphProps.kt" pinned="false" current-in-tab="true">
|
<file leaf-file-name="GlyphProps.kt" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt">
|
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="325">
|
<state relative-caret-position="28">
|
||||||
<caret line="25" column="32" selection-start-line="25" selection-start-column="32" selection-end-line="25" selection-end-column="32" />
|
<caret line="7" column="22" selection-start-line="7" selection-start-column="22" selection-end-line="7" selection-end-column="22" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -53,7 +56,7 @@
|
|||||||
<file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="false">
|
<file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt">
|
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="6084">
|
<state relative-caret-position="234">
|
||||||
<caret line="490" selection-start-line="490" selection-end-line="490" />
|
<caret line="490" selection-start-line="490" selection-end-line="490" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -66,8 +69,8 @@
|
|||||||
<file leaf-file-name="FontTestGDX.kt" pinned="false" current-in-tab="false">
|
<file leaf-file-name="FontTestGDX.kt" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt">
|
<entry file="file://$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="325">
|
<state relative-caret-position="338">
|
||||||
<caret line="25" column="40" selection-start-line="25" selection-start-column="40" selection-end-line="25" selection-end-column="40" />
|
<caret line="26" column="36" selection-start-line="26" selection-start-column="36" selection-end-line="26" selection-end-column="36" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#384#0" expanded="true" />
|
<element signature="e#0#384#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -78,8 +81,8 @@
|
|||||||
<file leaf-file-name="testtext.txt" pinned="false" current-in-tab="false">
|
<file leaf-file-name="testtext.txt" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/testtext.txt">
|
<entry file="file://$PROJECT_DIR$/testtext.txt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="273">
|
<state relative-caret-position="52">
|
||||||
<caret line="21" column="81" selection-start-line="21" selection-start-column="81" selection-end-line="21" selection-end-column="81" />
|
<caret line="4" column="26" selection-start-line="4" selection-start-column="26" selection-end-line="4" selection-end-column="26" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -87,8 +90,8 @@
|
|||||||
<file leaf-file-name="demotext.txt" pinned="false" current-in-tab="false">
|
<file leaf-file-name="demotext.txt" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/demotext.txt">
|
<entry file="file://$PROJECT_DIR$/demotext.txt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="519">
|
<state relative-caret-position="611">
|
||||||
<caret line="85" selection-start-line="85" selection-end-line="85" />
|
<caret line="96" column="57" selection-start-line="96" selection-start-column="57" selection-end-line="96" selection-end-column="57" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -98,7 +101,7 @@
|
|||||||
<provider selected="true" editor-type-id="images" />
|
<provider selected="true" editor-type-id="images" />
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="demo.PNG" pinned="false" current-in-tab="false">
|
<file leaf-file-name="demo.PNG" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/demo.PNG">
|
<entry file="file://$PROJECT_DIR$/demo.PNG">
|
||||||
<provider selected="true" editor-type-id="images" />
|
<provider selected="true" editor-type-id="images" />
|
||||||
</entry>
|
</entry>
|
||||||
@@ -106,8 +109,8 @@
|
|||||||
<file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="false">
|
<file leaf-file-name="GameFontBase.kt" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
|
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="278">
|
<state relative-caret-position="568">
|
||||||
<caret line="528" column="99" selection-start-line="528" selection-start-column="93" selection-end-line="528" selection-end-column="99" />
|
<caret line="1091" column="26" selection-start-line="1091" selection-start-column="26" selection-end-line="1091" selection-end-column="26" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -116,8 +119,8 @@
|
|||||||
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
|
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
|
||||||
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||||
<state split_layout="FIRST">
|
<state split_layout="FIRST">
|
||||||
<first_editor relative-caret-position="117">
|
<first_editor relative-caret-position="507">
|
||||||
<caret line="9" column="25" lean-forward="true" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="25" />
|
<caret line="51" column="45" selection-start-line="51" selection-start-column="45" selection-end-line="51" selection-end-column="45" />
|
||||||
</first_editor>
|
</first_editor>
|
||||||
<second_editor>
|
<second_editor>
|
||||||
<js_state />
|
<js_state />
|
||||||
@@ -126,11 +129,11 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="CONTRIBUTORS.txt" pinned="false" current-in-tab="true">
|
<file leaf-file-name="CONTRIBUTORS.txt" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/CONTRIBUTORS.txt">
|
<entry file="file://$PROJECT_DIR$/CONTRIBUTORS.txt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state>
|
<state>
|
||||||
<caret column="23" lean-forward="true" selection-start-column="23" selection-end-column="23" />
|
<caret column="23" selection-start-column="23" selection-end-column="23" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -215,13 +218,13 @@
|
|||||||
<option value="$PROJECT_DIR$/README.md" />
|
<option value="$PROJECT_DIR$/README.md" />
|
||||||
<option value="$PROJECT_DIR$/FontTestGDX/demotext.txt" />
|
<option value="$PROJECT_DIR$/FontTestGDX/demotext.txt" />
|
||||||
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GameFontBase.kt" />
|
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GameFontBase.kt" />
|
||||||
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/testtext.txt" />
|
|
||||||
<option value="$PROJECT_DIR$/demotext.txt" />
|
|
||||||
<option value="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/CONTRIBUTORS.txt" />
|
<option value="$PROJECT_DIR$/CONTRIBUTORS.txt" />
|
||||||
|
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt" />
|
||||||
<option value="$PROJECT_DIR$/CONTRIBUTING.md" />
|
<option value="$PROJECT_DIR$/CONTRIBUTING.md" />
|
||||||
|
<option value="$PROJECT_DIR$/testtext.txt" />
|
||||||
|
<option value="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" />
|
||||||
|
<option value="$PROJECT_DIR$/demotext.txt" />
|
||||||
|
<option value="$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -514,18 +517,18 @@
|
|||||||
<window_info anchor="bottom" id="Run" order="2" weight="0.2591522" />
|
<window_info anchor="bottom" id="Run" order="2" weight="0.2591522" />
|
||||||
<window_info anchor="bottom" id="Terminal" order="7" />
|
<window_info anchor="bottom" id="Terminal" order="7" />
|
||||||
<window_info id="Designer" order="2" />
|
<window_info id="Designer" order="2" />
|
||||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.122068234" />
|
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.122068234" />
|
||||||
|
<window_info anchor="bottom" id="Find" order="1" weight="0.32931355" />
|
||||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||||
<window_info id="UI Designer" order="2" />
|
<window_info id="UI Designer" order="2" />
|
||||||
<window_info id="Favorites" order="2" side_tool="true" />
|
<window_info id="Favorites" order="2" side_tool="true" />
|
||||||
<window_info anchor="bottom" id="Debug" order="3" visible="true" weight="0.23005566" />
|
<window_info active="true" anchor="bottom" id="Debug" order="3" visible="true" weight="0.23005566" />
|
||||||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
||||||
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
||||||
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
|
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
|
||||||
<window_info anchor="bottom" id="Message" order="0" />
|
<window_info anchor="bottom" id="Message" order="0" />
|
||||||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||||
<window_info anchor="bottom" id="Find" order="1" weight="0.32931355" />
|
|
||||||
</layout>
|
</layout>
|
||||||
<layout-to-restore>
|
<layout-to-restore>
|
||||||
<window_info anchor="right" id="Palette" order="3" />
|
<window_info anchor="right" id="Palette" order="3" />
|
||||||
@@ -839,57 +842,6 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GameFontBase.kt" />
|
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GameFontBase.kt" />
|
||||||
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="6084">
|
|
||||||
<caret line="490" selection-start-line="490" selection-end-line="490" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="325">
|
|
||||||
<caret line="25" column="40" selection-start-line="25" selection-start-column="40" selection-end-line="25" selection-end-column="40" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#384#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="278">
|
|
||||||
<caret line="528" column="99" selection-start-line="528" selection-start-column="93" selection-end-line="528" selection-end-column="99" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="325">
|
|
||||||
<caret line="25" column="32" selection-start-line="25" selection-start-column="32" selection-end-line="25" selection-end-column="32" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/demotext.txt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="519">
|
|
||||||
<caret line="85" selection-start-line="85" selection-end-line="85" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/demo.PNG">
|
|
||||||
<provider selected="true" editor-type-id="images" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/testtext.txt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="273">
|
|
||||||
<caret line="21" column="81" selection-start-line="21" selection-start-column="81" selection-end-line="21" selection-end-column="81" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/testing.PNG">
|
|
||||||
<provider selected="true" editor-type-id="images" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/LICENSE.md">
|
<entry file="file://$PROJECT_DIR$/LICENSE.md">
|
||||||
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||||
<state split_layout="FIRST">
|
<state split_layout="FIRST">
|
||||||
@@ -914,11 +866,32 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/CONTRIBUTORS.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state>
|
||||||
|
<caret column="23" selection-start-column="23" selection-end-column="23" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/slick2d/GameFontBase.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="234">
|
||||||
|
<caret line="490" selection-start-line="490" selection-end-line="490" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/GlyphProps.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="28">
|
||||||
|
<caret line="7" column="22" selection-start-line="7" selection-start-column="22" selection-end-line="7" selection-end-column="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
|
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
|
||||||
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||||
<state split_layout="FIRST">
|
<state split_layout="FIRST">
|
||||||
<first_editor relative-caret-position="117">
|
<first_editor relative-caret-position="507">
|
||||||
<caret line="9" column="25" lean-forward="true" selection-start-line="9" selection-start-column="25" selection-end-line="9" selection-end-column="25" />
|
<caret line="51" column="45" selection-start-line="51" selection-start-column="45" selection-end-line="51" selection-end-column="45" />
|
||||||
</first_editor>
|
</first_editor>
|
||||||
<second_editor>
|
<second_editor>
|
||||||
<js_state />
|
<js_state />
|
||||||
@@ -926,10 +899,40 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/CONTRIBUTORS.txt">
|
<entry file="file://$PROJECT_DIR$/testing.PNG">
|
||||||
|
<provider selected="true" editor-type-id="images" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/testtext.txt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state>
|
<state relative-caret-position="52">
|
||||||
<caret column="23" lean-forward="true" selection-start-column="23" selection-end-column="23" />
|
<caret line="4" column="26" selection-start-line="4" selection-start-column="26" selection-end-line="4" selection-end-column="26" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="338">
|
||||||
|
<caret line="26" column="36" selection-start-line="26" selection-start-column="36" selection-end-line="26" selection-end-column="36" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#0#384#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/demotext.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="611">
|
||||||
|
<caret line="96" column="57" selection-start-line="96" selection-start-column="57" selection-end-line="96" selection-end-column="57" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/demo.PNG">
|
||||||
|
<provider selected="true" editor-type-id="images" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="521">
|
||||||
|
<caret line="1076" column="27" selection-start-line="1076" selection-start-column="27" selection-end-line="1076" selection-end-column="27" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ Green-tinted area (should be 10 px tall) contains the tags. Tags are defined as
|
|||||||
1 -+ 8 | (if this is zero, floorOf(width/2) will be used instead)
|
1 -+ 8 | (if this is zero, floorOf(width/2) will be used instead)
|
||||||
0 -+ 0 Align 1 Align 0 Align 1 Align before
|
0 -+ 0 Align 1 Align 0 Align 1 Align before
|
||||||
1 -+ 0 left 0 right 1 centre 1 the glyph
|
1 -+ 0 left 0 right 1 centre 1 the glyph
|
||||||
0 == Write on top of prev chars (e.g. diacritics)
|
1 == write-on-top, usually it's diatritics but some are not (e.g. devanagari vowel sign O)
|
||||||
1 == 0 Stack 1 Stack 0 Before 1 Up &
|
1 == 0 Stack 1 Stack 0 Before 1 Up &
|
||||||
(MSB) 0 == 0 up 0 down 1 &After 1 Down (e.g. U+0C48)
|
(MSB) 0 == 0 up 0 down 1 &After 1 Down (e.g. U+0C48)
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ class FontTestGDX : Game() {
|
|||||||
lateinit var camera: OrthographicCamera
|
lateinit var camera: OrthographicCamera
|
||||||
|
|
||||||
|
|
||||||
private val demotextName = "testtext.txt"
|
private val demotextName = "demotext.txt"
|
||||||
private val outimageName = "testing.png"
|
private val outimageName = "demo.png"
|
||||||
|
|
||||||
override fun create() {
|
override fun create() {
|
||||||
font = GameFontBase("./assets", flipY = false, errorOnUnknownChar = true) // must test for two flipY cases
|
font = GameFontBase("./assets", flipY = false, errorOnUnknownChar = true) // must test for two flipY cases
|
||||||
@@ -256,7 +256,7 @@ class FontTestGDX : Game() {
|
|||||||
|
|
||||||
lateinit var appConfig: LwjglApplicationConfiguration
|
lateinit var appConfig: LwjglApplicationConfiguration
|
||||||
const val TEXW = 874
|
const val TEXW = 874
|
||||||
const val TEXH = 2060
|
const val TEXH = 2400
|
||||||
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
appConfig = LwjglApplicationConfiguration()
|
appConfig = LwjglApplicationConfiguration()
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 320 KiB After Width: | Height: | Size: 320 KiB |
|
Before Width: | Height: | Size: 320 KiB After Width: | Height: | Size: 320 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
BIN
demo.PNG
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 124 KiB |
@@ -26,6 +26,7 @@ How multilingual? Real multilingual!
|
|||||||
գրիչս վայր դրի, վեր կացա և պատրաստվում էի, որ քնեմ, երբ հանկարծ դռանս զանգակը հնչեց
|
գրիչս վայր դրի, վեր կացա և պատրաստվում էի, որ քնեմ, երբ հանկարծ դռանս զանգակը հնչեց
|
||||||
ՄՇԱԿԻՉ ԿԱՄ ԿԵՆՏՐՈՆԱԿԱՆ ՄՇԱԿԻՉ ՀԱՆԳՈՒՅՑԸ ՀԱՆԴԻՍԱՆՈՒՄ Է ՀԱՄԱԿԱՐԳՉԻ ՍԱՐՔԱՎՈՐՈՒՄՆԵՐԻՑ
|
ՄՇԱԿԻՉ ԿԱՄ ԿԵՆՏՐՈՆԱԿԱՆ ՄՇԱԿԻՉ ՀԱՆԳՈՒՅՑԸ ՀԱՆԴԻՍԱՆՈՒՄ Է ՀԱՄԱԿԱՐԳՉԻ ՍԱՐՔԱՎՈՐՈՒՄՆԵՐԻՑ
|
||||||
Zəfər, jaketini də papağını da götür, bu axşam hava çox soyuq olacaq
|
Zəfər, jaketini də papağını da götür, bu axşam hava çox soyuq olacaq
|
||||||
|
আমি কাঁচ খেতে পারি, তাতে আমার কোনো ক্ষতি হয় না।
|
||||||
Под южно дърво, цъфтящо в синьо, бягаше малко пухкаво зайче
|
Под южно дърво, цъфтящо в синьо, бягаше малко пухкаво зайче
|
||||||
ᎠᏍᎦᏯᎡᎦᎢᎾᎨᎢᎣᏍᏓᎤᎩᏍᏗᎥᎴᏓᎯᎲᎢᏔᎵᏕᎦᏟᏗᏖᎸᎳᏗᏗᎧᎵᎢᏘᎴᎩ ᏙᏱᏗᏜᏫᏗᏣᏚᎦᏫᏛᏄᏓᎦᏝᏃᎠᎾᏗᎭᏞᎦᎯᎦᏘᏓᏠᎨᏏᏕᏡᎬᏢᏓᏥᏩᏝᎡᎢᎪᎢ
|
ᎠᏍᎦᏯᎡᎦᎢᎾᎨᎢᎣᏍᏓᎤᎩᏍᏗᎥᎴᏓᎯᎲᎢᏔᎵᏕᎦᏟᏗᏖᎸᎳᏗᏗᎧᎵᎢᏘᎴᎩ ᏙᏱᏗᏜᏫᏗᏣᏚᎦᏫᏛᏄᏓᎦᏝᏃᎠᎾᏗᎭᏞᎦᎯᎦᏘᏓᏠᎨᏏᏕᏡᎬᏢᏓᏥᏩᏝᎡᎢᎪᎢ
|
||||||
ᎠᎦᏂᏗᎮᎢᎫᎩᎬᏩᎴᎢᎠᏆᏅᏛᎫᏊᎾᎥᎠᏁᏙᎲᏐᏈᎵᎤᎩᎸᏓᏭᎷᏤᎢᏏᏉᏯᏌᏊ ᎤᏂᏋᎢᏡᎬᎢᎰᏩᎬᏤᎵᏍᏗᏱᎩᎱᎱᎤᎩᎴᎢᏦᎢᎠᏂᏧᏣᏨᎦᏥᎪᎥᏌᏊᎤᎶᏒᎢᎢᏡᎬᎢ
|
ᎠᎦᏂᏗᎮᎢᎫᎩᎬᏩᎴᎢᎠᏆᏅᏛᎫᏊᎾᎥᎠᏁᏙᎲᏐᏈᎵᎤᎩᎸᏓᏭᎷᏤᎢᏏᏉᏯᏌᏊ ᎤᏂᏋᎢᏡᎬᎢᎰᏩᎬᏤᎵᏍᏗᏱᎩᎱᎱᎤᎩᎴᎢᏦᎢᎠᏂᏧᏣᏨᎦᏥᎪᎥᏌᏊᎤᎶᏒᎢᎢᏡᎬᎢ
|
||||||
@@ -93,7 +94,7 @@ How multilingual? Real multilingual!
|
|||||||
Unicode References:
|
Unicode References:
|
||||||
|
|
||||||
Basic Latin Latin-1 Latin Extension A Latin Extionsion B IPA Extension Greek Cyrillic
|
Basic Latin Latin-1 Latin Extension A Latin Extionsion B IPA Extension Greek Cyrillic
|
||||||
Cyrillic Supplement Armenian Devanagari Thai Georgian Runic Cherokee Georgian Extended
|
Cyrillic Supplement Armenian Devanagari Bengali Thai Georgian Runic Cherokee Georgian Extended
|
||||||
General Punctuations CJK Symbols Kana Kana Phonetic Extension CJK Unihan Extension A CJK Unihan
|
General Punctuations CJK Symbols Kana Kana Phonetic Extension CJK Unihan Extension A CJK Unihan
|
||||||
Hangul Syllables Fullwidth Forms Kana Supplement
|
Hangul Syllables Fullwidth Forms Kana Supplement
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ data class GlyphProps(
|
|||||||
val alignWhere: Int,
|
val alignWhere: Int,
|
||||||
val alignXPos: Int,
|
val alignXPos: Int,
|
||||||
val rtl: Boolean = false,
|
val rtl: Boolean = false,
|
||||||
val stackWhere: Int = 0
|
val stackWhere: Int = 0,
|
||||||
|
var extInfo: IntArray? = null
|
||||||
) {
|
) {
|
||||||
companion object {
|
companion object {
|
||||||
const val ALIGN_LEFT = 0
|
const val ALIGN_LEFT = 0
|
||||||
@@ -24,6 +25,8 @@ data class GlyphProps(
|
|||||||
|
|
||||||
const val DIA_OVERLAY = 1
|
const val DIA_OVERLAY = 1
|
||||||
const val DIA_JOINER = 2
|
const val DIA_JOINER = 2
|
||||||
|
|
||||||
|
private fun Boolean.toInt() = if (this) 1 else 0
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(width: Int, tags: Int) : this(
|
constructor(width: Int, tags: Int) : this(
|
||||||
@@ -36,4 +39,28 @@ data class GlyphProps(
|
|||||||
)
|
)
|
||||||
|
|
||||||
fun isOverlay() = writeOnTop && alignXPos == 1
|
fun isOverlay() = writeOnTop && alignXPos == 1
|
||||||
|
|
||||||
|
override fun hashCode(): Int {
|
||||||
|
val tags = rtl.toInt() or alignXPos.shl(1) or alignWhere.shl(5) or
|
||||||
|
writeOnTop.toInt().shl(7) or stackWhere.shl(8)
|
||||||
|
|
||||||
|
var hash = -2128831034
|
||||||
|
|
||||||
|
extInfo?.forEach {
|
||||||
|
hash = hash xor it
|
||||||
|
hash = hash * 16777619
|
||||||
|
}
|
||||||
|
|
||||||
|
hash = hash xor tags
|
||||||
|
hash = hash * 167677619
|
||||||
|
|
||||||
|
return hash
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun equals(other: Any?): Boolean {
|
||||||
|
// comparing hash because I'm lazy
|
||||||
|
return other is GlyphProps && this.hashCode() == other.hashCode()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requiredExtInfoCount() = if (stackWhere == STACK_BEFORE_N_AFTER) 2 else 0
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,6 @@ import com.badlogic.gdx.graphics.Texture
|
|||||||
import com.badlogic.gdx.graphics.g2d.*
|
import com.badlogic.gdx.graphics.g2d.*
|
||||||
import net.torvald.terrarumsansbitmap.GlyphProps
|
import net.torvald.terrarumsansbitmap.GlyphProps
|
||||||
import java.io.BufferedOutputStream
|
import java.io.BufferedOutputStream
|
||||||
import java.io.File
|
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
import java.util.zip.GZIPInputStream
|
import java.util.zip.GZIPInputStream
|
||||||
|
|
||||||
@@ -522,7 +521,9 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
|
|||||||
posXbuffer[nonDiacriticCounter] + W_VAR_INIT + alignmentOffset + interchar
|
posXbuffer[nonDiacriticCounter] + W_VAR_INIT + alignmentOffset + interchar
|
||||||
else
|
else
|
||||||
posXbuffer[nonDiacriticCounter] + itsProp.width + alignmentOffset + interchar
|
posXbuffer[nonDiacriticCounter] + itsProp.width + alignmentOffset + interchar
|
||||||
|
|
||||||
nonDiacriticCounter = charIndex
|
nonDiacriticCounter = charIndex
|
||||||
|
|
||||||
stackUpwardCounter = 0
|
stackUpwardCounter = 0
|
||||||
stackDownwardCounter = 0
|
stackDownwardCounter = 0
|
||||||
}
|
}
|
||||||
@@ -536,46 +537,53 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
|
|||||||
else {
|
else {
|
||||||
// set X pos according to alignment information
|
// set X pos according to alignment information
|
||||||
posXbuffer[charIndex] = when (thisProp.alignWhere) {
|
posXbuffer[charIndex] = when (thisProp.alignWhere) {
|
||||||
GlyphProps.ALIGN_LEFT -> posXbuffer[nonDiacriticCounter]
|
GlyphProps.ALIGN_LEFT, GlyphProps.ALIGN_BEFORE -> posXbuffer[nonDiacriticCounter]
|
||||||
GlyphProps.ALIGN_RIGHT -> {
|
GlyphProps.ALIGN_RIGHT -> {
|
||||||
posXbuffer[nonDiacriticCounter] - (W_VAR_INIT - itsProp.width)
|
posXbuffer[nonDiacriticCounter] - (W_VAR_INIT - itsProp.width)
|
||||||
}
|
}
|
||||||
GlyphProps.ALIGN_CENTRE -> {
|
GlyphProps.ALIGN_CENTRE -> {
|
||||||
val alignXPos = if (itsProp.alignXPos == 0) itsProp.width.div(2) else itsProp.alignXPos
|
val alignXPos = if (itsProp.alignXPos == 0) itsProp.width.div(2) else itsProp.alignXPos
|
||||||
|
|
||||||
posXbuffer[nonDiacriticCounter] + alignXPos - (W_VAR_INIT - 1).div(2)
|
if (itsProp.alignWhere == GlyphProps.ALIGN_RIGHT) {
|
||||||
|
posXbuffer[nonDiacriticCounter] + alignXPos + (itsProp.width + 1).div(2)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
posXbuffer[nonDiacriticCounter] + alignXPos - (W_VAR_INIT - 1).div(2)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else -> throw InternalError("Unsupported alignment: ${thisProp.alignWhere}")
|
else -> throw InternalError("Unsupported alignment: ${thisProp.alignWhere}")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// set Y pos according to diacritics position
|
// set Y pos according to diacritics position
|
||||||
when (thisProp.stackWhere) {
|
if (thisProp.alignWhere == GlyphProps.ALIGN_CENTRE) {
|
||||||
GlyphProps.STACK_DOWN -> {
|
when (thisProp.stackWhere) {
|
||||||
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter
|
GlyphProps.STACK_DOWN -> {
|
||||||
stackDownwardCounter++
|
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter
|
||||||
}
|
stackDownwardCounter++
|
||||||
GlyphProps.STACK_UP -> {
|
|
||||||
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter
|
|
||||||
|
|
||||||
// shift down on lowercase if applicable
|
|
||||||
if (getSheetType(thisChar) in autoShiftDownOnLowercase &&
|
|
||||||
lastNonDiacriticChar.isLowHeight()) {
|
|
||||||
if (thisProp.alignXPos == GlyphProps.DIA_OVERLAY)
|
|
||||||
posYbuffer[charIndex] += H_OVERLAY_LOWERCASE_SHIFTDOWN
|
|
||||||
else
|
|
||||||
posYbuffer[charIndex] += H_STACKUP_LOWERCASE_SHIFTDOWN
|
|
||||||
}
|
}
|
||||||
|
GlyphProps.STACK_UP -> {
|
||||||
|
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter
|
||||||
|
|
||||||
stackUpwardCounter++
|
// shift down on lowercase if applicable
|
||||||
}
|
if (getSheetType(thisChar) in autoShiftDownOnLowercase &&
|
||||||
GlyphProps.STACK_UP_N_DOWN -> {
|
lastNonDiacriticChar.isLowHeight()) {
|
||||||
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter
|
if (thisProp.alignXPos == GlyphProps.DIA_OVERLAY)
|
||||||
stackDownwardCounter++
|
posYbuffer[charIndex] += H_OVERLAY_LOWERCASE_SHIFTDOWN
|
||||||
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter
|
else
|
||||||
stackUpwardCounter++
|
posYbuffer[charIndex] += H_STACKUP_LOWERCASE_SHIFTDOWN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stackUpwardCounter++
|
||||||
|
}
|
||||||
|
GlyphProps.STACK_UP_N_DOWN -> {
|
||||||
|
posYbuffer[charIndex] = H_DIACRITICS * stackDownwardCounter
|
||||||
|
stackDownwardCounter++
|
||||||
|
posYbuffer[charIndex] = -H_DIACRITICS * stackUpwardCounter
|
||||||
|
stackUpwardCounter++
|
||||||
|
}
|
||||||
// for BEFORE_N_AFTER, do nothing in here
|
// for BEFORE_N_AFTER, do nothing in here
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -972,6 +980,25 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
|
|||||||
glyphWidth = -glyphWidth*/
|
glyphWidth = -glyphWidth*/
|
||||||
|
|
||||||
glyphProps[code] = GlyphProps(width, tags)
|
glyphProps[code] = GlyphProps(width, tags)
|
||||||
|
|
||||||
|
// extra info
|
||||||
|
val extCount = glyphProps[code]?.requiredExtInfoCount() ?: 0
|
||||||
|
if (extCount > 0) {
|
||||||
|
|
||||||
|
glyphProps[code]?.extInfo = IntArray(extCount)
|
||||||
|
|
||||||
|
for (x in 0 until extCount) {
|
||||||
|
var info = 0
|
||||||
|
for (y in 0..18) {
|
||||||
|
// if ALPHA is not zero, assume it's 1
|
||||||
|
if (pixmap.getPixel(cellX + x, cellY + y).and(0xFF) != 0) {
|
||||||
|
info = info or (1 shl y)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
glyphProps[code]!!.extInfo!![x] = info
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -998,7 +1025,9 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
|
|||||||
glyphProps[0x1D79] = GlyphProps(9, 0)
|
glyphProps[0x1D79] = GlyphProps(9, 0)
|
||||||
|
|
||||||
|
|
||||||
glyphProps[0xFFFD] = nullProp
|
// U+007F is DEL originally, but this font stores bitmap of Replacement Character (U+FFFD)
|
||||||
|
// to this position. String replacer will replace U+FFFD into U+007F.
|
||||||
|
glyphProps[0x7F] = GlyphProps(15, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val glyphLayout = GlyphLayout()
|
private val glyphLayout = GlyphLayout()
|
||||||
@@ -1021,15 +1050,34 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
|
|||||||
if (i < this.lastIndex && c.isHighSurrogate()) {
|
if (i < this.lastIndex && c.isHighSurrogate()) {
|
||||||
val cNext = this[i + 1]
|
val cNext = this[i + 1]
|
||||||
|
|
||||||
if (!cNext.isLowSurrogate())
|
if (!cNext.isLowSurrogate()) {
|
||||||
throw IllegalArgumentException("Malformed UTF-16 String: High surrogate must be paired with low surrogate")
|
// replace with Unicode replacement char
|
||||||
|
seq.add(0xFFFD)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
val H = c
|
||||||
|
val L = cNext
|
||||||
|
|
||||||
val H = c
|
seq.add(Character.toCodePoint(H, L))
|
||||||
val L = cNext
|
|
||||||
|
|
||||||
seq.add(Character.toCodePoint(H, L))
|
i++ // skip next char (guaranteed to be Low Surrogate)
|
||||||
|
}
|
||||||
i++ // skip next char (guaranteed to be Low Surrogate)
|
}
|
||||||
|
// rearrange {letter, before-and-after diacritics} as {letter, before-diacritics, after-diacritics}
|
||||||
|
// {letter, before-diacritics} part will be dealt with swapping code below
|
||||||
|
// DOES NOT WORK if said diacritics has codepoint > 0xFFFF
|
||||||
|
else if (i < this.lastIndex && this[i + 1].toInt() <= 0xFFFF &&
|
||||||
|
glyphProps[this[i + 1].toInt()]?.stackWhere == GlyphProps.STACK_BEFORE_N_AFTER) {
|
||||||
|
val diacriticsProp = glyphProps[this[i + 1].toInt()]!!
|
||||||
|
seq.add(c.toInt())
|
||||||
|
seq.add(diacriticsProp.extInfo!![0])
|
||||||
|
seq.add(diacriticsProp.extInfo!![1])
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
// U+007F is DEL originally, but this font stores bitmap of Replacement Character (U+FFFD)
|
||||||
|
// to this position. This line will replace U+FFFD into U+007F.
|
||||||
|
else if (c == '<27>') {
|
||||||
|
seq.add(0x7F)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
seq.add(c.toInt())
|
seq.add(c.toInt())
|
||||||
@@ -1038,10 +1086,10 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
|
|||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// swap position of {letter, diacritics that comes before the letter}
|
// swap position of {letter, diacritics that comes before the letter}
|
||||||
i = 1
|
i = 1
|
||||||
while (i <= seq.lastIndex) {
|
while (i <= seq.lastIndex) {
|
||||||
|
|
||||||
if ((glyphProps[seq[i]] ?: nullProp).alignWhere == GlyphProps.ALIGN_BEFORE) {
|
if ((glyphProps[seq[i]] ?: nullProp).alignWhere == GlyphProps.ALIGN_BEFORE) {
|
||||||
val t = seq[i - 1]
|
val t = seq[i - 1]
|
||||||
seq[i - 1] = seq[i]
|
seq[i - 1] = seq[i]
|
||||||
@@ -1051,7 +1099,6 @@ class GameFontBase(fontDir: String, val noShadow: Boolean = false, val flipY: Bo
|
|||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return seq
|
return seq
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
BIN
testing.PNG
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 14 KiB |
27
testtext.txt
@@ -1,22 +1,5 @@
|
|||||||
O̸
|
কঁা (incorrect order, ??? rendering)
|
||||||
o̸
|
কাঁ (correct order, ??? rendering)
|
||||||
|
हैहैहै
|
||||||
Received Pronunciation IPA: /ˌɪntəˈnæʃənəl/, [ˌɪntəˈnæʃənəɫ]
|
সিওল কোরিয়া রাজধানী
|
||||||
General American IPA: /ˌɪntɚˈnæʃənəl/, [ˌɪntɚˈnæʃənəɫ], [ˌɪɾ̃ɚˈnæʃənəɫ]
|
सियोल कोरिया की राजधानी है
|
||||||
Rhymes: -ɛntəl (wtf wiktionary ??)
|
|
||||||
|
|
||||||
ˈkʰomɐ gɛts ɐ ˈkʰjuɚ wɛl çiəz ə ˈstʌɹi fɔ ˈju ˈsɐɾə ˈpɛɾi wɔz ə bɛtʰəˈna˞li ˈnʌɚs hu hæd bin ˈwʌ˞kɪŋ deɪli æt æn
|
|
||||||
ˈɔʊl̴də d͡zʉ in ə dɪˈzʌɚtɪdə dɪsˈtɹʷɪkt ɔv zə tʰ ˈtʰɛɹɪtəɹi soʊ ʃi wʌz ˈvɛɹi ˈhæpi s tʉ stat ə njʉ d͡ʒɔb æt ə
|
|
||||||
ˈsʌbʌb˺ ˈpɹaɪbɛt pɹaktis in noʊsə ˈskweɚ niə zə ˈdjʉk ˈstoʊi ˈtaʊɚ ðæt ˈeɾiə wəz mʌt͡ʃ ˈniɾə fɔ hɐ ænd mɔə
|
|
||||||
tʉ laɪk˺ hɐ ˈlaɪkiŋgə ˈibn̩ so ɔ̃ ha fa˞st ˈmɔnɪŋ ʃi fɛlt͡s s t͡stɹɛst ʃi eɪt ə bɔl̴ ɔb˺ ˈpɔɹʷɪd͡ʒ t͡ʃɛkt hɐ˞sɛlf ɪn ðə
|
|
||||||
ˈmiɹəɚ ænd wɑʃt hɐ˞ ɸeɪs ɪn ə ˈhʌ˞li zɛn ʃi pʊt ɑn ə pɹeɪn bə ˈjɛloʊ dɹɛs ænd ə ɸʊlɪɸʊlis ˈd͡ʒækɛt pikt ap
|
|
||||||
hɐ˞ kʰit ænd ˈhɛdɪdə fɔ ˈwʌ˞kʰ
|
|
||||||
|
|
||||||
ˈkʊmɐ gɛts ə ˈkjɚ wɛl̴ ˈɸ͜hi˞ɹɪzə ˈstʌɾi fɔ ʔəju saɹəʔ ˈpɛɹi wɑzə bə ˈbɛtənəɹi bɛt˺ ˈbɛtəˌɹɪnəɹi ənʌs f f hu havə bin
|
|
||||||
ˈw̰ʌ˞kɪŋ deɹi ʔat˺ ʔan ʔat an ol̴d͜zʉ in zə diˈzɑɹɛd d ˈdistɹɪkt ɔb ðəʔ ˈtɛɹɪtəɹʷi soʊ çi wʌz ˈbɛɹɪ ˈhɑpi tʉ stɑ˞t˺
|
|
||||||
njʉ ə ˈnjʉ d͡ʒoʊb̥ ɐʔ to s̩ˈpɚb pɹaɪvɛt ˈpɹaktɪs ɪn nɔsˈkwɛɚ niə ðə ˈdʌk sɹit˺ t ˈtɔʌ˞ zat˺ ˈeɹiə wɑz mat͡ʃ ˈniɹɪ ˈniɹə fɔ
|
|
||||||
hʌ̥ɕʉ̥ fɔ hɚ ændə mɔ̰ mɔə tu ˈħə ˈɹaɪkɪŋ ˈivn̩ zoʊ ɔn ɸ hɐ fɐst mɔɹɪŋ ʃi fɛlt ˈsɹɛɾɛ ɛ̰ ʃi eɪt˺ ʌ boʊl̴ ɔb ˈpɹis æ̃ ˈt͡ʃɛkʰt
|
|
||||||
ˈhɑsɛlf ɪnə ˈmiɹə and wɔʃt hɐ fʷeɪs ɪn ˈhʌ˞ɹi ʌ ˈðɛn si pʊt ɔn ðə pɹeɪnə ˈjɛɹoʊ ˈdɹɛsɪz an fɹis ˈd͡ʒækɛt n̩ pik ʌpt
|
|
||||||
ˈhɑ kɪt an ˈhɛdɪd fɔ ə fɔ wɔk fɔ ˈwʌ˞kʰ æ̰̃
|
|
||||||
|
|
||||||
acegijmnopqrsuvwxyzɱɳʙɾɽʒʂʐʋɹɻɥɟɡɢʛȵɲŋɴʀɕʑçʝxɣχʁʜʍɰʟɨʉɯuʊøɘɵɤəɛœɜɞʌɔæɐɶɑɒɚɝɩɪʅʈʏʞ
|
|
||||||