Detect script of runes

This commit is contained in:
bloeys
2022-07-05 07:12:11 +04:00
parent c40d1dfdf1
commit 603409e58e
6 changed files with 429 additions and 846 deletions

View File

@ -141,6 +141,18 @@ func (gr *GlyphRend) DrawTextOpenGLAbs(text string, screenPos *gglm.Vec3, color
} }
} }
func (gr *GlyphRend) GetTextRuns(t string) [][]rune {
// rs := []rune(t)
// runScript := unicode.Arabic
// runStartIndex := 0
// runs := make([][]rune, 0)
// for i := 0; i < len(rs); i++ {
// }
return nil
}
func (gr *GlyphRend) glyphFromRunes(curr, prev, next rune) *FontAtlasGlyph { func (gr *GlyphRend) glyphFromRunes(curr, prev, next rune) *FontAtlasGlyph {
type PosCtx int type PosCtx int
@ -375,7 +387,7 @@ func NewGlyphRend(fontFile string, fontOptions *truetype.Options, screenWidth, s
gr.SetScreenSize(screenWidth, screenHeight) gr.SetScreenSize(screenWidth, screenHeight)
RuneInfos, err = ParseUnicodeData("./unicode-data.txt") RuneInfos, err = ParseUnicodeData("./unicode-data-13.txt")
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -8,6 +8,8 @@ import (
"unicode" "unicode"
) )
const UnicodeVersion = "13.0.0"
type Category uint8 type Category uint8
const ( const (
@ -155,13 +157,17 @@ type RuneInfo struct {
//EquivalentRunes are runes that are canonically or compatiability equivalent to this rune //EquivalentRunes are runes that are canonically or compatiability equivalent to this rune
EquivalentRunes []rune EquivalentRunes []rune
//ScriptTable is one of the script tables in the unicode package such as unicode.Arabic
//and is guaranteed to not be nil.
ScriptTable *unicode.RangeTable
} }
//ParseUnicodeData decodes a 'UnicodeData' file according // ParseUnicodeData decodes a 'UnicodeData' file according
//to http://www.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html and returns a map containing information // to http://www.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html and returns a map containing information
//on all runes within the passed ranges. // on all runes within the passed ranges. If no ranges are passed then the full unicode data file will be decoded.
// //
//If no ranges are passed then the full unicode data file will be decoded // Any runes that don't fall in a script range are ignored (usually only a handful).
// //
//The latest file can be found at https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt //The latest file can be found at https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
func ParseUnicodeData(unicodeFile string, rangesToLoad ...*unicode.RangeTable) (map[rune]RuneInfo, error) { func ParseUnicodeData(unicodeFile string, rangesToLoad ...*unicode.RangeTable) (map[rune]RuneInfo, error) {
@ -200,6 +206,11 @@ func ParseUnicodeData(unicodeFile string, rangesToLoad ...*unicode.RangeTable) (
continue continue
} }
scriptTable := ScriptTableFromRune(r)
if scriptTable == nil {
continue
}
ri := ris[r] ri := ris[r]
ri = RuneInfo{ ri = RuneInfo{
Name: fields[field_charName], Name: fields[field_charName],
@ -209,6 +220,7 @@ func ParseUnicodeData(unicodeFile string, rangesToLoad ...*unicode.RangeTable) (
//NOTE: This is not perfect (NamesList.txt notes some additional ligatures), but good enough :) //NOTE: This is not perfect (NamesList.txt notes some additional ligatures), but good enough :)
IsLigature: strings.Contains(fields[field_charName], "LIGATURE"), IsLigature: strings.Contains(fields[field_charName], "LIGATURE"),
ScriptTable: scriptTable,
} }
//This might already be created for us by a previous ruen //This might already be created for us by a previous ruen
@ -266,6 +278,401 @@ func runeFromHexCodeString(c string) rune {
return rune(codepointU64) return rune(codepointU64)
} }
func ScriptTableFromRune(r rune) *unicode.RangeTable {
if unicode.In(r, unicode.Adlam) {
return unicode.Adlam
} else if unicode.In(r, unicode.Ahom) {
return unicode.Ahom
} else if unicode.In(r, unicode.Anatolian_Hieroglyphs) {
return unicode.Anatolian_Hieroglyphs
} else if unicode.In(r, unicode.Arabic) {
return unicode.Arabic
} else if unicode.In(r, unicode.Armenian) {
return unicode.Armenian
} else if unicode.In(r, unicode.Avestan) {
return unicode.Avestan
} else if unicode.In(r, unicode.Balinese) {
return unicode.Balinese
} else if unicode.In(r, unicode.Bamum) {
return unicode.Bamum
} else if unicode.In(r, unicode.Bassa_Vah) {
return unicode.Bassa_Vah
} else if unicode.In(r, unicode.Batak) {
return unicode.Batak
} else if unicode.In(r, unicode.Bengali) {
return unicode.Bengali
} else if unicode.In(r, unicode.Bhaiksuki) {
return unicode.Bhaiksuki
} else if unicode.In(r, unicode.Bopomofo) {
return unicode.Bopomofo
} else if unicode.In(r, unicode.Brahmi) {
return unicode.Brahmi
} else if unicode.In(r, unicode.Braille) {
return unicode.Braille
} else if unicode.In(r, unicode.Buginese) {
return unicode.Buginese
} else if unicode.In(r, unicode.Buhid) {
return unicode.Buhid
} else if unicode.In(r, unicode.Canadian_Aboriginal) {
return unicode.Canadian_Aboriginal
} else if unicode.In(r, unicode.Carian) {
return unicode.Carian
} else if unicode.In(r, unicode.Caucasian_Albanian) {
return unicode.Caucasian_Albanian
} else if unicode.In(r, unicode.Chakma) {
return unicode.Chakma
} else if unicode.In(r, unicode.Cham) {
return unicode.Cham
} else if unicode.In(r, unicode.Cherokee) {
return unicode.Cherokee
} else if unicode.In(r, unicode.Chorasmian) {
return unicode.Chorasmian
} else if unicode.In(r, unicode.Common) {
return unicode.Common
} else if unicode.In(r, unicode.Coptic) {
return unicode.Coptic
} else if unicode.In(r, unicode.Cuneiform) {
return unicode.Cuneiform
} else if unicode.In(r, unicode.Cypriot) {
return unicode.Cypriot
} else if unicode.In(r, unicode.Cyrillic) {
return unicode.Cyrillic
} else if unicode.In(r, unicode.Deseret) {
return unicode.Deseret
} else if unicode.In(r, unicode.Devanagari) {
return unicode.Devanagari
} else if unicode.In(r, unicode.Dives_Akuru) {
return unicode.Dives_Akuru
} else if unicode.In(r, unicode.Dogra) {
return unicode.Dogra
} else if unicode.In(r, unicode.Duployan) {
return unicode.Duployan
} else if unicode.In(r, unicode.Egyptian_Hieroglyphs) {
return unicode.Egyptian_Hieroglyphs
} else if unicode.In(r, unicode.Elbasan) {
return unicode.Elbasan
} else if unicode.In(r, unicode.Elymaic) {
return unicode.Elymaic
} else if unicode.In(r, unicode.Ethiopic) {
return unicode.Ethiopic
} else if unicode.In(r, unicode.Georgian) {
return unicode.Georgian
} else if unicode.In(r, unicode.Glagolitic) {
return unicode.Glagolitic
} else if unicode.In(r, unicode.Gothic) {
return unicode.Gothic
} else if unicode.In(r, unicode.Grantha) {
return unicode.Grantha
} else if unicode.In(r, unicode.Greek) {
return unicode.Greek
} else if unicode.In(r, unicode.Gujarati) {
return unicode.Gujarati
} else if unicode.In(r, unicode.Gunjala_Gondi) {
return unicode.Gunjala_Gondi
} else if unicode.In(r, unicode.Gurmukhi) {
return unicode.Gurmukhi
} else if unicode.In(r, unicode.Han) {
return unicode.Han
} else if unicode.In(r, unicode.Hangul) {
return unicode.Hangul
} else if unicode.In(r, unicode.Hanifi_Rohingya) {
return unicode.Hanifi_Rohingya
} else if unicode.In(r, unicode.Hanunoo) {
return unicode.Hanunoo
} else if unicode.In(r, unicode.Hatran) {
return unicode.Hatran
} else if unicode.In(r, unicode.Hebrew) {
return unicode.Hebrew
} else if unicode.In(r, unicode.Hiragana) {
return unicode.Hiragana
} else if unicode.In(r, unicode.Imperial_Aramaic) {
return unicode.Imperial_Aramaic
} else if unicode.In(r, unicode.Inherited) {
return unicode.Inherited
} else if unicode.In(r, unicode.Inscriptional_Pahlavi) {
return unicode.Inscriptional_Pahlavi
} else if unicode.In(r, unicode.Inscriptional_Parthian) {
return unicode.Inscriptional_Parthian
} else if unicode.In(r, unicode.Javanese) {
return unicode.Javanese
} else if unicode.In(r, unicode.Kaithi) {
return unicode.Kaithi
} else if unicode.In(r, unicode.Kannada) {
return unicode.Kannada
} else if unicode.In(r, unicode.Katakana) {
return unicode.Katakana
} else if unicode.In(r, unicode.Kayah_Li) {
return unicode.Kayah_Li
} else if unicode.In(r, unicode.Kharoshthi) {
return unicode.Kharoshthi
} else if unicode.In(r, unicode.Khitan_Small_Script) {
return unicode.Khitan_Small_Script
} else if unicode.In(r, unicode.Khmer) {
return unicode.Khmer
} else if unicode.In(r, unicode.Khojki) {
return unicode.Khojki
} else if unicode.In(r, unicode.Khudawadi) {
return unicode.Khudawadi
} else if unicode.In(r, unicode.Lao) {
return unicode.Lao
} else if unicode.In(r, unicode.Latin) {
return unicode.Latin
} else if unicode.In(r, unicode.Lepcha) {
return unicode.Lepcha
} else if unicode.In(r, unicode.Limbu) {
return unicode.Limbu
} else if unicode.In(r, unicode.Linear_A) {
return unicode.Linear_A
} else if unicode.In(r, unicode.Linear_B) {
return unicode.Linear_B
} else if unicode.In(r, unicode.Lisu) {
return unicode.Lisu
} else if unicode.In(r, unicode.Lycian) {
return unicode.Lycian
} else if unicode.In(r, unicode.Lydian) {
return unicode.Lydian
} else if unicode.In(r, unicode.Mahajani) {
return unicode.Mahajani
} else if unicode.In(r, unicode.Makasar) {
return unicode.Makasar
} else if unicode.In(r, unicode.Malayalam) {
return unicode.Malayalam
} else if unicode.In(r, unicode.Mandaic) {
return unicode.Mandaic
} else if unicode.In(r, unicode.Manichaean) {
return unicode.Manichaean
} else if unicode.In(r, unicode.Marchen) {
return unicode.Marchen
} else if unicode.In(r, unicode.Masaram_Gondi) {
return unicode.Masaram_Gondi
} else if unicode.In(r, unicode.Medefaidrin) {
return unicode.Medefaidrin
} else if unicode.In(r, unicode.Meetei_Mayek) {
return unicode.Meetei_Mayek
} else if unicode.In(r, unicode.Mende_Kikakui) {
return unicode.Mende_Kikakui
} else if unicode.In(r, unicode.Meroitic_Cursive) {
return unicode.Meroitic_Cursive
} else if unicode.In(r, unicode.Meroitic_Hieroglyphs) {
return unicode.Meroitic_Hieroglyphs
} else if unicode.In(r, unicode.Miao) {
return unicode.Miao
} else if unicode.In(r, unicode.Modi) {
return unicode.Modi
} else if unicode.In(r, unicode.Mongolian) {
return unicode.Mongolian
} else if unicode.In(r, unicode.Mro) {
return unicode.Mro
} else if unicode.In(r, unicode.Multani) {
return unicode.Multani
} else if unicode.In(r, unicode.Myanmar) {
return unicode.Myanmar
} else if unicode.In(r, unicode.Nabataean) {
return unicode.Nabataean
} else if unicode.In(r, unicode.Nandinagari) {
return unicode.Nandinagari
} else if unicode.In(r, unicode.New_Tai_Lue) {
return unicode.New_Tai_Lue
} else if unicode.In(r, unicode.Newa) {
return unicode.Newa
} else if unicode.In(r, unicode.Nko) {
return unicode.Nko
} else if unicode.In(r, unicode.Nushu) {
return unicode.Nushu
} else if unicode.In(r, unicode.Nyiakeng_Puachue_Hmong) {
return unicode.Nyiakeng_Puachue_Hmong
} else if unicode.In(r, unicode.Ogham) {
return unicode.Ogham
} else if unicode.In(r, unicode.Ol_Chiki) {
return unicode.Ol_Chiki
} else if unicode.In(r, unicode.Old_Hungarian) {
return unicode.Old_Hungarian
} else if unicode.In(r, unicode.Old_Italic) {
return unicode.Old_Italic
} else if unicode.In(r, unicode.Old_North_Arabian) {
return unicode.Old_North_Arabian
} else if unicode.In(r, unicode.Old_Permic) {
return unicode.Old_Permic
} else if unicode.In(r, unicode.Old_Persian) {
return unicode.Old_Persian
} else if unicode.In(r, unicode.Old_Sogdian) {
return unicode.Old_Sogdian
} else if unicode.In(r, unicode.Old_South_Arabian) {
return unicode.Old_South_Arabian
} else if unicode.In(r, unicode.Old_Turkic) {
return unicode.Old_Turkic
} else if unicode.In(r, unicode.Oriya) {
return unicode.Oriya
} else if unicode.In(r, unicode.Osage) {
return unicode.Osage
} else if unicode.In(r, unicode.Osmanya) {
return unicode.Osmanya
} else if unicode.In(r, unicode.Pahawh_Hmong) {
return unicode.Pahawh_Hmong
} else if unicode.In(r, unicode.Palmyrene) {
return unicode.Palmyrene
} else if unicode.In(r, unicode.Pau_Cin_Hau) {
return unicode.Pau_Cin_Hau
} else if unicode.In(r, unicode.Phags_Pa) {
return unicode.Phags_Pa
} else if unicode.In(r, unicode.Phoenician) {
return unicode.Phoenician
} else if unicode.In(r, unicode.Psalter_Pahlavi) {
return unicode.Psalter_Pahlavi
} else if unicode.In(r, unicode.Rejang) {
return unicode.Rejang
} else if unicode.In(r, unicode.Runic) {
return unicode.Runic
} else if unicode.In(r, unicode.Samaritan) {
return unicode.Samaritan
} else if unicode.In(r, unicode.Saurashtra) {
return unicode.Saurashtra
} else if unicode.In(r, unicode.Sharada) {
return unicode.Sharada
} else if unicode.In(r, unicode.Shavian) {
return unicode.Shavian
} else if unicode.In(r, unicode.Siddham) {
return unicode.Siddham
} else if unicode.In(r, unicode.SignWriting) {
return unicode.SignWriting
} else if unicode.In(r, unicode.Sinhala) {
return unicode.Sinhala
} else if unicode.In(r, unicode.Sogdian) {
return unicode.Sogdian
} else if unicode.In(r, unicode.Sora_Sompeng) {
return unicode.Sora_Sompeng
} else if unicode.In(r, unicode.Soyombo) {
return unicode.Soyombo
} else if unicode.In(r, unicode.Sundanese) {
return unicode.Sundanese
} else if unicode.In(r, unicode.Syloti_Nagri) {
return unicode.Syloti_Nagri
} else if unicode.In(r, unicode.Syriac) {
return unicode.Syriac
} else if unicode.In(r, unicode.Tagalog) {
return unicode.Tagalog
} else if unicode.In(r, unicode.Tagbanwa) {
return unicode.Tagbanwa
} else if unicode.In(r, unicode.Tai_Le) {
return unicode.Tai_Le
} else if unicode.In(r, unicode.Tai_Tham) {
return unicode.Tai_Tham
} else if unicode.In(r, unicode.Tai_Viet) {
return unicode.Tai_Viet
} else if unicode.In(r, unicode.Takri) {
return unicode.Takri
} else if unicode.In(r, unicode.Tamil) {
return unicode.Tamil
} else if unicode.In(r, unicode.Tangut) {
return unicode.Tangut
} else if unicode.In(r, unicode.Telugu) {
return unicode.Telugu
} else if unicode.In(r, unicode.Thaana) {
return unicode.Thaana
} else if unicode.In(r, unicode.Thai) {
return unicode.Thai
} else if unicode.In(r, unicode.Tibetan) {
return unicode.Tibetan
} else if unicode.In(r, unicode.Tifinagh) {
return unicode.Tifinagh
} else if unicode.In(r, unicode.Tirhuta) {
return unicode.Tirhuta
} else if unicode.In(r, unicode.Ugaritic) {
return unicode.Ugaritic
} else if unicode.In(r, unicode.Vai) {
return unicode.Vai
} else if unicode.In(r, unicode.Wancho) {
return unicode.Wancho
} else if unicode.In(r, unicode.Warang_Citi) {
return unicode.Warang_Citi
} else if unicode.In(r, unicode.Yezidi) {
return unicode.Yezidi
} else if unicode.In(r, unicode.Yi) {
return unicode.Yi
} else if unicode.In(r, unicode.Zanabazar_Square) {
return unicode.Zanabazar_Square
}
return nil
}
func PropertyTableFromRune(r rune) *unicode.RangeTable {
if unicode.In(r, unicode.ASCII_Hex_Digit) {
return unicode.ASCII_Hex_Digit
} else if unicode.In(r, unicode.Bidi_Control) {
return unicode.Bidi_Control
} else if unicode.In(r, unicode.Dash) {
return unicode.Dash
} else if unicode.In(r, unicode.Deprecated) {
return unicode.Deprecated
} else if unicode.In(r, unicode.Diacritic) {
return unicode.Diacritic
} else if unicode.In(r, unicode.Extender) {
return unicode.Extender
} else if unicode.In(r, unicode.Hex_Digit) {
return unicode.Hex_Digit
} else if unicode.In(r, unicode.Hyphen) {
return unicode.Hyphen
} else if unicode.In(r, unicode.IDS_Binary_Operator) {
return unicode.IDS_Binary_Operator
} else if unicode.In(r, unicode.IDS_Trinary_Operator) {
return unicode.IDS_Trinary_Operator
} else if unicode.In(r, unicode.Ideographic) {
return unicode.Ideographic
} else if unicode.In(r, unicode.Join_Control) {
return unicode.Join_Control
} else if unicode.In(r, unicode.Logical_Order_Exception) {
return unicode.Logical_Order_Exception
} else if unicode.In(r, unicode.Noncharacter_Code_Point) {
return unicode.Noncharacter_Code_Point
} else if unicode.In(r, unicode.Other_Alphabetic) {
return unicode.Other_Alphabetic
} else if unicode.In(r, unicode.Other_Default_Ignorable_Code_Point) {
return unicode.Other_Default_Ignorable_Code_Point
} else if unicode.In(r, unicode.Other_Grapheme_Extend) {
return unicode.Other_Grapheme_Extend
} else if unicode.In(r, unicode.Other_ID_Continue) {
return unicode.Other_ID_Continue
} else if unicode.In(r, unicode.Other_ID_Start) {
return unicode.Other_ID_Start
} else if unicode.In(r, unicode.Other_Lowercase) {
return unicode.Other_Lowercase
} else if unicode.In(r, unicode.Other_Math) {
return unicode.Other_Math
} else if unicode.In(r, unicode.Other_Uppercase) {
return unicode.Other_Uppercase
} else if unicode.In(r, unicode.Pattern_Syntax) {
return unicode.Pattern_Syntax
} else if unicode.In(r, unicode.Pattern_White_Space) {
return unicode.Pattern_White_Space
} else if unicode.In(r, unicode.Prepended_Concatenation_Mark) {
return unicode.Prepended_Concatenation_Mark
} else if unicode.In(r, unicode.Quotation_Mark) {
return unicode.Quotation_Mark
} else if unicode.In(r, unicode.Radical) {
return unicode.Radical
} else if unicode.In(r, unicode.Regional_Indicator) {
return unicode.Regional_Indicator
} else if unicode.In(r, unicode.STerm) {
return unicode.STerm
} else if unicode.In(r, unicode.Sentence_Terminal) {
return unicode.Sentence_Terminal
} else if unicode.In(r, unicode.Soft_Dotted) {
return unicode.Soft_Dotted
} else if unicode.In(r, unicode.Terminal_Punctuation) {
return unicode.Terminal_Punctuation
} else if unicode.In(r, unicode.Unified_Ideograph) {
return unicode.Unified_Ideograph
} else if unicode.In(r, unicode.Variation_Selector) {
return unicode.Variation_Selector
} else if unicode.In(r, unicode.White_Space) {
return unicode.White_Space
}
return nil
}
func categoryStringToCategory(c string) Category { func categoryStringToCategory(c string) Category {
switch c { switch c {

1
go.mod
View File

@ -14,5 +14,4 @@ require (
require ( require (
github.com/bloeys/assimp-go v0.4.2 // indirect github.com/bloeys/assimp-go v0.4.2 // indirect
github.com/inkyblackness/imgui-go/v4 v4.3.0 // indirect github.com/inkyblackness/imgui-go/v4 v4.3.0 // indirect
golang.org/x/text v0.3.7 // indirect
) )

3
go.sum
View File

@ -2,8 +2,6 @@ github.com/bloeys/assimp-go v0.4.2 h1:ArVK74BCFcTO/rCGj2NgZG9xtbjnJdEn5npIeJx1Z0
github.com/bloeys/assimp-go v0.4.2/go.mod h1:my3yRxT7CfOztmvi+0svmwbaqw0KFrxaHxncoyaEIP0= github.com/bloeys/assimp-go v0.4.2/go.mod h1:my3yRxT7CfOztmvi+0svmwbaqw0KFrxaHxncoyaEIP0=
github.com/bloeys/gglm v0.41.10 h1:R9FMiI+VQVXAI+vDwCB7z9xqzy5VAR1657u8TQTDNKA= github.com/bloeys/gglm v0.41.10 h1:R9FMiI+VQVXAI+vDwCB7z9xqzy5VAR1657u8TQTDNKA=
github.com/bloeys/gglm v0.41.10/go.mod h1:qwJQ0WzV191wAMwlGicbfbChbKoSedMk7gFFX6GnyOk= github.com/bloeys/gglm v0.41.10/go.mod h1:qwJQ0WzV191wAMwlGicbfbChbKoSedMk7gFFX6GnyOk=
github.com/bloeys/nmage v0.12.12 h1:LeMR6NI+yMqxAZecdz7lOT1re4CWAVd1wDeJFK77+pI=
github.com/bloeys/nmage v0.12.12/go.mod h1:chDDenktiDvAG4BoFYNq1n8nACpbQ6/RFuCgCGmDxh4=
github.com/bloeys/nmage v0.12.13 h1:xvoaMAdHNnVif7LCaQkYR7jewXDZa9B1iV7IdG39dgc= github.com/bloeys/nmage v0.12.13 h1:xvoaMAdHNnVif7LCaQkYR7jewXDZa9B1iV7IdG39dgc=
github.com/bloeys/nmage v0.12.13/go.mod h1:chDDenktiDvAG4BoFYNq1n8nACpbQ6/RFuCgCGmDxh4= github.com/bloeys/nmage v0.12.13/go.mod h1:chDDenktiDvAG4BoFYNq1n8nACpbQ6/RFuCgCGmDxh4=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
@ -23,6 +21,5 @@ github.com/veandco/go-sdl2 v0.4.10 h1:8QoD2bhWl7SbQDflIAUYWfl9Vq+mT8/boJFAUzAScg
github.com/veandco/go-sdl2 v0.4.10/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY= github.com/veandco/go-sdl2 v0.4.10/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY=
golang.org/x/image v0.0.0-20220617043117-41969df76e82 h1:KpZB5pUSBvrHltNEdK/tw0xlPeD13M6M6aGP32gKqiw= golang.org/x/image v0.0.0-20220617043117-41969df76e82 h1:KpZB5pUSBvrHltNEdK/tw0xlPeD13M6M6aGP32gKqiw=
golang.org/x/image v0.0.0-20220617043117-41969df76e82/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY= golang.org/x/image v0.0.0-20220617043117-41969df76e82/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

View File

@ -100,9 +100,6 @@ func (p *program) Init() {
p.gridMat = materials.NewMaterial("grid", "./res/shaders/grid.glsl") p.gridMat = materials.NewMaterial("grid", "./res/shaders/grid.glsl")
p.handleWindowResize() p.handleWindowResize()
fmt.Printf("Beh equivalents: %v\n", string(glyphs.RuneInfos['ب'].EquivalentRunes))
// engine.Quit()
} }
func (p *program) Update() { func (p *program) Update() {

File diff suppressed because it is too large Load Diff