
    kjd                         d dl mZ d dlmZ d dlZd dlZd dlZd dlmZ d dl	m
Z
mZmZ d dlmZ ddlmZmZ  ej         ee          j                                                    G d	 d
e          ZdS )    )Path)OptionalN)	resources)DataDescriptionProgramDescriptionTextureDescription)VAO   )BaseTextFontMetac            	            e Zd ZdZd fdZedee         fd            Zej	        deddfd            Zdeddfd	Z
ddeeef         dededdfdZ xZS )TextWriter2Dz)Simple monospaced bitmapped text rendererreturnNc                 |   t                                                       t          t          j                            t          d                              }t          j                            t          ddd|j	                            | _
        t          j                            t          d                    | _        |                     |           | j        
J d            | j                            d	
          | _        | j                            d           | j                            t'          dgdz  dz                      }t)          dt*          j                  | _        | j                            |dd           | j                            | j        dd           d | _        d S )Nzbitmapped/text/meta.json)pathzbitmapped/textures/VeraMono.pngarrayT)r   kindmipmaplayerszbitmapped/programs/text_2d.glsl-There was a problem, we do not have a contexti   )reserve   chunkr         )data
textwriter)mode3fin_positionz1u/i
in_char_id)super__init__r   r   r   loadr   texturesr   
characters_textureprogramsr   _program_initctxbuffer_string_bufferclearbytesr	   modernglPOINTS_vao_text)selfmetapos	__class__s      a/home/agentuser/manim-venv/lib/python3.11/site-packages/moderngl_window/text/bitmapped/text_2d.pyr$   zTextWriter2D.__init__   s   	++OA[,\,\,\]]^^!*//6	  
 
 "*//$EFFF
 
 	

4x##%T###"hooho??!!!///hoo5!q1#5#5o668?;;;		dM222	,flCCC$(


    c                     | j         S )N)r4   )r5   s    r9   textzTextWriter2D.text2   s
    zr:   valuec                     || _         | j                            t          |          dz             | j                            d           |                     |           d S )Nr   )sizer   r   )r4   r.   orphanlenr/   _write)r5   r=   s     r9   r<   zTextWriter2D.text6   s_    
""E

Q"777!!!///Er:   r<   c                     | j                             d           | j                             t          j        |                     |          t          j                             d S )Nr   r   )dtype)r.   r/   writenumpyfromiter_translate_stringuint32)r5   r<   s     r9   rB   zTextWriter2D._write=   sk    !!!///!!N&&t,,l  	
 	
 	
 	
 	
r:         8@r7   lengthr?   c                 b   | j         
J d            | j         j        
J d            | j        
J d            | j         j        j        }|d         |d         }}t	          j        d|d|dd          }| j                            d	           | j        d
         	                    |           || j        d         _
        d| j        d         _
        | j        j        |z  |f| j        d         _
        | j                            | j        t          | j        | j        nd                     d S )Nr   z-The current context do not have a framebufferz3We are missing the information needed to write text   r   r   g      ?g      )locationm_projtext_posfont_texture	char_size )	instances)r,   fbo_metaviewportglmorthor(   user*   rE   r=   char_aspect_whr3   renderrA   r4   )r5   r7   rL   r?   vpwh
projections           r9   drawzTextWriter2D.drawG   s6   x##%T###x|'')X'''z%%'\%%% X\"!ube1Y
 

 	1%%%h%%j111*-j!'./n%++/:+Dt+KT+Qk"(	#DJDZdjj`b2c2cdddddr:   )r   N)rJ   rK   )__name__
__module____qualname____doc__r$   propertyr   strr<   setterrB   tuplefloatintrb   __classcell__)r8   s   @r9   r   r      s       33) ) ) ) ) )< hsm    X 
[# $    [
3 
4 
 
 
 
e eeUl+ eS eU eVZ e e e e e e e er:   r   )pathlibr   typingr   rY   r1   rF   moderngl_windowr   moderngl_window.metar   r   r   moderngl_window.opengl.vaor	   baser   r   register_dir__file__parentresolver    r:   r9   <module>ry      s               



   % % % % % % X X X X X X X X X X * * * * * * $ $ $ $ $ $ $ $ 	 ttH~~,4466 7 7 7Me Me Me Me Me8 Me Me Me Me Mer:   