diff --git a/.gitignore b/.gitignore index e86f730..ee79f59 100755 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,8 @@ Terrarum-sans-bitmap*.zip TerrarumSansBitmap*.jar Font*.jar tmp_* +*~ +.tmp* +tmp_* +*.bak +*-autosave.kra diff --git a/assets/ascii_variable.tga b/assets/ascii_variable.tga index 7ce2b0c..fab6deb 100755 Binary files a/assets/ascii_variable.tga and b/assets/ascii_variable.tga differ diff --git a/assets/cyrilic_bulgarian_variable.tga b/assets/cyrilic_bulgarian_variable.tga index 9b87a14..20db03d 100755 Binary files a/assets/cyrilic_bulgarian_variable.tga and b/assets/cyrilic_bulgarian_variable.tga differ diff --git a/assets/cyrilic_serbian_variable.tga b/assets/cyrilic_serbian_variable.tga index 818b86a..a89f4b9 100755 Binary files a/assets/cyrilic_serbian_variable.tga and b/assets/cyrilic_serbian_variable.tga differ diff --git a/assets/cyrilic_variable.tga b/assets/cyrilic_variable.tga index ff37a08..53eeafa 100755 Binary files a/assets/cyrilic_variable.tga and b/assets/cyrilic_variable.tga differ diff --git a/assets/latinExtA_variable.tga b/assets/latinExtA_variable.tga index 16f2df0..f50e4a5 100755 Binary files a/assets/latinExtA_variable.tga and b/assets/latinExtA_variable.tga differ diff --git a/assets/latinExtB_variable.tga b/assets/latinExtB_variable.tga index ee08b50..eadfa82 100755 Binary files a/assets/latinExtB_variable.tga and b/assets/latinExtB_variable.tga differ diff --git a/assets/latinExtC_variable.tga b/assets/latinExtC_variable.tga index b9b5de0..3137f81 100755 Binary files a/assets/latinExtC_variable.tga and b/assets/latinExtC_variable.tga differ diff --git a/assets/latinExt_additional_variable.tga b/assets/latinExt_additional_variable.tga index bb97112..f79e989 100755 Binary files a/assets/latinExt_additional_variable.tga and b/assets/latinExt_additional_variable.tga differ diff --git a/demo.PNG b/demo.PNG index e19e9e5..fd1e436 100755 Binary files a/demo.PNG and b/demo.PNG differ diff --git a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt index b313f0a..a4e080e 100755 --- a/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/GameFontBase.kt @@ -1696,8 +1696,8 @@ for c in s: a.append("0x{0:x}".format(ord(c))) print(','.join(a)) - */ // acegijmnopqrsuvwxyzɱɳʙɾɽʒʂʐʋɹɻɥɟɡɢʛȵɲŋɴʀɕʑçʝxɣχʁʜʍɰʟɨʉɯuʊøɘɵɤəɛœɜɞʌɔæɐɶɑɒɚɝɩɪʅʈʏʞⱥⱦⱱⱳⱴⱶⱷⱸⱺⱻꜥꜩꜫꜭꜯꜰꜱꜳꜵꜷꜹꜻꜽꜿꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝫꝯꝳꝴꝵꝶꝷꝺꝼꝿꞁꞃꞅꞇꞑꞓꞔꞛꞝꞟꞡꞥꞧꞩꞮꞷꟺ\uA7AF\uA7B9\uA7C3\uA7CAƿ - private val lowHeightLetters = intArrayOf(0x61,0x63,0x65,0x67,0x69,0x6a,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x75,0x76,0x77,0x78,0x79,0x7a,0x271,0x273,0x299,0x27e,0x27d,0x292,0x282,0x290,0x28b,0x279,0x27b,0x265,0x25f,0x261,0x262,0x29b,0x235,0x272,0x14b,0x274,0x280,0x255,0x291,0xe7,0x29d,0x78,0x263,0x3c7,0x281,0x29c,0x28d,0x270,0x29f,0x268,0x289,0x26f,0x75,0x28a,0xf8,0x258,0x275,0x264,0x259,0x25b,0x153,0x25c,0x25e,0x28c,0x254,0xe6,0x250,0x276,0x251,0x252,0x25a,0x25d,0x269,0x26a,0x285,0x288,0x28f,0x29e,0x2c65,0x2c66,0x2c71,0x2c73,0x2c74,0x2c76,0x2c77,0x2c78,0x2c7a,0x2c7b,0xa725,0xa729,0xa72b,0xa72d,0xa72f,0xa730,0xa731,0xa733,0xa735,0xa737,0xa739,0xa73b,0xa73d,0xa73f,0xa74b,0xa74d,0xa74f,0xa751,0xa753,0xa755,0xa757,0xa759,0xa75b,0xa75d,0xa75f,0xa761,0xa76b,0xa76f,0xa773,0xa774,0xa775,0xa776,0xa777,0xa77a,0xa77c,0xa77f,0xa781,0xa783,0xa785,0xa787,0xa791,0xa793,0xa794,0xa79b,0xa79d,0xa79f,0xa7a1,0xa7a5,0xa7a7,0xa7a9,0xa7ae,0xa7b7,0xa7fa,0xa7af,0xa7b9,0xa7c3,0xa7ca,0x1bf).toSortedSet() + */ // acegijmnopqrsuvwxyzɱɳʙɾɽʒʂʐʋɹɻɥɟɡɢʛȵɲŋɴʀɕʑçʝxɣχʁʜʍɰʟɨʉɯuʊøɘɵɤəɛœɜɞʌɔæɐɶɑɒɚɝɩɪʅʈʏʞⱥⱦⱱⱳⱴⱶⱷⱸⱺⱻꜥꜩꜫꜭꜯꜰꜱꜳꜵꜷꜹꜻꜽꜿꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝫꝯꝳꝴꝵꝶꝷꝺꝼꝿꞁꞃꞅꞇꞑꞓꞔꞛꞝꞟꞡꞥꞧꞩꞮꞷꟺ\uA7AF\uA7B9\uA7C3\uA7CAƍƞơƣƨưƴƶƹƺƽƿ + private val lowHeightLetters = intArrayOf(0x61,0x63,0x65,0x67,0x69,0x6a,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x75,0x76,0x77,0x78,0x79,0x7a,0x271,0x273,0x299,0x27e,0x27d,0x292,0x282,0x290,0x28b,0x279,0x27b,0x265,0x25f,0x261,0x262,0x29b,0x235,0x272,0x14b,0x274,0x280,0x255,0x291,0xe7,0x29d,0x78,0x263,0x3c7,0x281,0x29c,0x28d,0x270,0x29f,0x268,0x289,0x26f,0x75,0x28a,0xf8,0x258,0x275,0x264,0x259,0x25b,0x153,0x25c,0x25e,0x28c,0x254,0xe6,0x250,0x276,0x251,0x252,0x25a,0x25d,0x269,0x26a,0x285,0x288,0x28f,0x29e,0x2c65,0x2c66,0x2c71,0x2c73,0x2c74,0x2c76,0x2c77,0x2c78,0x2c7a,0x2c7b,0xa725,0xa729,0xa72b,0xa72d,0xa72f,0xa730,0xa731,0xa733,0xa735,0xa737,0xa739,0xa73b,0xa73d,0xa73f,0xa74b,0xa74d,0xa74f,0xa751,0xa753,0xa755,0xa757,0xa759,0xa75b,0xa75d,0xa75f,0xa761,0xa76b,0xa76f,0xa773,0xa774,0xa775,0xa776,0xa777,0xa77a,0xa77c,0xa77f,0xa781,0xa783,0xa785,0xa787,0xa791,0xa793,0xa794,0xa79b,0xa79d,0xa79f,0xa7a1,0xa7a5,0xa7a7,0xa7a9,0xa7ae,0xa7b7,0xa7fa,0xa7af,0xa7b9,0xa7c3,0xa7ca,0x18d,0x19e,0x1a1,0x1a3,0x1a8,0x1b0,0x1b4,0x1b6,0x1b9,0x1ba,0x1bd,0x1bf).toSortedSet() // TŢŤƬƮȚͲΤТҬᛏṪṬṮṰⲦϮϯⴶꚌꚐᎢᛠꓔ private val kernTees = intArrayOf(0x54,0x162,0x164,0x1ac,0x1ae,0x21a,0x372,0x3a4,0x422,0x4ac,0x16cf,0x1e6a,0x1e6c,0x1e6e,0x1e70,0x2ca6,0x3ee,0x3ef,0x2d36,0xa68c,0xa690,0x13a2,0x16e0,0xa4d4).toSortedSet() // ŦȾYÝŶŸɎΎΫΥҮҰᛉᛘẎỲỴỶỸὙὛὝὟῪΎꓬȲ @@ -1712,8 +1712,8 @@ print(','.join(a)) private val kernGammas = intArrayOf(0x393,0x403,0x413,0x490,0x492,0x4f6,0x4fa,0x13b1,0x16a8,0x16a9,0x16aa,0x16ab,0x16b9,0x16c7,0x16da,0x16db,0x16e2,0x16ee,0x2c84,0xa4e9,0xa784).toSortedSet() // JĴɹɺɻͿᛇᴊᎫᏗꓕꓙꞱꭻꮧ private val kernJays = intArrayOf(0x4a,0x134,0x279,0x27a,0x27b,0x37f,0x16c7,0x1d0a,0x13ab,0x13d7,0xa4d5,0xa4d9,0xa7b1,0xab7b,0xaba7).toSortedSet() - // dďԀԁԂԃԺժմվփᎴᏊᏯᲫᶁᶑḍḏḑḓⴓⴛⴣⴥꝱꟈ - private val kernDees = intArrayOf(0x64,0x10f,0x500,0x501,0x502,0x503,0x53a,0x56a,0x574,0x57e,0x583,0x13b4,0x13ca,0x13ef,0x1cab,0x1d81,0x1d91,0x1e0d,0x1e0f,0x1e11,0x1e13,0x2d13,0x2d1b,0x2d23,0x2d25,0xa771,0xa7c8) + // dďđƌɗʠḋԀԁԂԃԺժմվփᎴᏊᏯᲫᶁᶑḍḏḑḓⴓⴛⴣⴥꝱꟈ + private val kernDees = intArrayOf(0x64,0x10f,0x111,0x18c,0x257,0x2a0,0x1e0b,0x500,0x501,0x502,0x503,0x53a,0x56a,0x574,0x57e,0x583,0x13b4,0x13ca,0x13ef,0x1cab,0x1d81,0x1d91,0x1e0d,0x1e0f,0x1e11,0x1e13,0x2d13,0x2d1b,0x2d23,0x2d25,0xa771,0xa7c8) // bhkƙþĥķƄƅƕƙƥǩǶȟɓɦɧʣʤʥʪʫЪЬҺһԂԃԈԊԠԢԦԧԽՒիխհնփևსხᏏᏓᏥᲮᵬᶀᶄḅḇḣḥḧḱḳḵᾈᾉᾊᾋᾌᾍᾎᾏᾘᾙᾚᾛᾜᾝᾞᾟᾨᾩᾪᾫᾬᾭᾮᾯῌⴐⴑⴙⴛᲆⱨⱪꙎꝃꝧꞗꞣ private val kernBees = intArrayOf(0x62,0x68,0x6b,0x199,0xfe,0x125,0x137,0x184,0x185,0x195,0x199,0x1a5,0x1e9,0x1f6,0x21f,0x253,0x266,0x267,0x2a3,0x2a4,0x2a5,0x2aa,0x2ab,0x42a,0x42c,0x4ba,0x4bb,0x502,0x503,0x508,0x50a,0x520,0x522,0x526,0x527,0x53d,0x552,0x56b,0x56d,0x570,0x576,0x583,0x587,0x10e1,0x10ee,0x13cf,0x13d3,0x13e5,0x1cae,0x1d6c,0x1d80,0x1d84,0x1e05,0x1e07,0x1e23,0x1e25,0x1e27,0x1e31,0x1e33,0x1e35,0x1f88,0x1f89,0x1f8a,0x1f8b,0x1f8c,0x1f8d,0x1f8e,0x1f8f,0x1f98,0x1f99,0x1f9a,0x1f9b,0x1f9c,0x1f9d,0x1f9e,0x1f9f,0x1fa8,0x1fa9,0x1faa,0x1fab,0x1fac,0x1fad,0x1fae,0x1faf,0x1fcc,0x2d10,0x2d11,0x2d19,0x2d1b,0x1c86,0x2c68,0x2c6a,0xa64e,0xa743,0xa767,0xa797,0xa7a3) // yÿŷƴɏɣɤʏγνуўѵѷүұӯӱӳ @@ -1721,10 +1721,14 @@ print(','.join(a)) // ƛʌλлљѧԉԓԡԯ private val kernLowLambdas = intArrayOf(0x19b,0x28c,0x3bb,0x43b,0x459,0x467,0x509,0x513,0x521,0x52f).toSortedSet() + private val slashes = intArrayOf(0x2f) + private val kernTee = -2 private val kernYee = -1 private val kernAV = -1 private val kernAVlow = -1 + private val kernSlash = -1 + private val kernDoubleSlash = -2 private fun getKerning(prevChar: CodePoint, thisChar: CodePoint): Int { return if (prevChar in lowHeightLetters) { @@ -1786,6 +1790,11 @@ print(','.join(a)) else if (thisChar in kernLowVees) kernAVlow else 0 } + else if (prevChar in slashes) { + return if (thisChar in kernDees || thisChar in lowHeightLetters) kernSlash // / - d + else if (thisChar in slashes) kernDoubleSlash + else 0 + } else 0 } diff --git a/testing.PNG b/testing.PNG index 02cb0eb..d3af9a0 100755 Binary files a/testing.PNG and b/testing.PNG differ diff --git a/testtext.txt b/testtext.txt index ecf4af6..ec527a2 100755 --- a/testtext.txt +++ b/testtext.txt @@ -13,4 +13,10 @@ Ẽ o̸ O̸ when the line ends with a diacritics, whole letter wont render -if the line starts with a letter-with-diacritic, it will error out \ No newline at end of file +if the line starts with a letter-with-diacritic, it will error out + +Lyklaborð +https://www.java.com/cov/en/download +/a /c /d /e /g /i /j /m /n /o /p /q /r /s /u /v v/ /w /x /y /z +germyndurinnkvikkalkul + diff --git a/work_files/ascii_variable.psd b/work_files/ascii_variable.psd index 14154f2..b5a2804 100644 Binary files a/work_files/ascii_variable.psd and b/work_files/ascii_variable.psd differ diff --git a/work_files/cyrilic_bulgarian_variable.psd b/work_files/cyrilic_bulgarian_variable.psd index b2b8ba7..6a45094 100644 Binary files a/work_files/cyrilic_bulgarian_variable.psd and b/work_files/cyrilic_bulgarian_variable.psd differ diff --git a/work_files/cyrilic_serbian_variable.psd b/work_files/cyrilic_serbian_variable.psd index aa92830..4222a76 100644 Binary files a/work_files/cyrilic_serbian_variable.psd and b/work_files/cyrilic_serbian_variable.psd differ diff --git a/work_files/cyrilic_variable.psd b/work_files/cyrilic_variable.psd index bd1ac63..fff1598 100644 Binary files a/work_files/cyrilic_variable.psd and b/work_files/cyrilic_variable.psd differ diff --git a/work_files/latinExtA_variable.psd b/work_files/latinExtA_variable.psd index a4b0f73..363d1a7 100644 Binary files a/work_files/latinExtA_variable.psd and b/work_files/latinExtA_variable.psd differ diff --git a/work_files/latinExtB_variable.psd b/work_files/latinExtB_variable.psd index 0176a87..6464900 100644 Binary files a/work_files/latinExtB_variable.psd and b/work_files/latinExtB_variable.psd differ diff --git a/work_files/latinExtC_variable.psd b/work_files/latinExtC_variable.psd index c81bcb9..3a99b0e 100644 Binary files a/work_files/latinExtC_variable.psd and b/work_files/latinExtC_variable.psd differ diff --git a/work_files/latinExt_additional_variable.psd b/work_files/latinExt_additional_variable.psd index e007d8f..2d06716 100644 Binary files a/work_files/latinExt_additional_variable.psd and b/work_files/latinExt_additional_variable.psd differ