a
    ij
                  
   @   s>  d Z ddlZddlmZ zejejdejd W n eyB   Y n0 ddlm	Z	 ddlm
Z
 ee	je	jee	jee	jZzee	dZW n. ey Z zed	eW Y dZ[n
dZ[0 0 d
Zee	je	jejee	jZzee	dZW n0 ey& Z zedeW Y dZ[n
dZ[0 0 dddZddlT dS )zEExtends OpenGL.EGL with definitions necessary for headless rendering.    N)ctypesloaderOpenGL)mode)EGL)erroreglQueryDevicesEXTz$eglQueryDevicesEXT is not available.i?1  eglGetPlatformDisplayEXTz*eglGetPlatformDisplayEXT is not available.
   c                    sZ   t j|    t  }t|  |}|t jkrB fddt|jD S tjt 	 t
|dd S )Nc                    s   g | ]} | qS  r
   ).0iZdevicesr
   R/home/ghrups/robot-bench/.venv/lib64/python3.9/site-packages/mujoco/egl/egl_ext.py
<listcomp>=       z&eglQueryDevicesEXT.<locals>.<listcomp>)errZbaseOperationresult)r   EGLDeviceEXTEGLint_eglQueryDevicesEXTZEGL_TRUErangevaluer   ZGLErrorZeglGetErrorr   )Zmax_devicesZnum_devicessuccessr
   r   r   r   8   s    

)*)r	   )__doc__ctypesZOpenGL.platformr   ZloadLibraryZcdllRTLD_GLOBALOSErrorr   r   r   Z	CFUNCTYPEZ
EGLBooleanr   ZPOINTERr   ZPFNEGLQUERYDEVICESEXTPROCZeglGetProcAddressr   	TypeErroreImportErrorZEGL_PLATFORM_DEVICE_EXTZ
EGLDisplayZEGLenumZc_void_pZPFNEGLGETPLATFORMDISPLAYEXTPROCr   r   Z
OpenGL.EGLr
   r
   r
   r   <module>   s@   

  
