o
    h	                     @   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__ w/var/www/html/construction_image-detection-poc/venv/lib/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)$_idle_draw_idr   source_removedrawdevice_pixel_ratioget_allocationwidthheightlenr   r	   render_backgroundget_style_contextxyr   Bboxintx0y1x1y0r   ._unmultiplied_rgba8888_to_premultiplied_argb32npasarraycopy_from_bboxcairoImageSurfacecreate_for_dataraveldataFORMAT_ARGB32set_device_scaleset_source_surfacepaint)r   widgetctxscale
allocationwh
bbox_queuebboxr   r    r   r   buf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   appendqueue_draw_area)r   r;   r6   r7   r   r    r   r   r   r   r   blit7   s   zFigureCanvasGTK3Agg.blitr?   )__name__
__module____qualname__r   r>   rB   __classcell__r   r   r   r   r   
   s    'r   c                   @   s   e Zd ZeZdS )_BackendGTK3AggN)rC   rD   rE   r   FigureCanvasr   r   r   r   rG   H   s    rG   )numpyr(    r   r   r   r   r   r	   r
   r+   FigureCanvasAggFigureCanvasGTK3r   exportrG   r   r   r   r   <module>   s    >