
    \
jL                         d dl Z d dlZddlmZmZmZmZ d dlT d dlm	Z	 d dlm
Z
  G d de          Z G d	 d
e          Z G d de          ZdS )    N   )DisplayScreen
ScreenModeCanvas)*)egl)eglextc                   *     e Zd Z fdZd Zd Z xZS )HeadlessDisplayc                    t                                                       t          | dddd          g| _        t	          j                    }t          j        dd t          |                     |j	        dk    rt          j        d         }|dk     s||j	        k    rt          d|z            t          j        |j	        z              }t          j        |j	        |t          |                     t          j        t          j        ||         d           | _        n@t#          j        d           t	          j                    }t	          j        |          | _        t	          j        | j        d d            d S )Nr   i  i8  headless_devicezInvalid EGL devide id: %dzGNo device available for EGL device platform. Using native display type.)super__init__HeadlessScreen_screensr	   EGLintr
   eglQueryDevicesEXTbyrefvaluepygletoptions
ValueErrorEGLDeviceEXTeglGetPlatformDisplayEXTEGL_PLATFORM_DEVICE_EXT_display_connectionwarningswarnEGLNativeDisplayTypeeglGetDisplayeglInitialize)selfnum_devicesr   devicesdisplay	__class__s        P/DATA/AppData/hermes/venv/lib/python3.11/site-packages/pyglet/canvas/headless.pyr   zHeadlessDisplay.__init__1   sS   'aD$??@jll!!T5+=+=>>>q  $n->?O""o9J&J&J !<!NOOO*[->>AAG%k&7%BTBTUUU'-'F.0H$(P (PD$$ Mcddd.00G'*'8'A'AD$$2D$?????    c                     | j         S N)r   r#   s    r(   get_screenszHeadlessDisplay.get_screensG   s
    }r)   c                 8    t          j        | j                   d S r+   )r	   eglTerminater   r,   s    r(   __del__zHeadlessDisplay.__del__J   s    122222r)   )__name__
__module____qualname__r   r-   r0   __classcell__r'   s   @r(   r   r   /   s[        @ @ @ @ @,  3 3 3 3 3 3 3r)   r   c                        e Zd Z fdZ xZS )HeadlessCanvasc                 X    t                                          |           || _        d S r+   )r   r   egl_surface)r#   r&   r9   r'   s      r(   r   zHeadlessCanvas.__init__O   s)    !!!&r)   )r1   r2   r3   r   r4   r5   s   @r(   r7   r7   N   s8        ' ' ' ' ' ' ' ' 'r)   r7   c                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )r   c                 R    t                                          |||||           d S r+   )r   r   )r#   r&   xywidthheightr'   s         r(   r   zHeadlessScreen.__init__U   s)    !Qv66666r)   c                 r    t          | j        d           }|                    |          }|D ]	}| |_        
|S r+   )r7   r&   matchscreen)r#   templatecanvasconfigsconfigs        r(   get_matching_configsz#HeadlessScreen.get_matching_configsX   sA    d33..(( 	! 	!F FMMr)   c                     d S r+    r,   s    r(   	get_modeszHeadlessScreen.get_modes`       r)   c                     d S r+   rI   r,   s    r(   get_modezHeadlessScreen.get_modec   rK   r)   c                     d S r+   rI   )r#   modes     r(   set_modezHeadlessScreen.set_modef   rK   r)   c                     d S r+   rI   r,   s    r(   restore_modezHeadlessScreen.restore_modei   rK   r)   )
r1   r2   r3   r   rG   rJ   rM   rP   rR   r4   r5   s   @r(   r   r   T   s        7 7 7 7 7              r)   r   )r   r   baser   r   r   r   ctypespyglet.libs.eglr	   r
   r   r7   r   rI   r)   r(   <module>rV      s   H   5 5 5 5 5 5 5 5 5 5 5 5           " " " " " "3 3 3 3 3g 3 3 3>' ' ' ' 'V ' ' '    V     r)   