
    kj
                     Z    d dl mZmZmZmZ d dlZ G d d          Z G d d          ZdS )    )Any	GeneratorOptionalUnionNc            	           e Zd ZdZdeeeeeeeef                  f         f         fdZ	e
defd            ZdefdZdS )FontMetazMetdata for texture arraymetac                    || _         t          | j         d         t                    sJ t          | j         d         t                    sJ t          | j         d         t                    sJ t          | j         d         t                    sJ t          | j         d         t                    sJ t          | j         d         t                    sJ | j         d         | _        | j         d         | _        | j         d         | _        | j         d         | _        | j         d         | _        | j         d         | _	        d S )N
characterscharacter_heightcharacter_widthatlas_heightatlas_widthcharacter_ranges)
_meta
isinstanceintlistr   r   r   r   r   r   selfr	   s     ^/home/agentuser/manim-venv/lib/python3.11/site-packages/moderngl_window/text/bitmapped/base.py__init__zFontMeta.__init__	   s   
$*\2C88888$*%78#>>>>>$*%67=====$*^4c:::::$*]3S99999$*%78$?????*\2 $
+= > $
+= >#z*;< J~6:m4    returnc                      | j         | j        z  S N)r   r   r   s    r   char_aspect_whzFontMeta.char_aspect_wh   s    #d&;;;r   c                      | j         | j        z  S r   )r   r   r   s    r   char_aspect_hwzFontMeta.char_aspect_hw   s    $t';;;r   N)__name__
__module____qualname____doc__dictstrr   r   r   r   propertyfloatr   r     r   r   r   r      s        ##5T#uS$tCH~2F-F'G"GH 5 5 5 5" < < < < X<< < < < < < <r   r   c                   h    e Zd ZdZddZdededdfdZdedee	ddf         fd	Z
d
eddfdZddZdS )BaseTextz/Simple base class for a bitmapped text renderedr   Nc                 N    d | _         g | _        t          j        j        | _        d S r   )r   _ctmoderngl_windowContextRefsCONTEXTctxr   s    r   r   zBaseText.__init__%   s!    )-
 ".6r   argskwargsc                     t                      r   )NotImplementedError)r   r2   r3   s      r   drawzBaseText.draw*   s    !###r   datac              #      K   | j         | j        
J d            |                    dd          }t          |          D ]$\  }}| j         j        dz
  | j        |         z
  V  %dS )z1Translate string into character texture positionsNz7_meta or _ct (or both) are empty. Did you call _init()?z
iso-8859-1replace)errors   )r   r-   encode	enumerater   )r   r7   
data_bytesindexchars        r   _translate_stringzBaseText._translate_string-   s      
&H  D ! 
 [[i[@@
$Z00 	= 	=KE4*'!+dhtn<<<<<	= 	=r   r	   c                     || _         | j         j        | j         j        z  | j         j        k    st	          d          |                                  d S )Nz,characters * character_width != atlas_height)r   r   r   r   
ValueError_generate_character_mapr   s     r   _initzBaseText._init7   sO    
z$tz'BBdjF]]]KLLL$$&&&&&r   c                     | j         
J d            dgdz  | _        d}| j         j        D ]3}t          |d         |d         dz             D ]}|| j        |<   |dz  }4dS )	z>Generate character translation map (latin1 pos to texture pos)Nz5You should not call _generate_character_map but _init   r   minmaxr;   )r   r-   r   range)r   r?   c_rangec_poss       r   rD   z BaseText._generate_character_map?   s    z%%'^%%%4#:z2 	 	Gwu~wu~/ABB  "'
	 	r   )r   N)r!   r"   r#   r$   r   r   r6   r&   r   r   rA   r   rE   rD   r)   r   r   r+   r+   "   s        997 7 7 7
$# $ $ $ $ $ $=c =iT4.H = = = ='( 't ' ' ' '     r   r+   )typingr   r   r   r   r.   r   r+   r)   r   r   <module>rO      s    2 2 2 2 2 2 2 2 2 2 2 2    < < < < < < < <8% % % % % % % % % %r   