
    ^j"                        d dl T d dlT d dlT d dlT d dlmZ d dlZd dlZej        	                    d          Z
ej        	                    d          ZeZeZeZ ee          ej        _         ee          ej        _         ee          ej        _         ee          ej        _         ee          ej        _         ee          ej        _         G d de          ZeZeZeZ G d d	e          Z  ee           Z!d
 Z" G d d          Z# G d d          Z$ G d d          Z% G d d          Z& G d de'          Z(d Z)d Z*d Z+ e+             dS )    )*)gifNzgdk-x11-2.0zgdk_pixbuf-2.0c                       e Zd ZdefdefgZdS )GTimeValtv_sectv_usecN)__name__
__module____qualname__c_long_fields_     Y/home/agentuser/manim-venv/lib/python3.11/site-packages/pyglet/image/codecs/gdkpixbuf2.pyr   r      s%        	6	FHHHr   r   c                   6    e Zd Zdefdefd ee          fgZdS )GErrordomaincodemessageN)r	   r
   r   GQuarkgintPOINTERgcharr   r   r   r   r   r   %   s4        vTN'HHHr   r   c                 l    d                     | j        j        | j        j        | j        j                  S )za
    Convert a GError to a string.
    `error` should be a valid pointer to a GError struct.
    z)GdkPixBuf Error: domain[{}], code[{}]: {})formatcontentsr   r   r   )errors    r   _gerror_to_stringr   .   s6    
 7==en>S>Cn>Q>Cn>TV V Vr   c                   H    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )GdkPixBufLoaderz0
    Wrapper around GdkPixBufLoader object.
    c                     d| _         || _        || _        t                                          | _        | j        t          d          |                                  d S )NFz'Unable to instantiate gdk pixbuf loader)closed_file	_filename	gdkpixbufgdk_pixbuf_loader_new_loaderImageDecodeException
_load_file)selffilenamefiles      r   __init__zGdkPixBufLoader.__init__<   sW    
! 6688<&'PQQQr   c                     | j         <| j        s|                                  t                              | j                    d S d S N)r'   r"   _cancel_loadgdkg_object_unrefr*   s    r   __del__zGdkPixBufLoader.__del__E   sJ    <#; $!!###t|,,,,, $#r   c                     | j                             d           | j                                         }|                     |           d S Nr   )r#   seekreadwrite)r*   datas     r   r)   zGdkPixBufLoader._load_fileK   s?    
z  

