o
    Gf	                     @   st   d dl ZddlmZmZ ddlmZmZ ddlmZmZm	Z	 d dl
Z
G dd dejejZe	jG d	d
 d
e	ZdS )    N   )cbook
transforms   )backend_aggbackend_gtk3)GLibGtk_BackendGTK3c                       s.   e Zd Z fddZdd ZdddZ  ZS )	FigureCanvasGTK3Aggc                    s   t  j|d g | _d S )N)figure)super__init___bbox_queue)selfr   	__class__ Clib/python3.10/site-packages/matplotlib/backends/backend_gtk3agg.pyr      s   
zFigureCanvasGTK3Agg.__init__c                 C   sD  | j rt| j  d| _ |   | j}|  }|j| }|j| }t| j	sCt
|  ||j|j|j|j tddg||ggg}n| j	}|D ]O}t|j}	|t|j }
t|jt|j }t|jt|j }tt| |}tj| jtj ||}|!|| |"||	| |
|  |#  qHt| j	rg | _	dS )Nr   F)$Z_idle_draw_idr   Zsource_removeZdrawdevice_pixel_ratioget_allocationwidthheightlenr   r	   Zrender_backgroundZget_style_contextxyr   ZBboxintx0y1x1y0r   Z._unmultiplied_rgba8888_to_premultiplied_argb32npZasarrayZcopy_from_bboxcairoZImageSurfaceZcreate_for_dataZraveldataZFORMAT_ARGB32Zset_device_scaleZset_source_surfaceZpaint)r   Zwidgetctxscale
allocationwhZ
bbox_queuebboxr   r   r   r   bufZimager   r   r   on_draw_event   sB   





z!FigureCanvasGTK3Agg.on_draw_eventNc                 C   s   |d u r| j j}| j}|  }t|j| }|jt|j|  }t|jt|j | }t|jt|j	 | }| j
| | |||| d S N)r   r)   r   r   r   r   r   r   r   r    r   appendZqueue_draw_area)r   r)   r%   r&   r   r   r   r   r   r   r   blit7   s   zFigureCanvasGTK3Agg.blitr,   )__name__
__module____qualname__r   r+   r.   __classcell__r   r   r   r   r   
   s    'r   c                   @   s   e Zd ZeZdS )_BackendGTK3CairoN)r/   r0   r1   r   ZFigureCanvasr   r   r   r   r3   H   s    r3   )Znumpyr!    r   r   r   r   r   r	   r
   r"   ZFigureCanvasAggZFigureCanvasGTK3r   Zexportr3   r   r   r   r   <module>   s    >