# {py:mod}`simvx.core.text.msdf` ```{py:module} simvx.core.text.msdf ``` ```{autodoc2-docstring} simvx.core.text.msdf :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`GlyphRegion ` - ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion :summary: ``` * - {py:obj}`MSDFAtlas ` - ```{autodoc2-docstring} simvx.core.text.msdf.MSDFAtlas :summary: ``` * - {py:obj}`BitmapAtlas ` - ```{autodoc2-docstring} simvx.core.text.msdf.BitmapAtlas :summary: ``` ```` ### API `````{py:class} GlyphRegion :canonical: simvx.core.text.msdf.GlyphRegion ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion ``` ````{py:attribute} char :canonical: simvx.core.text.msdf.GlyphRegion.char :type: str :value: > None ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.char ``` ```` ````{py:attribute} x :canonical: simvx.core.text.msdf.GlyphRegion.x :type: int :value: > None ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.x ``` ```` ````{py:attribute} y :canonical: simvx.core.text.msdf.GlyphRegion.y :type: int :value: > None ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.y ``` ```` ````{py:attribute} w :canonical: simvx.core.text.msdf.GlyphRegion.w :type: int :value: > None ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.w ``` ```` ````{py:attribute} h :canonical: simvx.core.text.msdf.GlyphRegion.h :type: int :value: > None ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.h ``` ```` ````{py:attribute} metrics :canonical: simvx.core.text.msdf.GlyphRegion.metrics :type: simvx.core.text.font.GlyphMetrics :value: > None ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.metrics ``` ```` ````{py:attribute} u0 :canonical: simvx.core.text.msdf.GlyphRegion.u0 :type: float :value: > 0.0 ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.u0 ``` ```` ````{py:attribute} v0 :canonical: simvx.core.text.msdf.GlyphRegion.v0 :type: float :value: > 0.0 ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.v0 ``` ```` ````{py:attribute} u1 :canonical: simvx.core.text.msdf.GlyphRegion.u1 :type: float :value: > 0.0 ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.u1 ``` ```` ````{py:attribute} v1 :canonical: simvx.core.text.msdf.GlyphRegion.v1 :type: float :value: > 0.0 ```{autodoc2-docstring} simvx.core.text.msdf.GlyphRegion.v1 ``` ```` ````` `````{py:class} MSDFAtlas(font: simvx.core.text.font.Font, atlas_size: int = 1024, glyph_padding: int = 4, sdf_range: float = 4.0, charset: str | None = None) :canonical: simvx.core.text.msdf.MSDFAtlas ```{autodoc2-docstring} simvx.core.text.msdf.MSDFAtlas ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.text.msdf.MSDFAtlas.__init__ ``` ````{py:method} ensure_glyphs(text: str) -> bool :canonical: simvx.core.text.msdf.MSDFAtlas.ensure_glyphs ```{autodoc2-docstring} simvx.core.text.msdf.MSDFAtlas.ensure_glyphs ``` ```` ````{py:method} get_uv(char: str) -> tuple[float, float, float, float] :canonical: simvx.core.text.msdf.MSDFAtlas.get_uv ```{autodoc2-docstring} simvx.core.text.msdf.MSDFAtlas.get_uv ``` ```` ````` `````{py:class} BitmapAtlas(font_path: str, target_size: int, atlas_size: int = 512, charset: str | None = None) :canonical: simvx.core.text.msdf.BitmapAtlas ```{autodoc2-docstring} simvx.core.text.msdf.BitmapAtlas ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.text.msdf.BitmapAtlas.__init__ ``` ````{py:method} ensure_glyphs(text: str) -> bool :canonical: simvx.core.text.msdf.BitmapAtlas.ensure_glyphs ```{autodoc2-docstring} simvx.core.text.msdf.BitmapAtlas.ensure_glyphs ``` ```` ````{py:method} get_uv(char: str) -> tuple[float, float, float, float] :canonical: simvx.core.text.msdf.BitmapAtlas.get_uv ```{autodoc2-docstring} simvx.core.text.msdf.BitmapAtlas.get_uv ``` ```` `````