Ë
    ¨ehX  ã                   óD   — d dl Zd dlmZ ddlmZ d dlmZ  G d„ d«      Zy)é    N)Úcbooké   )ÚRendererAgg)Úprocess_figure_for_rasterizingc                   ó.   — e Zd ZdZ	 	 dd„Zd„ Zd„ Zd„ Zy)ÚMixedModeRenderera&  
    A helper class to implement a renderer that switches between
    vector and raster drawing.  An example may be a PDF writer, where
    most things are drawn with PDF vector commands, but some very
    complex objects, such as quad meshes, are rasterised and then
    output as images.
    Nc                 ó´   — |€t         }|| _        || _        || _        || _        || _        d| _        || _        |j                  | _        || _	        || _
        y)a&  
        Parameters
        ----------
        figure : `~matplotlib.figure.Figure`
            The figure instance.
        width : float
            The width of the canvas in logical units
        height : float
            The height of the canvas in logical units
        dpi : float
            The dpi of the canvas
        vector_renderer : `~matplotlib.backend_bases.RendererBase`
            An instance of a subclass of
            `~matplotlib.backend_bases.RendererBase` that will be used for the
            vector drawing.
        raster_renderer_class : `~matplotlib.backend_bases.RendererBase`
            The renderer class to use for the raster drawing.  If not provided,
            this will use the Agg backend (which is currently the only viable
            option anyway.)

        N)r   Ú_raster_renderer_classÚ_widthÚ_heightÚdpiÚ_vector_rendererÚ_raster_rendererÚfigureÚ_figdpiÚ_bbox_inches_restoreÚ	_renderer)Úselfr   ÚwidthÚheightr   Úvector_rendererÚraster_renderer_classÚbbox_inches_restores           ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/backends/backend_mixed.pyÚ__init__zMixedModeRenderer.__init__   s`   € ð0 !Ð(Ü$/Ð!à&;ˆÔ#ØˆŒØˆŒØˆŒà /ˆÔà $ˆÔð
 ˆŒØ—z‘zˆŒà$7ˆÔ!à(ˆ�ó    c                 ó.   — t        | j                  |«      S )N)Úgetattrr   )r   Úattrs     r   Ú__getattr__zMixedModeRenderer.__getattr__>   s   € ô �t—~‘~ tÓ,Ð,r   c                 ób  — | j                   | j                  _         | j                  r't        | j                  | j                  «      }|| _        | j	                  | j
                  | j                   z  | j                  | j                   z  | j                   «      | _        | j                  | _        y)z›
        Enter "raster" mode.  All subsequent drawing commands (until
        `stop_rasterizing` is called) will be drawn with the raster backend.
        N)	r   r   r   r   r
   r   r   r   r   )r   Úrs     r   Ústart_rasterizingz#MixedModeRenderer.start_rasterizingG   s„   € ð Ÿ(™(ˆ�‰ŒØ×$Ò$Ü.¨t¯{©{Ø/3×/HÑ/HóJˆAà()ˆDÔ%à $× ;Ñ ;Ø�K‰K˜Ÿ™Ñ  $§,¡,¨t¯x©xÑ"7¸¿¹ó!CˆÔà×.Ñ.ˆ�r   c           	      óâ  — | j                   | _        | j                  | j                  z  }t	        j
                  | j                  j                  «       «      }t        j                  |d   «      \  }}|||f   }|j                  r‰| j                  j                  «       }| j                  j                  ||j                  | j                  z  | j                  z  ||j                  z
  | j                  z  | j                  z  |ddd…   «       d| _        | j                  | j                   _        | j"                  r3t%        | j                   | j"                  | j                  «      }|| _        yy)z»
        Exit "raster" mode.  All of the drawing that was done since
        the last `start_rasterizing` call will be copied to the
        vector backend by calling draw_image.
        ).é   Néÿÿÿÿ)r   r   r   r   ÚnpÚasarrayr   Úbuffer_rgbar   Ú_get_nonzero_slicesÚsizeÚnew_gcÚ
draw_imageÚstartr   Ústopr   r   r   )r   r   ÚimgÚslice_yÚslice_xÚcropped_imgÚgcr"   s           r   Ústop_rasterizingz"MixedModeRenderer.stop_rasterizingW   s0  € ð ×.Ñ.ˆŒà—‘ §¡Ñ(ˆÜ�j‰j˜×.Ñ.×:Ñ:Ó<Ó=ˆÜ ×4Ñ4°S¸±[ÓAÑˆ�Ø˜' 7Ð*Ñ+ˆØ×ÒØ—‘×&Ñ&Ó(ˆBð �N‰N×%Ñ%ØØ—‘ §¡Ñ,¨t¯x©xÑ7Ø˜'Ÿ,™,Ñ&¨$¯,©,Ñ6¸¿¹ÑAØ™D˜b˜DÑ!ô	#ð
 !%ˆÔð Ÿ,™,ˆ�‰Œà×$Ò$Ü.¨t¯{©{Ø/3×/HÑ/HØ/3¯|©|ó=ˆAð )*ˆDÕ%ð	 %r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    r#   r5   © r   r   r   r      s$   „ ñð (,Ø%)ó,)ò\-ò/ó  *r   r   )	Únumpyr'   Ú
matplotlibr   Úbackend_aggr   Úmatplotlib._tight_bboxr   r   r:   r   r   ú<module>r?      s   ðÛ å Ý $Ý A÷o*ò o*r   