4r   c                     | j         rJ t                      }t                              | j        t          |                    }d| _         |st          t          |                    d S NT)r"   
gerror_ptrr%   gdk_pixbuf_loader_closer'   byrefr(   r   )r*   r   all_data_passeds      r   _finish_loadzGdkPixBufLoader._finish_loadP   si    ;#;;DL%PU,,WW 	A&'8'?'?@@@	A 	Ar   c                 f    | j         rJ t                              | j        d            d| _         d S r<   )r"   r%   r>   r'   r3   s    r   r0   zGdkPixBufLoader._cancel_loadX   s2    ;))$,===r   c                     | j         r
J d            t                      }t                              | j        |t          |          t          |                    st          t          |                    d S )Nz!Cannot write after closing loader)	r"   r=   r%   gdk_pixbuf_loader_writer'   lenr?   r(   r   )r*   r:   r   s      r   r9   zGdkPixBufLoader.write]   ss    ;CC CCC00tSYYPUV[P\P\]] 	A&'8'?'?@@@	A 	Ar   c                     |                                   t                              | j                  }|t	          d          t          | |          S )Nz Failed to get pixbuf from loader)rA   r%   gdk_pixbuf_loader_get_pixbufr'   r(   	GdkPixBuf)r*   pixbufs     r   
get_pixbufzGdkPixBufLoader.get_pixbufc   sM    77EE>&'IJJJv&&&r   c                     |                                   t                              | j                  }|t	          d          |                                 }t          | ||          S )Nz#Failed to get animation from loader)rA   r%   gdk_pixbuf_loader_get_animationr'   r(   _get_gif_delaysGdkPixBufAnimation)r*   anim
gif_delayss      r   get_animationzGdkPixBufLoader.get_animationj   s`    88FF<&'LMMM))++
!$j999r   c                     | j         J | j                             d           t          j        | j                   }d |j        D             S )Nr   c                     g | ]	}|j         
S r   )delay).0images     r   
<listcomp>z3GdkPixBufLoader._get_gif_delays.<locals>.<listcomp>x   s    ;;;;;;r   )r#   r7   r   r8   images)r*   
gif_streams     r   rM   zGdkPixBufLoader._get_gif_delaysr   sN     z%%%
Xdj))
;;):;;;;r   N)r	   r
   r   __doc__r-   r4   r)   rA   r0   r9   rJ   rQ   rM   r   r   r   r    r    8   s           - - -  
A A A  
A A A' ' ': : :< < < < <r   r    c                       e Zd ZdZd Zd Zd Zed             Zed             Z	ed             Z
ed             Zed	             Zd
 Zd ZdS )rH   z*
    Wrapper around GdkPixBuf object.
    c                 V    || _         || _        t                              |           d S r/   )r'   _pixbufr1   g_object_ref)r*   loaderrI   s      r   r-   zGdkPixBuf.__init__   s*         r   c                 V    | j         !t                              | j                    d S d S r/   )r]   r1   r2   r3   s    r   r4   zGdkPixBuf.__del__   s.    <#t|,,,,, $#r   c                     | j         d uS r/   )r]   r3   s    r   	load_nextzGdkPixBuf.load_next   s    |4''r   c                 R    | j         J t                              | j                   S r/   )r]   r%   gdk_pixbuf_get_widthr3   s    r   widthzGdkPixBuf.width   s&    |'''--dl;;;r   c                 R    | j         J t                              | j                   S r/   )r]   r%   gdk_pixbuf_get_heightr3   s    r   heightzGdkPixBuf.height   s&    |'''..t|<<<r   c                 R    | j         J t                              | j                   S r/   )r]   r%   gdk_pixbuf_get_n_channelsr3   s    r   channelszGdkPixBuf.channels   s&    |'''224<@@@r   c                 R    | j         J t                              | j                   S r/   )r]   r%   gdk_pixbuf_get_rowstrider3   s    r   	rowstridezGdkPixBuf.rowstride   s&    |'''11$,???r   c                 Z    | j         J t                              | j                   dk    S N   )r]   r%   gdk_pixbuf_get_has_alphar3   s    r   	has_alphazGdkPixBuf.has_alpha   s+    |'''11$,??1DDr   c                     t                               | j                  }|J t          | j        | j        z  z              }t          ||| j        | j        dz
  z  | j        | j        z  z              |S rp   )	r%   gdk_pixbuf_get_pixelsr]   c_ubytern   rh   memmovere   rk   )r*   pixelsbufs      r   
get_pixelszGdkPixBuf.get_pixels   sn    00>>!!!$.4;67::VT^t{Q?$*t}B\\]]]
r   c                     | j         dk     s!| j        dk     s| j        dk     s| j        dk     rd S |                                 }| j        dk    rd}nd}t          | j         | j        ||| j                   S )Nrq      RGBRGBA)re   rh   rk   rn   rz   	ImageData)r*   rx   r   s      r   to_imagezGdkPixBuf.to_image   s}    :>>T[1__0A0AT^VWEWEW4"" =AFFFT[&&4>/RRRr   N)r	   r
   r   rZ   r-   r4   rb   propertyre   rh   rk   rn   rs   rz   r   r   r   r   rH   rH   {   s         ! ! !- - -( ( ( < < X< = = X= A A XA @ @ X@ E E XE  S S S S Sr   rH   c                   *    e Zd ZdZd Zd Zd Zd ZdS )rN   z7
    Wrapper for a GdkPixBufIter for an animation.
    c                 d    || _         || _        || _        t                              |           d S r/   )r'   _anim_gif_delaysr1   r^   )r*   r_   rO   rP   s       r   r-   zGdkPixBufAnimation.__init__   s2    
%r   c                 V    | j         !t                              | j                    d S d S r/   )r   r1   r2   r3   s    r   r4   zGdkPixBufAnimation.__del__   .    :!tz***** "!r   c                     t          dd          }t                              | j        t	          |                    }t          | j        ||| j                  S r6   )r   r%   gdk_pixbuf_animation_get_iterr   r?   GdkPixBufAnimationIteratorr'   r   )r*   time	anim_iters      r   __iter__zGdkPixBufAnimation.__iter__   sE    1~~;;DJdTT	)$,	4IYZZZr   c                 :    t          t          |                     S r/   )	Animationlistr3   s    r   to_animationzGdkPixBufAnimation.to_animation   s    d$$$r   N)r	   r
   r   rZ   r-   r4   r   r   r   r   r   rN   rN      s]           + + +[ [ [
% % % % %r   rN   c                   H    e Zd Zd Zd Zd Zd Zd Zd Ze	d             Z
dS )	r   c                 Z    || _         d| _        || _        || _        || _        d | _        d S r<   )_iter_first_timer'   r   
delay_time)r*   r_   r   
start_timerP   s        r   r-   z#GdkPixBufAnimationIterator.__init__   s1    

%r   c                 V    | j         !t                              | j                    d S d S r/   )r   r1   r2   r3   s    r   r4   z"GdkPixBufAnimationIterator.__del__   r   r   c                     | S r/   r   r3   s    r   r   z#GdkPixBufAnimationIterator.__iter__   s    r   c                 h    |                                   |                                 }|t          |S r/   )_advance	get_frameStopIteration)r*   frames     r   __next__z#GdkPixBufAnimationIterator.__next__   s.      =r   c                    | j         st          | j                             d          | _        | j        r	d| _        d S | j        dk    rt          | j        dz  }| j        j        |z   }| j        xj        |dz  z  c_        |dz  | j        _        t          
                    | j        t          | j                             d S )Nr   Fi  i@B )r   r   popr   r   gdk_delay_timer   r   r   r%   !gdk_pixbuf_animation_iter_advancer   r?   )r*   	gdk_delayuss      r   r   z#GdkPixBufAnimationIterator._advance   s     	 *..q11; 
	[DKKK"b((## /$6	Z')3
!!R7]2!!%''\
";;DJdjHYHYZZZZZr   c                     t                               | j                  }|d S t          | j        |                                          }t          || j                  S r/   )r%   $gdk_pixbuf_animation_iter_get_pixbufr   rH   r'   r   AnimationFramer   )r*   rI   rV   s      r   r   z$GdkPixBufAnimationIterator.get_frame   sP    ??
KK>4$,//88::eT_555r   c                 R    | j         J t                              | j                   S r/   )r   r%   (gdk_pixbuf_animation_iter_get_delay_timer3   s    r   r   z)GdkPixBufAnimationIterator.gdk_delay_time  s&    z%%%AA$*MMMr   N)r	   r
   r   r-   r4   r   r   r   r   r   r   r   r   r   r   r      s          + + +
    [ [ ["6 6 6 N N XN N Nr   r   c                   &    e Zd Zd Zd Zd Zd ZdS )GdkPixbuf2ImageDecoderc                 
    g dS )N)
z.pngz.xpmz.jpgz.jpegz.tifz.tiffz.pnmz.rasz.bmp.gifr   r3   s    r   get_file_extensionsz*GdkPixbuf2ImageDecoder.get_file_extensions	  s    ( ( ( 	(r   c                 
    ddgS )Nr   z.anir   r3   s    r   get_animation_file_extensionsz4GdkPixbuf2ImageDecoder.get_animation_file_extensions  s    r   c                     |st          |d          }t          ||          }|                                                                S Nrb)openr    rJ   r   r*   r+   r,   r_   s       r   decodezGdkPixbuf2ImageDecoder.decode  sF     	($''D 400  ""++---r   c                     |st          |d          }t          ||          }|                                                                S r   )r   r    rQ   r   r   s       r   decode_animationz'GdkPixbuf2ImageDecoder.decode_animation  sF     	($''D 400##%%22444r   N)r	   r
   r   r   r   r   r   r   r   r   r   r     sP        ( ( (     . . .5 5 5 5 5r   r   c                       t                      gS r/   )r   r   r   r   get_decodersr     s    "$$%%r   c                      g S r/   r   r   r   r   get_encodersr   !  s    Ir   c                  8    t                                            d S r/   )r1   g_type_initr   r   r   initr   %  s    OOr   ),ctypes	pyglet.glpyglet.imagepyglet.image.codecsr   
pyglet.libpygletpyglet.windowlibload_libraryr1   r%   c_void_pGdkPixbufLoader	GdkPixbufc_chargucharr   r&   restyperG   ru   rL   r   r   	Structurer   c_uint32r   c_intr   r   r   r=   r   r    rH   rN   r   ImageDecoderr   r   r   r   r   r   r   <module>r      s               ! ! ! ! # # # # # #        jm,,J##$455			*1'/*B*B	  '181C1C	 & .*1'&//	  '4;GH4E4E	 ) 129'(2C2C	 ' /9@9K9K	 . 6    y    
    Y    WV__
V V V@< @< @< @< @< @< @< @<F=S =S =S =S =S =S =S =S@% % % % % % % %.3N 3N 3N 3N 3N 3N 3N 3Nl5 5 5 5 5\ 5 5 5*& & &     r   