Compare commits
121 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 | ||
|
|
464ac151bd | ||
|
|
8f70306540 | ||
|
|
28166bb2ec | ||
|
|
ac85217998 | ||
|
|
44b2450fbf | ||
|
|
9221373c53 | ||
|
|
bfaa190e49 | ||
|
|
23c7ae15a2 | ||
|
|
077a832767 | ||
|
|
8c9e912491 | ||
|
|
8a7cf85982 | ||
|
|
bae9af79e9 | ||
|
|
374dc1dd66 | ||
|
|
2812460a9c | ||
|
|
83a885d214 | ||
|
|
0dbb32b575 | ||
|
|
4fea10583c | ||
|
|
ebdb0c499c | ||
|
|
4e6f473b6f | ||
|
|
7fdb7a7a91 | ||
|
|
f8a1c4cfdf | ||
|
|
afa59255cc | ||
|
|
23a5a8997f | ||
|
|
4e705e5c7d | ||
|
|
c57f8e191b | ||
|
|
ed97bafc41 | ||
|
|
eebff767ce | ||
|
|
baee9a62aa | ||
|
|
305dbb548c | ||
|
|
0ccdf67f1e | ||
|
|
60aad1b24d | ||
|
|
e31e088744 | ||
|
|
824f11412d | ||
|
|
1445404005 | ||
|
|
dd851cdbc9 | ||
|
|
7abfb2d2f0 | ||
|
|
5e7237fb17 | ||
|
|
0cba7b96be | ||
|
|
1705b2752e | ||
|
|
4614ffab92 | ||
|
|
225d908f70 | ||
|
|
09e7483389 | ||
|
|
57ab00b6e1 | ||
|
|
23b6be74e2 | ||
|
|
905a235a1b | ||
|
|
d6b1dbd1d6 | ||
|
|
e9c4f0723a | ||
|
|
ac6733469c | ||
|
|
a7ecba905a | ||
|
|
d7c48b1f88 | ||
|
|
0c74660396 | ||
|
|
b3c1327dc4 | ||
|
|
489da04d1d | ||
|
|
a58ad756ff | ||
|
|
702f1b2e2f | ||
|
|
f10413d9c4 | ||
|
|
80aa9d0e52 | ||
|
|
64c13571f9 | ||
|
|
a36c5df477 | ||
|
|
7c3069e8cf | ||
|
|
1e66cfec51 | ||
|
|
1e0a820817 | ||
|
|
4623975858 | ||
|
|
23aac0c1c1 | ||
|
|
54d983013a | ||
|
|
c7507a6357 | ||
|
|
0714581866 | ||
|
|
095b8e65fb | ||
|
|
e60652d705 | ||
|
|
f3aeba3d70 | ||
|
|
ee2b1027b7 | ||
|
|
3b05624de5 | ||
|
|
4c0582184f | ||
|
|
5e6b2363b7 | ||
|
|
dbe93a26eb | ||
|
|
b128312e2c | ||
|
|
07ca429483 | ||
|
|
9675c40216 | ||
|
|
0870856674 | ||
|
|
3c6f18efbf | ||
|
|
2fdc6f85f5 | ||
|
|
4ed2c26b35 | ||
|
|
3ef7410e45 | ||
|
|
ba730fafe3 | ||
|
|
ab925bc8c5 | ||
|
|
b1362f3a3b | ||
|
|
f60eb6b3fc | ||
|
|
88f013a304 | ||
|
|
ea9f8fae4c | ||
|
|
a6363131ac | ||
|
|
fc60356b8b | ||
|
|
755420d5b3 | ||
|
|
0200aa5f85 | ||
|
|
7dff623b75 |
3
.gitattributes
vendored
@@ -8,3 +8,6 @@
|
|||||||
*.kra filter=lfs diff=lfs merge=lfs -text
|
*.kra filter=lfs diff=lfs merge=lfs -text
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
*.wav 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>
|
||||||
<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$/.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$/.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/src/FontTestGDX.kt" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/src/FontTestGDX.kt" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/FontTestGDX/FontTestGDX.iml" beforeDir="false" afterPath="$PROJECT_DIR$/FontTestGDX/FontTestGDX.iml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/assets/cjkpunct.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/cjkpunct.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/currencies_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/currencies_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/futhark.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/futhark.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$/assets/latinExtC_variable.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/latinExtC_variable.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/richtext_furigana.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/richtext_furigana.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$/assets/typewriter/typewriter_intl_qwerty.tga" beforeDir="false" afterPath="$PROJECT_DIR$/assets/typewriter/typewriter_intl_qwerty.tga" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/demo.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/demo.PNG" 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$/work_files/ascii_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/ascii_variable.psd" 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$/work_files/cyrilic_bulgarian_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_bulgarian_variable.psd" 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$/work_files/cyrilic_serbian_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_serbian_variable.psd" 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$/work_files/cyrilic_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/cyrilic_variable.psd" 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$/work_files/greek_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/greek_variable.psd" 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$/work_files/latinExtA_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExtA_variable.psd" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/testing.PNG" beforeDir="false" afterPath="$PROJECT_DIR$/testing.PNG" 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$/testtext.txt" beforeDir="false" afterPath="$PROJECT_DIR$/testtext.txt" 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$/width_bit_encoding_annotated.png" beforeDir="false" afterPath="$PROJECT_DIR$/width_bit_encoding_annotated.png" 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/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/latinExt_additional_variable.psd" beforeDir="false" afterPath="$PROJECT_DIR$/work_files/latinExt_additional_variable.psd" 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>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -64,26 +60,22 @@
|
|||||||
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
|
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
|
||||||
</file-type-list>
|
</file-type-list>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="MarkdownSettingsMigration">
|
||||||
|
<option name="stateVersion" value="1" />
|
||||||
|
</component>
|
||||||
<component name="ProjectId" id="1aVE5t6KObkWt36lb07GBy1GY1S" />
|
<component name="ProjectId" id="1aVE5t6KObkWt36lb07GBy1GY1S" />
|
||||||
<component name="ProjectViewState">
|
<component name="ProjectViewState">
|
||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
<option name="showLibraryContents" value="true" />
|
<option name="showLibraryContents" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent">
|
<component name="PropertiesComponent">{
|
||||||
<property name="Downloaded.Files.Path.Enabled" value="false" />
|
"keyToString": {
|
||||||
<property name="Repository.Attach.Annotations" value="false" />
|
"last_opened_file_path": "/home/torvald/Documents/Terrarum-sans-bitmap",
|
||||||
<property name="Repository.Attach.JavaDocs" value="false" />
|
"project.structure.last.edited": "Artifacts",
|
||||||
<property name="Repository.Attach.Sources" value="false" />
|
"project.structure.proportion": "0.0",
|
||||||
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
"project.structure.side.proportion": "0.0"
|
||||||
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
}
|
||||||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
}</component>
|
||||||
<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="RecentsManager">
|
<component name="RecentsManager">
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\" />
|
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\" />
|
||||||
@@ -91,7 +83,7 @@
|
|||||||
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\FontTestGDX\src" />
|
<recent name="C:\Users\minjaesong\Documents\Terrarum-sans-bitmap\FontTestGDX\src" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager">
|
<component name="RunManager" selected="Kotlin.FontTestGDXKt">
|
||||||
<configuration default="true" type="Applet">
|
<configuration default="true" type="Applet">
|
||||||
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
|
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
@@ -134,6 +126,13 @@
|
|||||||
</option>
|
</option>
|
||||||
</method>
|
</method>
|
||||||
</configuration>
|
</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">
|
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
|
||||||
<option name="filePath" />
|
<option name="filePath" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
@@ -161,6 +160,7 @@
|
|||||||
<recent_temporary>
|
<recent_temporary>
|
||||||
<list>
|
<list>
|
||||||
<item itemvalue="Kotlin.FontTestGDXKt" />
|
<item itemvalue="Kotlin.FontTestGDXKt" />
|
||||||
|
<item itemvalue="Kotlin.TypewriterGDXKt" />
|
||||||
</list>
|
</list>
|
||||||
</recent_temporary>
|
</recent_temporary>
|
||||||
</component>
|
</component>
|
||||||
@@ -197,7 +197,6 @@
|
|||||||
</entry>
|
</entry>
|
||||||
</map>
|
</map>
|
||||||
</option>
|
</option>
|
||||||
<option name="oldMeFiltersMigrated" value="true" />
|
|
||||||
</component>
|
</component>
|
||||||
<component name="XSLT-Support.FileAssociations.UIState">
|
<component name="XSLT-Support.FileAssociations.UIState">
|
||||||
<expand />
|
<expand />
|
||||||
|
|||||||
4
BuildJAR_TerrarumSansBitmap.iml
Executable file → Normal file
@@ -5,9 +5,9 @@
|
|||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="jdk" jdkName="1.8.0_242" jdkType="JavaSDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||||
<orderEntry type="library" name="lib" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="lib" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -57,10 +57,20 @@ Rightmost vertical column (should be 20 px tall) contains the tags. Tags are def
|
|||||||
Y |= Diacritics Anchor Points (see below)
|
Y |= Diacritics Anchor Points (see below)
|
||||||
X -'
|
X -'
|
||||||
A -,_ 0 Align 1 Align 0 Align 1 Align before
|
A -,_ 0 Align 1 Align 0 Align 1 Align before
|
||||||
A -' 0 left 0 right 1 centre 1 the glyph
|
A -' 0 Left 0 Right 1 Centre 1 the glyph
|
||||||
D --Diacritics Type Bit (see below; not all diacritics are marked as one on the spritesheet)
|
D --Diacritics Type Bit (see below; not all diacritics are actually marked as a diacritics on the spritesheet)
|
||||||
S -,_ 0 Stack 1 Stack 0 Before 1 Up &
|
S -,_ 0 Stack 1 Stack 0 Before 1 Up &
|
||||||
(MSB) S -' 0 up 0 down 1 &After 1 Down (e.g. U+0C48)
|
(MSB) S -' 0 up 0 down 1 &After 1 Down* (e.g. U+0C48)
|
||||||
|
|
||||||
|
Align Centre and Align Right will respect the diacritics anchor points.
|
||||||
|
The Align Right AND Custom anchor point is being used for Thai diacritics.
|
||||||
|
When a width AND diacritics type bit is set, the entire glyph is shifted to the right as specified and the space of same width will be inserted.
|
||||||
|
(See SUNDANESE PAMINGKAL U+1BA1)
|
||||||
|
|
||||||
|
Up&Down:
|
||||||
|
1. when two pixels are both #00FF00 it's "don't stack"
|
||||||
|
2. otherwise, it's actually up&down
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Nudging Bits Encoding
|
#### Nudging Bits Encoding
|
||||||
@@ -76,13 +86,13 @@ Y-positive: nudges towards up
|
|||||||
|
|
||||||
4 Pixels are further divided as follows:
|
4 Pixels are further divided as follows:
|
||||||
|
|
||||||
| LSB | | | | |
|
| LSB | | Red | Green | Blue |
|
||||||
| ------------ | ------------ | ------------ | ------------ | ------------ |
|
| ------------ | ------------ | ------------ | ------------ | ------------ |
|
||||||
| Y | Anchor point Y for: | undefined | undefined | undefined |
|
| Y | Anchor point Y for: | undefined | undefined | undefined |
|
||||||
| X | Anchor point X for: | undefined | undefined | undefined |
|
| X | Anchor point X for: | undefined | undefined | undefined |
|
||||||
| Y | Anchor point Y for: | (unused) | (unused) | (unused) |
|
| Y | Anchor point Y for: | (unused) | (unused) | (unused) |
|
||||||
| X | Anchor point X for: | Type-0 | Type-1 | Type-2 |
|
| X | Anchor point X for: | Type-0 | Type-1 | Type-2 |
|
||||||
| MSB | | | | |
|
| **MSB** | | | | |
|
||||||
|
|
||||||
<MSB,Red> 1Y1Y1Y1Y 1Y2Y2Y2Y 1Y3Y3Y3Y <LSB,Blue>
|
<MSB,Red> 1Y1Y1Y1Y 1Y2Y2Y2Y 1Y3Y3Y3Y <LSB,Blue>
|
||||||
<MSB,Red> 1X1X1X1X 1X2X2X2X 1X3X3X3X <LSB,Blue>
|
<MSB,Red> 1X1X1X1X 1X2X2X2X 1X3X3X3X <LSB,Blue>
|
||||||
@@ -96,7 +106,7 @@ MSB for each word must be set so that the pixel would appear brighter on the ima
|
|||||||
<MSB,Red> FFFFFFFF FFFFFFFF FFFFFFFF <LSB,Blue> (For Type-0)
|
<MSB,Red> FFFFFFFF FFFFFFFF FFFFFFFF <LSB,Blue> (For Type-0)
|
||||||
<MSB,Red> TTTT0000 00000000 00000000 <LSB,Blue> (For Type-1 to Type-15)
|
<MSB,Red> TTTT0000 00000000 00000000 <LSB,Blue> (For Type-1 to Type-15)
|
||||||
|
|
||||||
Certain types of diacritics have predefined meanings:
|
Certain types of diacritics have predefined meanings (but some writing systems define their own meaning e.g. Devanagari):
|
||||||
|
|
||||||
* Type-0: Above
|
* Type-0: Above
|
||||||
* Type-1: Below (when it should be separated from being above)
|
* Type-1: Below (when it should be separated from being above)
|
||||||
@@ -111,10 +121,11 @@ Currently supported opcodes:
|
|||||||
|
|
||||||
*00000000: No-operation; does not use the Compiler Directive system.
|
*00000000: No-operation; does not use the Compiler Directive system.
|
||||||
|
|
||||||
*10000xxx: Replace a character with xxx subchars (yes, number 0 can be used).
|
*10000111: Replace a character with maximum 7 subchars.
|
||||||
Replacement characters are encoded vertically from X-zero, bit by bit
|
Replacement characters are encoded vertically from X-zero, bit by bit
|
||||||
(colour of the pixel doesn't matter) with LSB sitting on Y-zero.
|
(colour of the pixel doesn't matter) with LSB sitting on Y-zero.
|
||||||
|
|
||||||
|
*11111111: Tagging Used by the Subsystems. e.g. #FF0000 marks invalid combination.
|
||||||
|
|
||||||
#### Stack Up/Down
|
#### Stack Up/Down
|
||||||
|
|
||||||
@@ -143,6 +154,10 @@ This tag can be used as a general "replace this with these" directive, as long a
|
|||||||
|
|
||||||
Also note that the font compiler will not "stack" these diacritics.
|
Also note that the font compiler will not "stack" these diacritics.
|
||||||
|
|
||||||
|
#### The Keming Machine Tags
|
||||||
|
|
||||||
|
Keming Machine Tags define the rough shape of the glyph. Please read `keming_machine.txt` for further information.
|
||||||
|
|
||||||
|
|
||||||
#### NOTES
|
#### NOTES
|
||||||
- If glyphs are right or centre aligned, they must be aligned in the same way inside of the bitmap; the font compiler assumes every variable-width glyphs to have a width of 15, regardless of the tagged width.
|
- If glyphs are right or centre aligned, they must be aligned in the same way inside of the bitmap; the font compiler assumes every variable-width glyphs to have a width of 15, regardless of the tagged width.
|
||||||
|
|||||||
2
FontTestGDX/FontTestGDX.iml
Executable file → Normal file
@@ -5,7 +5,7 @@
|
|||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="jdk" jdkName="1.8.0_242" jdkType="JavaSDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="module" module-name="BuildJAR_TerrarumSansBitmap" />
|
<orderEntry type="module" module-name="BuildJAR_TerrarumSansBitmap" />
|
||||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||||
|
|||||||
@@ -34,8 +34,10 @@ class FontTestGDX : Game() {
|
|||||||
|
|
||||||
private lateinit var faketex: Texture
|
private lateinit var faketex: Texture
|
||||||
|
|
||||||
|
private val lineHeight = 24
|
||||||
|
|
||||||
override fun create() {
|
override fun create() {
|
||||||
font = TerrarumSansBitmap("./assets", debug = true, flipY = false, errorOnUnknownChar = false, shadowAlpha = 0.796f) // must test for two flipY cases
|
font = TerrarumSansBitmap("./assets", debug = true, flipY = false, errorOnUnknownChar = false, shadowAlpha = 0.5f) // must test for two flipY cases
|
||||||
|
|
||||||
val inTextFile = Gdx.files.internal("./$demotextName")
|
val inTextFile = Gdx.files.internal("./$demotextName")
|
||||||
val reader = inTextFile.reader("UTF-8")
|
val reader = inTextFile.reader("UTF-8")
|
||||||
@@ -81,24 +83,22 @@ class FontTestGDX : Game() {
|
|||||||
if (tex == null) {
|
if (tex == null) {
|
||||||
frameBuffer.begin()
|
frameBuffer.begin()
|
||||||
|
|
||||||
Gdx.gl.glClearColor(0f,0f,0f,0f)
|
Gdx.gl.glClearColor(.141f, .141f, .141f, 1f)
|
||||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
|
||||||
Gdx.gl.glEnable(GL20.GL_TEXTURE_2D)
|
Gdx.gl.glEnable(GL20.GL_TEXTURE_2D)
|
||||||
Gdx.gl.glEnable(GL20.GL_BLEND)
|
Gdx.gl.glEnable(GL20.GL_BLEND)
|
||||||
Gdx.gl.glBlendFuncSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE)
|
batch.setBlendFunctionSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) // for not premultiplied textures
|
||||||
// Gdx.gl.glBlendFuncSeparate(GL20.GL_SRC_COLOR, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_SRC_ALPHA, GL20.GL_ONE)
|
|
||||||
|
|
||||||
// Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)
|
|
||||||
|
|
||||||
batch.projectionMatrix = camera.combined
|
batch.projectionMatrix = camera.combined
|
||||||
batch.begin()
|
batch.begin()
|
||||||
|
|
||||||
batch.color = backcol
|
batch.color = backcol
|
||||||
batch.draw(faketex, 0f, 0f, TEXW.toFloat(), TEXH.toFloat())
|
batch.draw(faketex, 0f, 0f, TEXW.toFloat(), TEXH.toFloat())
|
||||||
|
batch.flush()
|
||||||
|
|
||||||
batch.color = Color.WHITE
|
batch.color = Color.WHITE
|
||||||
inputText.forEachIndexed { index, s ->
|
inputText.forEachIndexed { index, s ->
|
||||||
font.draw(batch, s, 10f, TEXH - 30f - index * font.lineHeight)
|
font.draw(batch, s, 10f, TEXH - 30f - index * lineHeight)
|
||||||
}
|
}
|
||||||
|
|
||||||
batch.end()
|
batch.end()
|
||||||
@@ -128,7 +128,7 @@ class FontTestGDX : Game() {
|
|||||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
|
||||||
Gdx.gl.glEnable(GL20.GL_TEXTURE_2D)
|
Gdx.gl.glEnable(GL20.GL_TEXTURE_2D)
|
||||||
Gdx.gl.glEnable(GL20.GL_BLEND)
|
Gdx.gl.glEnable(GL20.GL_BLEND)
|
||||||
Gdx.gl.glBlendFuncSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE)
|
batch.setBlendFunctionSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA) // for not premultiplied textures
|
||||||
|
|
||||||
|
|
||||||
batch.begin()
|
batch.begin()
|
||||||
@@ -151,15 +151,14 @@ class FontTestGDX : Game() {
|
|||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
font.dispose()
|
font.dispose()
|
||||||
faketex.dispose()
|
faketex.dispose()
|
||||||
File("./tmp_wenquanyi.tga").delete()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun scrollAdd(x: Int = 1) {
|
fun scrollAdd(x: Int = 1) {
|
||||||
scrollOffsetY -= (TEXH.toFloat() / HEIGHT) * 20f * x
|
scrollOffsetY -= (TEXH.toFloat() / HEIGHT) * lineHeight * x
|
||||||
}
|
}
|
||||||
|
|
||||||
fun scrollSub(x: Int = 1) {
|
fun scrollSub(x: Int = 1) {
|
||||||
scrollOffsetY += (TEXH.toFloat() / HEIGHT) * 20f * x
|
scrollOffsetY += (TEXH.toFloat() / HEIGHT) * lineHeight * x
|
||||||
}
|
}
|
||||||
|
|
||||||
class Navigator(val main: FontTestGDX) : InputAdapter() {
|
class Navigator(val main: FontTestGDX) : InputAdapter() {
|
||||||
@@ -270,7 +269,7 @@ class FontTestGDX : Game() {
|
|||||||
|
|
||||||
lateinit var appConfig: Lwjgl3ApplicationConfiguration
|
lateinit var appConfig: Lwjgl3ApplicationConfiguration
|
||||||
const val TEXW = 874
|
const val TEXW = 874
|
||||||
const val TEXH = 128 * 20
|
const val TEXH = 24 * 130
|
||||||
|
|
||||||
const val WIDTH = TEXW
|
const val WIDTH = TEXW
|
||||||
const val HEIGHT = 768
|
const val HEIGHT = 768
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import kotlin.math.roundToInt
|
|||||||
/**
|
/**
|
||||||
* Created by minjaesong on 2021-11-05.
|
* Created by minjaesong on 2021-11-05.
|
||||||
*/
|
*/
|
||||||
class TypewriterGDX(val width: Int, val height: Int, val cols: Int) : Game() {
|
class TypewriterGDX(val width: Int, val height: Int, val cols: Int, val hmargin: Int, val vmargin: Int) : Game() {
|
||||||
|
|
||||||
lateinit var font: TerrarumTypewriterBitmap
|
lateinit var font: TerrarumTypewriterBitmap
|
||||||
lateinit var batch: SpriteBatch
|
lateinit var batch: SpriteBatch
|
||||||
@@ -103,7 +103,7 @@ class TypewriterGDX(val width: Int, val height: Int, val cols: Int) : Game() {
|
|||||||
CodepointSequence()
|
CodepointSequence()
|
||||||
)
|
)
|
||||||
|
|
||||||
var keylayoutbase = 0xF9000
|
var keylayoutbase = 0xFA000
|
||||||
private val printableKeys = ((Input.Keys.NUM_0..Input.Keys.NUM_9) + (Input.Keys.A..Input.Keys.PERIOD) + 62 + (Input.Keys.BACKSPACE..Input.Keys.SLASH)).toHashSet()
|
private val printableKeys = ((Input.Keys.NUM_0..Input.Keys.NUM_9) + (Input.Keys.A..Input.Keys.PERIOD) + 62 + (Input.Keys.BACKSPACE..Input.Keys.SLASH)).toHashSet()
|
||||||
|
|
||||||
var initDone = false
|
var initDone = false
|
||||||
@@ -165,7 +165,7 @@ class TypewriterGDX(val width: Int, val height: Int, val cols: Int) : Game() {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
textbuf.forEachIndexed { index, s ->
|
textbuf.forEachIndexed { index, s ->
|
||||||
font.draw(batch, s, 40f, 40f + 20 * index)
|
font.draw(batch, s, hmargin.toFloat(), vmargin.toFloat() + 20 * index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e: ConcurrentModificationException) {}
|
catch (e: ConcurrentModificationException) {}
|
||||||
@@ -240,8 +240,8 @@ fun main(args: Array<String>) {
|
|||||||
appConfig = Lwjgl3ApplicationConfiguration()
|
appConfig = Lwjgl3ApplicationConfiguration()
|
||||||
appConfig.useVsync(false)
|
appConfig.useVsync(false)
|
||||||
appConfig.setResizable(false)
|
appConfig.setResizable(false)
|
||||||
appConfig.setWindowedMode(600, 800)
|
appConfig.setWindowedMode(534, 668)
|
||||||
appConfig.setTitle("Terrarum Typewriter Bitmap Test")
|
appConfig.setTitle("Terrarum Typewriter Bitmap Test")
|
||||||
|
|
||||||
Lwjgl3Application(TypewriterGDX(600, 800, 64), appConfig)
|
Lwjgl3Application(TypewriterGDX(534, 668, 64, 32, 24), appConfig)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
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.
|
The issue page is open. If you have some issues to submit, or have a question, please leave it on the page.
|
||||||
|
|
||||||
#### Little notes
|
#### Notes and Limitations
|
||||||
- To display Bulgarian/Serbian variants, you need special Control Characters. (GameFontBase.charsetOverrideBulgarian -- U+FFFC1; GameFontBase.charsetOverrideSerbian -- U+FFFC2)
|
- Displaying Bulgarian/Serbian variants of Cyrillic requires 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.
|
- 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
|
||||||
- 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.
|
- 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.
|
- 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
|
### 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):
|
On your code (Kotlin):
|
||||||
|
|
||||||
|
import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap
|
||||||
|
|
||||||
class YourGame : Game() {
|
class YourGame : Game() {
|
||||||
|
|
||||||
lateinit var fontGame: Font
|
lateinit var fontGame: Font
|
||||||
|
|
||||||
override fun create() {
|
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):
|
On your code (Java):
|
||||||
|
|
||||||
|
import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap;
|
||||||
|
|
||||||
class YourGame extends BasicGame {
|
class YourGame extends BasicGame {
|
||||||
|
|
||||||
Font fontGame;
|
Font fontGame;
|
||||||
|
|
||||||
@Override void create() {
|
@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
|
### 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.
|
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
BIN
assets/bengali_variable.tga
LFS
Executable file
BIN
assets/braille_variable.tga
LFS
Normal file
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 130 B |
BIN
assets/control_pictures_variable.tga
LFS
Normal file
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 130 B |
BIN
assets/cyrilic_variable.tga
LFS
BIN
assets/devanagari_internal_extrawide_variable.tga
LFS
Normal file
BIN
assets/devanagari_variable.tga
LFS
Normal file
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 130 B |
|
Before Width: | Height: | Size: 2.6 MiB After Width: | Height: | Size: 132 B |
BIN
assets/internal_variable.tga
LFS
BIN
assets/kana.tga
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 131 B |
|
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
Normal file
BIN
assets/tamil_extrawide_variable.tga
LFS
Normal file
BIN
assets/thai_variable.tga
LFS
|
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 131 B |
BIN
demo.PNG
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 152 KiB |
29
demotext.txt
@@ -52,17 +52,20 @@ How multilingual? Real multilingual!
|
|||||||
Ѕидарски пејзаж: шугав билмез со чудење џвака ќофте и кељ на туѓ цех
|
Ѕидарски пејзаж: шугав билмез со чудење џвака ќофте и кељ на туѓ цех
|
||||||
Щётканы фермд пийшин цувъя. Бөгж зогсч хэльюү
|
Щётканы фермд пийшин цувъя. Бөгж зогсч хэльюү
|
||||||
Pchnąć w tę łódź jeża lub ośm skrzyń fig
|
Pchnąć w tę łódź jeża lub ośm skrzyń fig
|
||||||
कः खगौघाङचिच्छौजा झाञ्ज्ञोऽटौठीडडण्ढणः। तथोदधीन् पफर्बाभीर्मयोऽरिल्वाशिषां सहः॥
|
|
||||||
Înjurând pițigăiat, zoofobul comandă vexat whisky și tequila
|
Înjurând pițigăiat, zoofobul comandă vexat whisky și tequila
|
||||||
Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства
|
Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства
|
||||||
|
अद्वैतामृवर्षिणीं भगवतीमष्टादशाध्यायिनीम् अम्ब त्वामनुसन्दधामि भगवद्गीते भवद्वेषिणीम् ॥
|
||||||
Ајшо, лепото и чежњо, за љубав срца мога дођи у Хаџиће на кафу
|
Ајшо, лепото и чежњо, за љубав срца мога дођи у Хаџиће на кафу
|
||||||
|
ᮙᮛᮔᮨᮂᮔ ᮓᮤᮘᮨᮛᮨ ᮃᮊᮜ᮪ ᮏᮩᮀ ᮠᮒᮨ ᮔᮥᮛᮔᮤ, ᮎᮙ᮪ᮕᮥᮁ-ᮌᮅᮜ᮪ ᮏᮩᮀ ᮞᮞᮙᮔ ᮃᮚ ᮓᮤᮔ ᮞᮥᮙᮔᮨᮒ᮪ ᮓᮥᮓᮥᮜᮥᮛᮔ᮪
|
||||||
Jovencillo emponzoñado de whisky: ¡qué figurota exhibe!
|
Jovencillo emponzoñado de whisky: ¡qué figurota exhibe!
|
||||||
|
எழுத்து வடிவங்களுக்கு வார்த்தைகள் மற்றும் வாக்கியங்கள் போலவே தொனி, ஒலி பண்பு, தன்மை உண்டு
|
||||||
นายสังฆภัณฑ์ เฮงพิทักษ์ฝั่ง ผู้เฒ่าซึ่งมีอาชีพเป็นฅนขายฃวด ถูกตำรวจปฏิบัติการจับฟ้องศาล ฐานลักนาฬิกาคุณหญิงฉัตรชฎา ฌานสมาธิ
|
นายสังฆภัณฑ์ เฮงพิทักษ์ฝั่ง ผู้เฒ่าซึ่งมีอาชีพเป็นฅนขายฃวด ถูกตำรวจปฏิบัติการจับฟ้องศาล ฐานลักนาฬิกาคุณหญิงฉัตรชฎา ฌานสมาธิ
|
||||||
Pijamalı hasta yağız şoföre çabucak güvendi
|
Pijamalı hasta yağız şoföre çabucak güvendi
|
||||||
Жебракують філософи при ґанку церкви в Гадячі, ще й шатро їхнє п’яне знаємо
|
Жебракують філософи при ґанку церкви в Гадячі, ще й шатро їхнє п’яне знаємо
|
||||||
Do bạch kim rất quý nên sẽ dùng để lắp vô xương
|
Do bạch kim rất quý nên sẽ dùng để lắp vô xương
|
||||||
日堀油告観観藤村抄海評業庁経賃室弁市。太撮収改売週法所何都慣次現。価紙一無三洋日話転手治稿載末替付致治。
|
日堀油告観観藤村抄海評業庁経賃室弁市。太撮収改売週法所何都慣次現。価紙一無三洋日話転手治稿載末替付致治。
|
||||||
[pʰnɣɬɥi.m͡ŋχɫʍɨnaɸ.cθʊɫɯ.ɹɨɫʏ͡ɛx.ɯ͡ɣaxɲaɣɫ.ɸtʰɑɣɴ]
|
[pʰnɣɬɥi.m͡ŋχɫʍɨnaɸ.cθʊɫɯ.ɹɨɫʏ͡ɛx.ɯ͡ɣaxɲaɣɫ.ɸtʰɑɣɴ]
|
||||||
|
⠑⠥⠊⠵⠀⠟⠫⠒⠵⠀⠓⠗⠎⠉⠂⠀⠠⠊⠗⠘⠍⠓⠎⠀⠨⠣⠩⠐⠥⠍⠑⠱⠀⠈⠪⠀⠨⠷⠎⠢⠈⠧⠀⠈⠏⠒⠐⠕⠝⠀⠕⠌⠎⠀⠊⠿⠊⠪⠶⠚⠊
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
|
||||||
@@ -106,19 +109,19 @@ How multilingual? Real multilingual!
|
|||||||
|
|
||||||
Supported Unicode Blocks:
|
Supported Unicode Blocks:
|
||||||
|
|
||||||
Basic Latin Latin-1 Supplement Latin Extended-A Latin Extended-B IPA Extensions
|
Basic Latin Latin-1 Supplement Latin Extended-A Latin Extended-B IPA Extensions Spacing Modifier Letters
|
||||||
Spacing Modifier Letters Combining Diacritical Marks Greek and Copticᴱ Cyrillicᴭ Cyrillic Supplementᴭ
|
Combining Diacritical Marks Greek and Copticᴱ Cyrillicᴭ Cyrillic Supplementᴭ Armenian Devanagari
|
||||||
Armenian Devanagariᶠⁱ Bengaliᶠⁱ Thai Georgianჼ Hangul Jamo Cherokee⁷ Runic Georgian Extended
|
Bengaliᶠⁱ Tamil Thai Georgianჼ Hangul Jamo Cherokee⁷ Runic Sundanese Georgian Extended
|
||||||
Phonetic Extensions Phonetic Extensions Supplement Latin Extended Additional Greek Extended
|
Sundanese Supplement Phonetic Extensions Phonetic Extensions Supplement Latin Extended Additional
|
||||||
General Punctuations Superscripts and Subscripts Currency Symbols Letterlike Symbols
|
Greek Extended General Punctuations Superscripts and Subscripts Currency Symbols Letterlike Symbols
|
||||||
CJK Symbols and Punctuation Latin Extended-C Hiragana Katakana Hangul Compatibility Jamo
|
Braile Patterns Latin Extended-C CJK Symbols and Punctuation Hiragana Katakana
|
||||||
Katakana Phonetic Extensions CJK Unified Ideographs Extension A¹²·¹ CJK Unified Ideographs⁶
|
Hangul Compatibility Jamo Katakana Phonetic Extensions CJK Unified Ideographs Extension A¹²·¹
|
||||||
Latin Extended-D Hangul Jamo Extended-A Hangul Syllables Hangul Jamo Extended-B
|
CJK Unified Ideographs⁶ Latin Extended-D Hangul Jamo Extended-A Hangul Syllables
|
||||||
Halfwidth and Fullwidth Forms Kana Supplement⁹ Enclosed Alphanumeric Supplement
|
Hangul Jamo Extended-B Halfwidth and Fullwidth Forms Kana Supplement⁹ Enclosed Alphanumeric Supplement
|
||||||
|
|
||||||
ᴭ No support for archæic letters ᴱ No support for Coptic
|
ᴭ No support for archæic letters ᴱ No support for Coptic
|
||||||
ᶠⁱ No support for ligatures ჼ Mkhedruli only
|
ᶠⁱ No support for ligatures ჼ Mkhedruli only
|
||||||
⁶ ⁷ ⁹ ¹²·¹ Up to the specified Unicode version
|
⁶ ⁷ ⁹ ¹²·¹ Up to the specified Unicode version
|
||||||
|
|
||||||
GitHub’s issue page is open! You can report any errors, or leave suggestions.
|
GitHub’s issue page is open! You can report any errors, or leave suggestions.
|
||||||
You can help this font to be more versatile. (for more languages, more frameworks) Clone this repo, make
|
You can help this font to be more versatile. (for more languages, more frameworks) Clone this repo, make
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ data class GlyphProps(
|
|||||||
const val STACK_DOWN = 1
|
const val STACK_DOWN = 1
|
||||||
const val STACK_BEFORE_N_AFTER = 2
|
const val STACK_BEFORE_N_AFTER = 2
|
||||||
const val STACK_UP_N_DOWN = 3
|
const val STACK_UP_N_DOWN = 3
|
||||||
|
const val STACK_DONT = 4
|
||||||
|
|
||||||
const val DIA_OVERLAY = 2
|
const val DIA_OVERLAY = 2
|
||||||
// const val DIA_JOINER = 2
|
// const val DIA_JOINER = 2
|
||||||
@@ -115,7 +116,7 @@ data class GlyphProps(
|
|||||||
if (stackWhere == STACK_BEFORE_N_AFTER)
|
if (stackWhere == STACK_BEFORE_N_AFTER)
|
||||||
2
|
2
|
||||||
else if (directiveOpcode in 0b10000_000..0b10000_111)
|
else if (directiveOpcode in 0b10000_000..0b10000_111)
|
||||||
directiveOpcode and 7
|
7
|
||||||
else 0
|
else 0
|
||||||
|
|
||||||
fun isPragma(pragma: String) = when (pragma) {
|
fun isPragma(pragma: String) = when (pragma) {
|
||||||
@@ -125,4 +126,7 @@ data class GlyphProps(
|
|||||||
|
|
||||||
fun forEachExtInfo(action: (Int) -> Unit) = extInfo.slice(0 until requiredExtInfoCount()).forEach(action)
|
fun forEachExtInfo(action: (Int) -> Unit) = extInfo.slice(0 until requiredExtInfoCount()).forEach(action)
|
||||||
fun forEachExtInfoIndexed(action: (Int, Int) -> Unit) = extInfo.slice(0 until requiredExtInfoCount()).forEachIndexed(action)
|
fun forEachExtInfoIndexed(action: (Int, Int) -> Unit) = extInfo.slice(0 until requiredExtInfoCount()).forEachIndexed(action)
|
||||||
|
|
||||||
|
val isIllegal: Boolean
|
||||||
|
get() = directiveOpcode == 255
|
||||||
}
|
}
|
||||||
BIN
testing.PNG
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 50 KiB |
54
testtext.txt
@@ -1,5 +1,55 @@
|
|||||||
|
क क्क क्च क्त क्त्य क्त्र क्त्व क्थ क्न क्प क्प्र क्म क्य क्र क्ल क्व क्श क्ष क्ष्र क्ष्ण क्ष्म क्ष्म्य क्ष्य क्ष्व क्स
|
||||||
|
ख ख्य
|
||||||
|
ग ग्ग ग्ज ग्ज्य ग्ण ग्द ग्ध ग्ध्व ग्न ग्न्य ग्ब ग्भ ग्भ्य ग्म ग्य ग्र ग्र्य ग्ल ग्व
|
||||||
|
घ घ्न घ्र घ्व
|
||||||
|
ङ ङ्क ङ्क्त ङ्क्ष ङ्क्ष्व ङ्ख ङ्ख्य ङ्ग ङ्ग्य ङ्ग्र ङ्घ ङ्घ्र ङ्न ङ्म
|
||||||
|
च च्च च्च्य च्छ च्छ्र च्छ्व च्य
|
||||||
|
ज ज्ज ज्ज्ञ ज्ज्य ज्ज्व ज्ञ ज्म ज्य ज्र ज्व
|
||||||
|
ञ ञ्च ञ्छ ञ्ज ञ्ज्ञ ञ्श ञ्श्र ञ्श्व
|
||||||
|
ट ट्क ट्ट ट्प ट्य ट्श ट्स
|
||||||
|
ठ ठ्य
|
||||||
|
ड ड्ग ड्भ ड्य ड्र ड्व
|
||||||
|
ढ ढ्य
|
||||||
|
ण ण्ट ण्ठ ण्ड ण्ड्य ण्ड्र ण्ण ण्म ण्य ण्व
|
||||||
|
त त्क त्क्र त्क्व त्क्ष त्ख त्त त्त्य त्त्र त्त्व त्थ त्न त्न्य त्प त्प्र त्फ त्म त्म्य त्य त्र त्र्य त्व त्व्य त्स त्स्त त्स्त्र त्स्थ त्स्न त्स्म त्स्य त्स्र त्स्व
|
||||||
|
थ थ्य थ्व
|
||||||
|
द द्ग द्ग्र द्द द्द्य द्द्र द्द्व द्ध द्ध्य द्ध्र द्ध्व द्न द्ब द्ब्र द्भ द्भ्य द्भ्र द्म द्य द्र द्र्य द्व द्व्य द्व्र
|
||||||
|
ध ध्न ध्म ध्य ध्र ध्व ध्ह
|
||||||
|
न न्क न्क्र न्क्ल न्क्ष न्ख न्ग न्घ न्त न्त्य न्त्र न्त्र्य न्त्व न्त्स्य न्थ न्द न्द्य न्द्र न्द्व न्ध न्ध्य न्ध्र न्न न्न्य न्न्व न्प न्प्र न्फ न्ब न्ब्र न्भ न्भ्र
|
||||||
|
न्म न्य न्र न्व न्व्य न्स न्स्थ न्स्म न्स्व न्ह
|
||||||
|
प प्त प्त्व प्न प्म प्य प्र प्ल प्स प्स्य
|
||||||
|
ब ब्ज ब्द ब्ध ब्ध्व ब्य ब्र ब्व
|
||||||
|
भ भ्ण भ्य भ्र भ्व
|
||||||
|
म म्ण म्न म्प म्ब म्ब्य म्भ म्य म्र म्ल
|
||||||
|
य य्य य्व
|
||||||
|
र र्क र्क्ष्य र्ख र्ग र्ग्य र्ग्र र्घ र्घ्य र्ङ्ग र्च र्च्छ र्च्य र्छ र्ज र्ज्ञ र्ज्य र्ज्व र्ण र्ण्य र्त र्त्त र्त्म र्त्य र्त्र र्त्व र्त्स र्त्स्न्य र्थ र्थ्य र्द
|
||||||
|
र्द्ध र्द्य र्द्र र्द्व र्ध र्ध्न र्ध्म र्ध्य र्ध्र र्ध्व र्न र्न्य र्प र्ब र्ब्र र्भ र्भ्य र्भ्र र्म र्म्य र्य र्ल र्व र्व्य र्श र्श्व र्ष र्ष्ट र्ष्ण र्ष्य र्ह र्ह्य र्ह्र
|
||||||
|
ल ल्क ल्क्य ल्ग ल्प ल्ब ल्म ल्य ल्ल ल्व
|
||||||
|
व व्य व्र
|
||||||
|
श श्च श्च्य श्छ श्न श्प श्म श्य श्र श्ल श्व श्व्य श्न्र श्व्र श्च्र
|
||||||
|
ष ष्क ष्क्र ष्ट ष्ट्य ष्ट्र ष्ट्व ष्ठ ष्ठ्य ष्ण ष्ण्य ष्प ष्प्र ष्म ष्य ष्व
|
||||||
|
स स्क स्त स्त्य स्त्र स्त्र्य स्त्व स्थ स्थ्य स्न स्प स्फ स्म स्म्य स्य स्र स्व स्स्व
|
||||||
|
ह ह्ण ह्न ह्म ह्य ह्र ह्ल ह्व
|
||||||
|
|
||||||
A ดุ ตี ปู่ พี่ ป่ ม่ ปั มั พีุ
|
विकिपीडिया सभी विषयों पर प्रामाणिक और उपयोग, परिवर्तन
|
||||||
|
व पुनर्वितरण के लिए स्वतन्त्र ज्ञानकोश बनाने का एक बहुभाषीय
|
||||||
|
प्रकल्प है। यह यथासम्भव निष्पक्ष दृष्टिकोण वाली सूचना प्रसारित
|
||||||
|
करने के लिए कृतसंकल्प है। सर्वप्रथम अंग्रेज़ी विकिपीडिया
|
||||||
|
जनवरी 2001 में आरम्भ किया गया था, और हिन्दी
|
||||||
|
विकिपीडिया का शुभारम्भ जुलाई 2003 में हुआ। सहायता पृष्ठ
|
||||||
|
पर जाएं और प्रयोगस्थल में प्रयोग करके देखें कि आप स्वयं
|
||||||
|
किसी लेख को कैसे परिवर्तित कर सकते हैं।
|
||||||
|
|
||||||
ทิ่ท่ท่ิ ปิ่ป่ป่ิ ทิ้ ปิ้ มำด มําด
|
र्ज्यह
|
||||||
|
परिवर्तन
|
||||||
|
र्ग्यह
|
||||||
|
अर्ग्यिह
|
||||||
|
अर्त्स्न्यौह
|
||||||
|
अर्त्स्न्यिह कृकॄ
|
||||||
|
|
||||||
|
ड्ग ड्भ ङ्ग ङ्घ ङ्म छ्व ट्ट ट्ठ ट्व ठ्ठ ठ्व ड्ड ड्ढ ड्व ढ्ढ ढ्व ष्ठ्र द्र्य
|
||||||
|
ड्ग्र ड्भ्र ङ्ग्र ङ्घ्र ङ्म्र छ्व्र ट्ट्र ट्ठ्र ट्व्र ठ्ठ्र ठ्व्र ड्ड्र ड्ढ्र ड्व्र ढ्ढ्र ढ्व्र
|
||||||
|
|
||||||
|
श्क श्ख श्ग श्घ श्ङ श्च श्छ श्ज श्झ श्ञ श्ट श्ठ श्ड श्ढ श्ण श्त श्थ श्द श्ध श्न श्प श्फ श्ब श्भ श्म श्य श्र श्ल श्व श्श श्ष श्स श्ह श्ळ श्क्ष श्ज्ञ
|
||||||
|
र्यर्यर्य र्कर्प ऱ्कऱ्प
|
||||||
|
ऱ्प र्प ऱ्प
|
||||||