From 4614ffab92bfe3331a7fa2899ab461d18c9ddc8a Mon Sep 17 00:00:00 2001 From: minjaesong Date: Mon, 7 Feb 2022 13:38:22 +0900 Subject: [PATCH] braille support --- assets/braille_variable.tga | 3 +++ .../gdx/TerrarumSansBitmap.kt | 7 +++++++ work_files/Braille.psd | Bin 47012 -> 0 bytes work_files/braille_variable.psd | 3 +++ 4 files changed, 13 insertions(+) create mode 100644 assets/braille_variable.tga delete mode 100755 work_files/Braille.psd create mode 100644 work_files/braille_variable.psd diff --git a/assets/braille_variable.tga b/assets/braille_variable.tga new file mode 100644 index 0000000..9e68726 --- /dev/null +++ b/assets/braille_variable.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:859ed572e676877d736779e060ac3a079ba30c2fa958dba7e6f4742d144836dc +size 327698 diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt index 8d06a73..d53b81d 100755 --- a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt @@ -605,6 +605,9 @@ class TerrarumSansBitmap( SHEET_BENGALI_VARW -> { sheetY = bengaliIndexY(ch) } + SHEET_BRAILLE_VARW -> { + sheetY = brailleIndexY(ch) + } else -> { sheetY = ch / 16 } @@ -1736,6 +1739,7 @@ class TerrarumSansBitmap( internal val SHEET_ENCLOSED_ALPHNUM_SUPL_VARW = 31 internal val SHEET_TAMIL_VARW = 32 internal val SHEET_BENGALI_VARW = 33 + internal val SHEET_BRAILLE_VARW = 34 internal val SHEET_UNKNOWN = 254 @@ -1791,6 +1795,7 @@ class TerrarumSansBitmap( "enclosed_alphanumeric_supplement_variable.tga", "tamil_extrawide_variable.tga", "bengali_variable.tga", + "braille_variable.tga" ) private val codeRange = arrayOf( // MUST BE MATCHING WITH SHEET INDICES!! 0..0xFF, // SHEET_ASCII_VARW @@ -1827,6 +1832,7 @@ class TerrarumSansBitmap( 0x1F100..0x1F1FF, // SHEET_ENCLOSED_ALPHNUM_SUPL_VARW (0x0B80..0x0BFF) + (0xF00C0..0xF00FF), // SHEET_TAMIL_VARW 0x980..0x9FF, // SHEET_BENGALI_VARW + 0x2800..0x28FF, // SHEET_BRAILLE_VARW ) private val codeRangeHangulCompat = 0x3130..0x318F @@ -2286,6 +2292,7 @@ class TerrarumSansBitmap( private fun letterlikeIndexY(c: CodePoint) = (c - 0x2100) / 16 private fun enclosedAlphnumSuplY(c: CodePoint) = (c - 0x1F100) / 16 private fun tamilIndexY(c: CodePoint) = (if (c < 0xF0000) (c - 0x0B80) else (c - 0xF0040)) / 16 + private fun brailleIndexY(c: CodePoint) = (c - 0x2800) / 16 val charsetOverrideDefault = Character.toChars(CHARSET_OVERRIDE_DEFAULT).toSurrogatedString() val charsetOverrideBulgarian = Character.toChars(CHARSET_OVERRIDE_BG_BG).toSurrogatedString() diff --git a/work_files/Braille.psd b/work_files/Braille.psd deleted file mode 100755 index 4bfe83ed97e9d30ee721f42960dd91f283abee14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47012 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 I=js0OUog&TR{#J2 diff --git a/work_files/braille_variable.psd b/work_files/braille_variable.psd new file mode 100644 index 0000000..4ecfea0 --- /dev/null +++ b/work_files/braille_variable.psd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb37afb5369a0374d2e83604d9c7036d185cf5b658732fd2e17540d048570a59 +size 303582