Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ea7bf8c1b | ||
|
|
f5bc1f8178 | ||
|
|
2a39ff0d35 | ||
|
|
ecffe22d01 | ||
|
|
e1c48ace6b | ||
|
|
efff35f0e3 | ||
|
|
f10962ceda | ||
|
|
37d21c6f6c | ||
|
|
ff7c0f8df3 | ||
|
|
c863148f13 | ||
|
|
69e12f0205 | ||
|
|
6bf4a5a995 | ||
|
|
38bdb28b64 | ||
|
|
8ba1a4a005 | ||
|
|
70da6a5142 | ||
|
|
2f6126d0ea | ||
|
|
189a427edc | ||
|
|
21dbf348d0 | ||
|
|
ff455ef2fd | ||
|
|
d7029c3841 | ||
|
|
2d894613df | ||
|
|
60a1da1336 | ||
|
|
123d856853 | ||
|
|
617e0bc5b1 | ||
|
|
0a873b3801 | ||
|
|
3c97253c9a | ||
|
|
f228c331cf |
3
.gitattributes
vendored
@@ -8,3 +8,6 @@
|
||||
*.kra filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
*.tga binary diff=hex
|
||||
*.kra binary diff=hex
|
||||
|
||||
124
.idea/uiDesigner.xml
generated
Normal file
@@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
||||
85
.idea/workspace.xml
generated
Executable file → Normal file
@@ -10,34 +10,30 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="22c5bc80-996c-4846-b173-7dc8c2096fe3" name="Default" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/.idea/libraries/lib.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/libraries/badlogicgames_gdx.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/libraries/badlogicgames_gdx_backend_lwjgl3.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/runConfigurations.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/BuildJAR_TerrarumSansBitmap.iml" beforeDir="false" afterPath="$PROJECT_DIR$/BuildJAR_TerrarumSansBitmap.iml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FontTestGDX/FontTestGDX.iml" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/FontTestGDX.iml" 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/cyrilic_bulgarian_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cyrilic_bulgarian_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/cyrilic_serbian_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cyrilic_serbian_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/cyrilic_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cyrilic_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/greek_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/greek_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/latinExtA_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtA_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/latinExtB_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtB_variable.tga" 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/cjkpunct.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cjkpunct.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/currencies_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/currencies_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/futhark.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/futhark.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/latinExtC_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtC_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/latinExtD_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtD_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/latinExt_additional_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExt_additional_variable.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/demo.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/demo.PNG" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/ascii_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/ascii_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/cyrilic_bulgarian_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_bulgarian_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/cyrilic_serbian_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_serbian_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/cyrilic_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/greek_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/greek_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/latinExtA_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtA_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/latinExtB_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtB_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/latinExtC_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtC_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/latinExtD_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtD_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/latinExt_additional_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExt_additional_variable.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/richtext_furigana.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/richtext_furigana.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/typewriter/typewriter_intl_qwerty.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/typewriter/typewriter_intl_qwerty.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/typewriter/typewriter_ko_3set-390.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/typewriter/typewriter_ko_3set-390.tga" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/assets/wenquanyi.tga.gz" beforeDir="false" afterPath="$PROJECT_DIR$/assets/wenquanyi.tga.gz" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/font_drawing_template.png" beforeDir="false" afterPath="$PROJECT_DIR$/font_drawing_template.png" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/glyph_height_pos_annotation.png" beforeDir="false" afterPath="$PROJECT_DIR$/glyph_height_pos_annotation.png" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/samples/wikipedia_x86.png" beforeDir="false" afterPath="$PROJECT_DIR$/samples/wikipedia_x86.png" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/terrarum_sans_cyrillic_2.png" beforeDir="false" afterPath="$PROJECT_DIR$/terrarum_sans_cyrillic_2.png" 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" />
|
||||
<change beforePath="$PROJECT_DIR$/width_bit_encoding_annotated.png" beforeDir="false" afterPath="$PROJECT_DIR$/width_bit_encoding_annotated.png" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/alphnum_glyphs_master.kra" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/alphnum_glyphs_master.kra" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/alphnum_glyphs_resized.kra" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/alphnum_glyphs_resized.kra" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/hangul_3set_glyphs_master.kra" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/hangul_3set_glyphs_master.kra" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_input_template.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_input_template.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_intl_qwerty.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_intl_qwerty.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_ko_3set-390.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_ko_3set-390.psd" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_ko_3set_glyphs_resized.kra" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/typewriter_input/typewriter_ko_3set_glyphs_resized.kra" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -64,26 +60,22 @@
|
||||
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
|
||||
</file-type-list>
|
||||
</component>
|
||||
<component name="MarkdownSettingsMigration">
|
||||
<option name="stateVersion" value="1" />
|
||||
</component>
|
||||
<component name="ProjectId" id="1aVE5t6KObkWt36lb07GBy1GY1S" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="Downloaded.Files.Path.Enabled" value="false" />
|
||||
<property name="Repository.Attach.Annotations" value="false" />
|
||||
<property name="Repository.Attach.JavaDocs" value="false" />
|
||||
<property name="Repository.Attach.Sources" value="false" />
|
||||
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||
<property name="SearchEverywhereHistoryKey" value="HashMap	PSI	JAVA://java.util.HashMap soft wr	ACTION	EditorToggleUseSoftWraps" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/lib" />
|
||||
<property name="project.structure.last.edited" value="Libraries" />
|
||||
<property name="project.structure.proportion" value="0.15" />
|
||||
<property name="project.structure.side.proportion" value="0.32068965" />
|
||||
<property name="settings.editor.selected.configurable" value="preferences.keymap" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"last_opened_file_path": "/home/torvald/Documents/Terrarum-sans-bitmap",
|
||||
"project.structure.last.edited": "Artifacts",
|
||||
"project.structure.proportion": "0.0",
|
||||
"project.structure.side.proportion": "0.0"
|
||||
}
|
||||
}</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\" />
|
||||
@@ -91,7 +83,7 @@
|
||||
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\FontTestGDX\src" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<component name="RunManager" selected="Kotlin.FontTestGDXKt">
|
||||
<configuration default="true" type="Applet">
|
||||
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
|
||||
<method v="2">
|
||||
@@ -134,6 +126,13 @@
|
||||
</option>
|
||||
</method>
|
||||
</configuration>
|
||||
<configuration name="TypewriterGDXKt" type="JetRunConfigurationType" temporary="true" nameIsGenerated="true">
|
||||
<option name="MAIN_CLASS_NAME" value="TypewriterGDXKt" />
|
||||
<module name="FontTestGDX" />
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
|
||||
<option name="filePath" />
|
||||
<method v="2">
|
||||
@@ -161,6 +160,7 @@
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Kotlin.FontTestGDXKt" />
|
||||
<item itemvalue="Kotlin.TypewriterGDXKt" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
@@ -197,7 +197,6 @@
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
<option name="oldMeFiltersMigrated" value="true" />
|
||||
</component>
|
||||
<component name="XSLT-Support.FileAssociations.UIState">
|
||||
<expand />
|
||||
|
||||
4
BuildJAR_TerrarumSansBitmap.iml
Executable file → Normal file
@@ -5,9 +5,9 @@
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="jdk" jdkName="1.8.0_242" jdkType="JavaSDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||
<orderEntry type="library" name="lib" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="lib" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
2
FontTestGDX/FontTestGDX.iml
Executable file → Normal file
@@ -5,7 +5,7 @@
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="jdk" jdkName="1.8.0_242" jdkType="JavaSDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="BuildJAR_TerrarumSansBitmap" />
|
||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2017-2022 see CONTRIBUTORS.txt
|
||||
Copyright (c) 2017-2024 CuriousTorvald (minjaesong)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
53
README.md
@@ -8,10 +8,10 @@ The JAR package is meant to be used with LibGDX (extends ```BitmapFont``` class)
|
||||
|
||||
The issue page is open. If you have some issues to submit, or have a question, please leave it on the page.
|
||||
|
||||
#### Little notes
|
||||
- To display Bulgarian/Serbian variants, you need special Control Characters. (GameFontBase.charsetOverrideBulgarian -- U+FFFC1; GameFontBase.charsetOverrideSerbian -- U+FFFC2)
|
||||
- All Han characters are in Chinese variant, no other variants are to be supported as most Chinese, Japanese and Korean people can understand other's variant and as long as I can, we don't bother anyway.
|
||||
- Indian script in general is not perfect: right now this font will never do the proper ligatures (I can't draw all the 1 224 possible combinations). Hopefully it's still be able to understand without them.
|
||||
#### Notes and Limitations
|
||||
- Displaying Bulgarian/Serbian variants of Cyrillic requires special Control Characters. (`GameFontBase.charsetOverrideBulgarian` -- U+FFFC1; `GameFontBase.charsetOverrideSerbian` -- U+FFFC2)
|
||||
- All Han characters are in Mainland Chinese variant. There is no plan to support the other variants unless there is someone willing to do the drawing of the characters
|
||||
- Only the Devanagari and Tamil has full (as much as I can) ligature support for Indic scripts -- Bengali script does not have any ligature support
|
||||
- Slick2d versions are now unsupported. I couldn't extend myself to work on both versions, but I'm still welcome to merge your pull requests.
|
||||
|
||||
### Design Goals
|
||||
@@ -33,12 +33,14 @@ The issue page is open. If you have some issues to submit, or have a question, p
|
||||
|
||||
On your code (Kotlin):
|
||||
|
||||
import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap
|
||||
|
||||
class YourGame : Game() {
|
||||
|
||||
lateinit var fontGame: Font
|
||||
|
||||
override fun create() {
|
||||
fontGame = GameFontBase(path_to_assets)
|
||||
fontGame = TerrarumSansBitmap(path_to_assets, ...)
|
||||
...
|
||||
}
|
||||
|
||||
@@ -53,12 +55,14 @@ On your code (Kotlin):
|
||||
|
||||
On your code (Java):
|
||||
|
||||
import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap;
|
||||
|
||||
class YourGame extends BasicGame {
|
||||
|
||||
Font fontGame;
|
||||
|
||||
@Override void create() {
|
||||
fontGame = new GameFontBase(path_to_assets);
|
||||
fontGame = new TerrarumSansBitmap(path_to_assets, ...);
|
||||
...
|
||||
}
|
||||
|
||||
@@ -71,43 +75,6 @@ On your code (Java):
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
### Using on Slick2d (legacy version only)
|
||||
|
||||
On your code (Kotlin):
|
||||
|
||||
class YourGame : BasicGame("YourGameName") {
|
||||
|
||||
lateinit var fontGame: Font
|
||||
|
||||
override fun init(gc: GameContainer) {
|
||||
fontGame = GameFontBase(path_to_assets)
|
||||
...
|
||||
}
|
||||
|
||||
override fun render(gc: GameContainer, g: Graphics) {
|
||||
g.font = fontGame
|
||||
g.drawString(...)
|
||||
}
|
||||
}
|
||||
|
||||
On your code (Java):
|
||||
|
||||
class YourGame extends BasicGame {
|
||||
|
||||
Font fontGame;
|
||||
|
||||
@Override void init(GameContainer gc) {
|
||||
fontGame = new GameFontBase(path_to_assets);
|
||||
...
|
||||
}
|
||||
|
||||
@Override void render(GameContainer gc, Graphics g) {
|
||||
g.setFont(fontGame);
|
||||
g.drawString(...);
|
||||
}
|
||||
}
|
||||
|
||||
### How to Use Color Code
|
||||
|
||||
Color codes are individual unicode characters. While you can somehow make a raw character and paste in on your code, it's certainly not desirable. Fortunately, we're also providing utility functions for the color codes.
|
||||
|
||||
BIN
assets/ascii_variable.tga
LFS
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 130 B |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 130 B |
BIN
assets/cyrilic_variable.tga
LFS
BIN
assets/devanagari_variable.tga
LFS
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 130 B |
BIN
assets/hangul_johab.tga
LFS
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 130 B |
BIN
assets/latinExtD_variable.tga
LFS
BIN
assets/puae000-e0ff.tga
LFS
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 130 B |
BIN
assets/sundanese_variable.tga
LFS
|
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 131 B |
BIN
demo.PNG
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Terrarum Sans Bitmap
|
||||
*
|
||||
* Copyright (c) 2017-2022 see CONTRIBUTORS.txt
|
||||
* Copyright (c) 2017-2024 see CONTRIBUTORS.txt
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -173,7 +173,7 @@ class TerrarumSansBitmap(
|
||||
private val glyphProps = HashMap<CodePoint, GlyphProps>()
|
||||
private val sheets: Array<PixmapRegionPack>
|
||||
|
||||
private var charsetOverride = 0
|
||||
// private var charsetOverride = 0
|
||||
|
||||
private val tempDir = System.getProperty("java.io.tmpdir")
|
||||
// private val tempFiles = ArrayList<String>()
|
||||
@@ -339,7 +339,7 @@ class TerrarumSansBitmap(
|
||||
|
||||
// always draw at integer position; this is bitmap font after all
|
||||
val x = Math.round(x)
|
||||
val y = Math.round(y)
|
||||
val y = Math.round(y + (lineHeight - 20 * scale) / 2)
|
||||
|
||||
val charSeqHash = newCodepoints.getHash()
|
||||
|
||||
@@ -375,8 +375,9 @@ class TerrarumSansBitmap(
|
||||
var index = 0
|
||||
while (index <= textBuffer.lastIndex) {
|
||||
try {
|
||||
val c = textBuffer[index]
|
||||
var c = textBuffer[index]
|
||||
val sheetID = getSheetType(c)
|
||||
|
||||
val (sheetX, sheetY) =
|
||||
if (index == 0) getSheetwisePosition(0, c)
|
||||
else getSheetwisePosition(textBuffer[index - 1], c)
|
||||
@@ -390,9 +391,6 @@ class TerrarumSansBitmap(
|
||||
renderCol = getColour(c)
|
||||
}
|
||||
}
|
||||
else if (isCharsetOverride(c)) {
|
||||
charsetOverride = c - CHARSET_OVERRIDE_DEFAULT
|
||||
}
|
||||
else if (sheetID == SHEET_HANGUL) {
|
||||
// Flookahead for {I, P, F}
|
||||
|
||||
@@ -491,9 +489,9 @@ class TerrarumSansBitmap(
|
||||
}
|
||||
|
||||
fun getSheetType(c: CodePoint): Int {
|
||||
if (charsetOverride == 1 && isBulgarian(c))
|
||||
if (isBulgarian(c))
|
||||
return SHEET_BULGARIAN_VARW
|
||||
else if (charsetOverride == 2 && isBulgarian(c))
|
||||
else if (isSerbian(c))
|
||||
return SHEET_SERBIAN_VARW
|
||||
else if (isHangul(c))
|
||||
return SHEET_HANGUL
|
||||
@@ -525,7 +523,8 @@ class TerrarumSansBitmap(
|
||||
SHEET_IPA_VARW -> ipaIndexY(ch)
|
||||
SHEET_RUNIC -> runicIndexY(ch)
|
||||
SHEET_LATIN_EXT_ADD_VARW -> latinExtAddY(ch)
|
||||
SHEET_BULGARIAN_VARW, SHEET_SERBIAN_VARW -> cyrilicIndexY(ch)
|
||||
SHEET_BULGARIAN_VARW -> bulgarianIndexY(ch)
|
||||
SHEET_SERBIAN_VARW -> serbianIndexY(ch)
|
||||
SHEET_TSALAGI_VARW -> cherokeeIndexY(ch)
|
||||
SHEET_PHONETIC_EXT_VARW -> phoneticExtIndexY(ch)
|
||||
SHEET_DEVANAGARI_VARW -> devanagariIndexY(ch)
|
||||
@@ -656,6 +655,7 @@ class TerrarumSansBitmap(
|
||||
// if (stackWhere == GlyphProps.STACK_DONT) dbgprn("Diacritics Don't stack: ${code.charInfo()}")
|
||||
// if (stackWhere == GlyphProps.STACK_DOWN) dbgprn("Diacritics stack down: ${code.charInfo()}")
|
||||
// if (writeOnTop > -1 && alignWhere == GlyphProps.ALIGN_RIGHT && width > 0) dbgprn("Diacritics aligned to the right with width of $width: ${code.charInfo()}")
|
||||
// if (code in 0xF0000 until 0xF0060) dbgprn("Code ${code.toString(16)} width: $width")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -742,7 +742,8 @@ class TerrarumSansBitmap(
|
||||
val kerning = getKerning(lastNonDiacriticChar, thisChar)
|
||||
|
||||
|
||||
//dbgprn("char: ${thisChar.charInfo()}\nproperties: $thisProp")
|
||||
// if (thisChar in 0xF0000 until 0xF0060)
|
||||
// dbgprn("char: ${thisChar.charInfo()}\nproperties: $thisProp")
|
||||
|
||||
|
||||
var alignmentOffset = when (thisProp.alignWhere) {
|
||||
@@ -954,6 +955,7 @@ class TerrarumSansBitmap(
|
||||
val seq2 = CodepointSequence()
|
||||
val seq3 = CodepointSequence()
|
||||
val seq4 = CodepointSequence()
|
||||
val seq5 = CodepointSequence()
|
||||
val dis = this.utf16to32()
|
||||
|
||||
var i = 0
|
||||
@@ -1288,6 +1290,7 @@ class TerrarumSansBitmap(
|
||||
|
||||
val yankedCharacters = Stack<Pair<Int, CodePoint>>() // Stack of <Position, CodePoint>; codepoint use -1 if not applicable
|
||||
var yankedDevanagariRaStatus = intArrayOf(0,0) // 0: none, 1: consonants, 2: virama, 3: vowel for this syllable
|
||||
var sawLeftI = false
|
||||
fun changeRaStatus(n: Int) {
|
||||
yankedDevanagariRaStatus[0] = yankedDevanagariRaStatus[1]
|
||||
yankedDevanagariRaStatus[1] = n
|
||||
@@ -1295,13 +1298,15 @@ class TerrarumSansBitmap(
|
||||
fun resetRaStatus() {
|
||||
yankedDevanagariRaStatus[0] = 0
|
||||
yankedDevanagariRaStatus[1] = 0
|
||||
|
||||
sawLeftI = false
|
||||
}
|
||||
|
||||
fun emptyOutYanked() {
|
||||
while (!yankedCharacters.empty()) {
|
||||
val poppedChar = yankedCharacters.pop()
|
||||
if (poppedChar.second == DEVANAGARI_RA)
|
||||
if (seq4.last() in devanagariSuperscripts)
|
||||
if (seq4.last() in devanagariSuperscripts || sawLeftI)
|
||||
seq4.add(DEVANAGARI_RA_SUPER_COMPLEX)
|
||||
else
|
||||
seq4.add(DEVANAGARI_RA_SUPER)
|
||||
@@ -1335,7 +1340,7 @@ class TerrarumSansBitmap(
|
||||
seq4.add(c)
|
||||
changeRaStatus(1)
|
||||
}
|
||||
else if (yankedDevanagariRaStatus[1] in listOf(1,3) && devanariConsonantsHalfs.contains(c)) {
|
||||
else if (yankedDevanagariRaStatus[1] in listOf(1,3,5) && devanariConsonantsHalfs.contains(c)) {
|
||||
dbgprnLig(" Consonants Half Form (${yankedDevanagariRaStatus[1]} -> 3)")
|
||||
seq4.add(c)
|
||||
changeRaStatus(3)
|
||||
@@ -1344,6 +1349,16 @@ class TerrarumSansBitmap(
|
||||
dbgprnLig(" Consonants after Left Vowel (5 -> 1)")
|
||||
seq4.add(c)
|
||||
changeRaStatus(1)
|
||||
|
||||
if (yankedDevanagariRaStatus[1] > 0) {
|
||||
dbgprnLig(" Popping out RAsup (2)")
|
||||
yankedCharacters.pop()
|
||||
if (seq4.last() in devanagariSuperscripts || sawLeftI)
|
||||
seq4.add(DEVANAGARI_RA_SUPER_COMPLEX)
|
||||
else
|
||||
seq4.add(DEVANAGARI_RA_SUPER)
|
||||
resetRaStatus()
|
||||
}
|
||||
}
|
||||
else if ((yankedDevanagariRaStatus[1] > 0) && devanagariRightVowels.contains(c)) {
|
||||
dbgprnLig(" Right Vowels (${yankedDevanagariRaStatus[1]} -> 4)")
|
||||
@@ -1352,6 +1367,7 @@ class TerrarumSansBitmap(
|
||||
}
|
||||
else if ((yankedDevanagariRaStatus[1] in 1..3) && devanagariVowels.contains(c)) {
|
||||
dbgprnLig(" Left Vowels (${yankedDevanagariRaStatus[1]} -> 5)")
|
||||
sawLeftI = true
|
||||
seq4.add(c)
|
||||
changeRaStatus(5)
|
||||
}
|
||||
@@ -1364,7 +1380,7 @@ class TerrarumSansBitmap(
|
||||
else if (yankedDevanagariRaStatus[1] > 0) {
|
||||
dbgprnLig(" Popping out RAsup")
|
||||
yankedCharacters.pop()
|
||||
if (seq4.last() in devanagariSuperscripts)
|
||||
if (seq4.last() in devanagariSuperscripts || sawLeftI)
|
||||
seq4.add(DEVANAGARI_RA_SUPER_COMPLEX)
|
||||
else
|
||||
seq4.add(DEVANAGARI_RA_SUPER)
|
||||
@@ -1386,11 +1402,10 @@ class TerrarumSansBitmap(
|
||||
|
||||
seq4.add(0) // add dummy terminator
|
||||
|
||||
// println(seq4.joinToString(" "))
|
||||
// println("seq4 = " + seq4.joinToString(" ") { it.toCh() })
|
||||
|
||||
// replace devanagari I/II with variants
|
||||
i = 0
|
||||
var lenacc = 0
|
||||
while (i < seq4.size) {
|
||||
val cPrev = seq4.getOrElse(i - 1) { -1 }
|
||||
val c = seq4[i]
|
||||
@@ -1434,7 +1449,27 @@ class TerrarumSansBitmap(
|
||||
i++
|
||||
}
|
||||
|
||||
return seq4
|
||||
|
||||
// process charset overriding
|
||||
i = 0
|
||||
var charsetOverride = 0
|
||||
while (i < seq4.size) {
|
||||
val c = seq4[i]
|
||||
if (isCharsetOverride(c))
|
||||
charsetOverride = c - CHARSET_OVERRIDE_DEFAULT
|
||||
else {
|
||||
if (c in altCharsetCodepointDomains[charsetOverride])
|
||||
seq5.add(c + altCharsetCodepointOffsets[charsetOverride])
|
||||
else
|
||||
seq5.add(c)
|
||||
}
|
||||
|
||||
i++
|
||||
}
|
||||
|
||||
// println("seq5 = " + seq5.joinToString(" ") { it.toCh() })
|
||||
|
||||
return seq5
|
||||
}
|
||||
|
||||
private fun dbgprnLig(i: Any) { if (false) println("[${this.javaClass.simpleName}] $i") }
|
||||
@@ -1458,14 +1493,21 @@ class TerrarumSansBitmap(
|
||||
0xF0104 -> "Hu"
|
||||
0xF0105 -> "Huu"
|
||||
0xF010B -> "ᴿᵃ"
|
||||
0xF010C -> "ᴿ¹"
|
||||
0xF010D -> "ᴿ²"
|
||||
0xF010E -> "DDRA"
|
||||
0xF010F -> "ᶴ"
|
||||
0xF024C -> "Resh"
|
||||
in 0xF0110..0xF011F -> "I-${(this - 0xF0110 + 1)}"
|
||||
in 0xF0120..0xF012F -> "II-${(this - 0xF0120 + 1)}"
|
||||
in 0xF0140 until 0xF0140+devaSyll.size -> devaSyll[this - 0xF0140]
|
||||
in 0xF0230 until 0xF0230+devaSyll.size -> devaSyll[this - 0xF0230] + "ʰ"
|
||||
in 0xF0320 until 0xF0320+devaSyll.size -> devaSyll[this - 0xF0320] + ".R"
|
||||
in 0xF0410 until 0xF0410+devaSyll.size -> devaSyll[this - 0xF0410] + ".Rʰ"
|
||||
else -> this.toHex()
|
||||
else -> "<${this.toHex()}>"
|
||||
}
|
||||
|
||||
|
||||
/** Takes input string, do normalisation, and returns sequence of codepoints (Int)
|
||||
*
|
||||
* UTF-16 to ArrayList of Int. UTF-16 is because of Java
|
||||
@@ -2113,6 +2155,18 @@ class TerrarumSansBitmap(
|
||||
)
|
||||
private val codeRangeHangulCompat = 0x3130..0x318F
|
||||
|
||||
private val altCharsetCodepointOffsets = arrayOf(
|
||||
0, // null
|
||||
0xF0000 - 0x400, // bulgarian
|
||||
0xF0060 - 0x400 // serbian
|
||||
)
|
||||
|
||||
private val altCharsetCodepointDomains = arrayOf(
|
||||
0..0x10FFFF,
|
||||
0x400..0x45F,
|
||||
0x400..0x45F
|
||||
)
|
||||
|
||||
private val diacriticDotRemoval = hashMapOf(
|
||||
'i'.toInt() to 0x131,
|
||||
'j'.toInt() to 0x237
|
||||
@@ -2245,9 +2299,9 @@ class TerrarumSansBitmap(
|
||||
// ㅣ
|
||||
private val jungseongI = arrayOf(21,61).toSortedSet()
|
||||
// ㅗ ㅛ ㅜ ㅠ
|
||||
private val jungseongOU = arrayOf(9,13,14,18,34,35,39,45,51,53,54,64,80,83).toSortedSet()
|
||||
private val jungseongOU = arrayOf(9,13,14,18,34,35,39,45,51,53,54,64,73,80,83).toSortedSet()
|
||||
// ㅘ ㅙ ㅞ
|
||||
private val jungseongOUComplex = (arrayOf(10,11,16) + (22..33).toList() + arrayOf(36,37,38) + (41..44).toList() + arrayOf(46,47,48,49,50) + (56..59).toList() + arrayOf(63) + (67..79).toList() + arrayOf(81,82) + (84..93).toList()).toSortedSet()
|
||||
private val jungseongOUComplex = (arrayOf(10,11,16) + (22..33).toList() + arrayOf(36,37,38) + (41..44).toList() + (46..50).toList() + (56..59).toList() + arrayOf(63) + (67..72).toList() + (74..79).toList() + (81..83).toList() + (85..91).toList() + arrayOf(93, 94)).toSortedSet()
|
||||
// ㅐ ㅒ ㅔ ㅖ etc
|
||||
private val jungseongRightie = arrayOf(2,4,6,8,11,16,32,33,37,42,44,48,50,71,72,75,78,79,83,86,87,88,94).toSortedSet()
|
||||
// ㅚ *ㅝ* ㅟ
|
||||
@@ -2257,7 +2311,7 @@ class TerrarumSansBitmap(
|
||||
// ㅢ
|
||||
private val jungseongYI = arrayOf(20,60,65).toSortedSet()
|
||||
// ㅜ ㅝ ㅞ ㅟ ㅠ
|
||||
private val jungseongUU = arrayOf(14,15,16,17,18,27,30,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,59,67,68,77,78,79,80,81,82,83,84,91).toSortedSet()
|
||||
private val jungseongUU = arrayOf(14,15,16,17,18,27,30,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,59,67,68,73,77,78,79,80,81,82,83,84,91).toSortedSet()
|
||||
|
||||
private val jungseongWide = (jungseongOU.toList() + jungseongEU.toList()).toSortedSet()
|
||||
|
||||
@@ -2284,15 +2338,15 @@ class TerrarumSansBitmap(
|
||||
private fun getHanInitialRow(i: Int, p: Int, f: Int): Int {
|
||||
var ret =
|
||||
if (p in jungseongI) 3
|
||||
else if (p in jungseongOUComplex) 7
|
||||
else if (p in jungseongOEWI) 11
|
||||
else if (p in jungseongOUComplex) 7
|
||||
else if (p in jungseongOU) 5
|
||||
else if (p in jungseongEU) 9
|
||||
else if (p in jungseongYI) 13
|
||||
else 1
|
||||
|
||||
if (f != 0) ret += 1
|
||||
|
||||
//println("getHanInitialRow $i $p $f -> $ret")
|
||||
return if (p in jungseongUU && i in choseongGiyeoks) giyeokRemapping[ret] ?: throw NullPointerException("i=$i p=$p f=$f ret=$ret") else ret
|
||||
}
|
||||
|
||||
@@ -2364,7 +2418,8 @@ class TerrarumSansBitmap(
|
||||
// END Hangul //
|
||||
|
||||
private fun isHangul(c: CodePoint) = c in codeRange[SHEET_HANGUL] || c in codeRangeHangulCompat
|
||||
private fun isBulgarian(c: CodePoint) = c in 0x400..0x45F
|
||||
private fun isBulgarian(c: CodePoint) = c in 0xF0000..0xF005F
|
||||
private fun isSerbian(c: CodePoint) = c in 0xF0060..0xF00BF
|
||||
fun isColourCode(c: CodePoint) = c == 0x100000 || c in 0x10F000..0x10FFFF
|
||||
private fun isCharsetOverride(c: CodePoint) = c in 0xFFFC0..0xFFFFF
|
||||
private fun isDevanagari(c: CodePoint) = c in codeRange[SHEET_DEVANAGARI_VARW]
|
||||
@@ -2383,6 +2438,8 @@ class TerrarumSansBitmap(
|
||||
else (c - 0x3040) / 16
|
||||
private fun cjkPunctIndexY(c: CodePoint) = (c - 0x3000) / 16
|
||||
private fun cyrilicIndexY(c: CodePoint) = (c - 0x400) / 16
|
||||
private fun bulgarianIndexY(c: CodePoint) = (c - 0xF0000) / 16
|
||||
private fun serbianIndexY(c: CodePoint) = (c - 0xF0060) / 16
|
||||
private fun fullwidthUniIndexY(c: CodePoint) = (c - 0xFF00) / 16
|
||||
private fun uniPunctIndexY(c: CodePoint) = (c - 0x2000) / 16
|
||||
private fun unihanIndexY(c: CodePoint) = (c - 0x3400) / 256
|
||||
|
||||