added control pictures unicode block

This commit is contained in:
minjaesong
2026-03-05 11:22:50 +09:00
parent f7ffeec0e2
commit 99c6ed5c8c
5 changed files with 10 additions and 1 deletions

View File

@@ -16,7 +16,7 @@ import sheet_config as SC
# PUA range for Hangul jamo variant storage.
# We need space for: max_col * max_row variants.
# Using 0xF0600-0xF0FFF (2560 slots, more than enough).
# Using 0xF0600-0xF1E7F
HANGUL_PUA_BASE = 0xF0600

View File

@@ -70,6 +70,7 @@ SHEET_DEVANAGARI2_INTERNAL_VARW = 36
SHEET_CODESTYLE_ASCII_VARW = 37
SHEET_ALPHABETIC_PRESENTATION_FORMS = 38
SHEET_HENTAIGANA_VARW = 39
SHEET_CONTROL_PICTURES_VARW = 40
SHEET_UNKNOWN = 254
@@ -114,6 +115,7 @@ FILE_LIST = [
"pua_codestyle_ascii_variable.tga",
"alphabetic_presentation_forms_extrawide_variable.tga",
"hentaigana_variable.tga",
"control_pictures_variable.tga",
]
CODE_RANGE = [
@@ -157,6 +159,7 @@ CODE_RANGE = [
list(range(0xF0520, 0xF0580)), # 37: Codestyle ASCII
list(range(0xFB00, 0xFB18)), # 38: Alphabetic Presentation
list(range(0x1B000, 0x1B170)), # 39: Hentaigana
list(range(0x2400, 0x2440)), # 40: Control Pictures
]
CODE_RANGE_HANGUL_COMPAT = range(0x3130, 0x3190)
@@ -531,5 +534,6 @@ def index_y(sheet_index, c):
SHEET_CODESTYLE_ASCII_VARW: lambda: (c - 0xF0520) // 16,
SHEET_ALPHABETIC_PRESENTATION_FORMS: lambda: (c - 0xFB00) // 16,
SHEET_HENTAIGANA_VARW: lambda: (c - 0x1B000) // 16,
SHEET_CONTROL_PICTURES_VARW: lambda: (c - 0x2400) // 16,
SHEET_HANGUL: lambda: 0,
}.get(sheet_index, lambda: c // 16)()

Binary file not shown.

BIN
demo.PNG

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 168 KiB

View File

@@ -886,6 +886,7 @@ class TerrarumSansBitmap(
SHEET_CODESTYLE_ASCII_VARW -> codestyleAsciiIndexY(ch)
SHEET_ALPHABETIC_PRESENTATION_FORMS -> alphabeticPresentationFormsY(ch)
SHEET_HENTAIGANA_VARW -> hentaiganaIndexY(ch)
SHEET_CONTROL_PICTURES_VARW -> controlPicturesIndexY(ch)
else -> ch / 16
}
@@ -2600,6 +2601,7 @@ class TerrarumSansBitmap(
internal const val SHEET_CODESTYLE_ASCII_VARW = 37
internal const val SHEET_ALPHABETIC_PRESENTATION_FORMS = 38
internal const val SHEET_HENTAIGANA_VARW = 39
internal const val SHEET_CONTROL_PICTURES_VARW = 40
internal const val SHEET_UNKNOWN = 254
@@ -2666,6 +2668,7 @@ class TerrarumSansBitmap(
"pua_codestyle_ascii_variable.tga",
"alphabetic_presentation_forms_extrawide_variable.tga",
"hentaigana_variable.tga",
"control_pictures_variable.tga",
)
internal val codeRange = arrayOf( // MUST BE MATCHING WITH SHEET INDICES!!
0..0xFF, // SHEET_ASCII_VARW
@@ -2708,6 +2711,7 @@ class TerrarumSansBitmap(
0xF0520..0xF057F, // SHEET_CODESTYLE_ASCII_VARW
0xFB00..0xFB17, // SHEET_ALPHABETIC_PRESENTATION_FORMS
0x1B000..0x1B16F, // SHEET_HENTAIGANA_VARW
0x2400..0x243F, // SHEET_CONTROL_PICTURES_VARW
)
private val codeRangeHangulCompat = 0x3130..0x318F
@@ -3056,6 +3060,7 @@ class TerrarumSansBitmap(
private fun codestyleAsciiIndexY(c: CodePoint) = (c - 0xF0520) / 16
private fun alphabeticPresentationFormsY(c: CodePoint) = (c - 0xFB00) / 16
private fun hentaiganaIndexY(c: CodePoint) = (c - 0x1B000) / 16
private fun controlPicturesIndexY(c: CodePoint) = (c - 0x2400) / 16
val charsetOverrideDefault = Character.toChars(CHARSET_OVERRIDE_DEFAULT).toSurrogatedString()
val charsetOverrideBulgarian = Character.toChars(CHARSET_OVERRIDE_BG_BG).toSurrogatedString()