
    ^j                       d dl mZ d dlZd dlmZmZmZmZ d dlZg dZ	ej
        d         Zej
        d         Zej
        d         Z G d d	e          Zd%d&dZej        ej        fZ eed          reej        fz  ZeD ]+Z ej        e           ej        ej                  k    reZ, G d dej                  Z G d de          Zd'dZd(dZdZdZ dZ!ej"        d v r
d d!l#m$Z$m!Z! dS ej"        d"k    r
d d#l%mZm$Z$ dS d d$l&m$Z$m Z  dS ))    )annotationsN)AnyCallableNoReturnSequence)link_GLlink_AGLlink_GLXlink_WGLGLExceptionmissing_functiondecorate_functiondebug_gldebug_gl_tracedebug_gl_trace_argsc                      e Zd Zddd
ZdS )MissingFunctionExceptionNnamestrrequires
str | NonesuggestionsSequence[str] | NonereturnNonec                    | d}|r	|d| dz  }|r+|d                     d                    |                    z  }t                              | |           d S )Nz0 is not exported by the available OpenGL driver.z  z$ is required for this functionality.z  Consider alternative(s) {}., )formatjoin	Exception__init__)selfr   r   r   msgs        H/home/agentuser/manim-venv/lib/python3.11/site-packages/pyglet/gl/lib.pyr!   z!MissingFunctionException.__init__   sy    GGG 	GFFFFFC 	R299$))K:P:PQQQC4%%%%%    NN)r   r   r   r   r   r   r   r   )__name__
__module____qualname__r!    r%   r$   r   r      s-        & & & & & & &r%   r   r   r   r   r   r   r   r   r   c                     d fd}|S )Nr   r   c                 &    t                    )N)r   )_args_kwargsr   r   r   s     r$   MissingFunctionz)missing_function.<locals>.MissingFunction   s    &tX{CCCr%   )r   r   r*   )r   r   r   r/   s   ``` r$   r   r      s=    D D D D D D D D r%   c_int64c                  "    e Zd Zdej        fgZdS )c_voiddummyN)r'   r(   r)   ctypesc_int_fields_r*   r%   r$   r2   r2   ,   s         &,'(HHHr%   r2   c                      e Zd ZdS )r   N)r'   r(   r)   r*   r%   r$   r   r   3   s        Dr%   r   resultr   func	argumentsr   c           
        t           rs	 |j        }n# t          $ r t          |          }Y nw xY wt          r5d                    d |D                       }t          | d| d           nt          |           ddlm} |j	        st          d          |                                }|rR|j        d|j        d	|j        d
|j        d|j        di}|                    |d          }d| d| }	t          |	          | S )Nr   c                <    g | ]}t          |          d d         S )N   )repr).0args     r$   
<listcomp>zerrcheck.<locals>.<listcomp>>   s&    #H#H#HsDIIcrcN#H#H#Hr%   ()r   )glz$No GL context; create a Window firstzLInvalid enum. An unacceptable value is specified for an enumerated argument.z2Invalid value. A numeric argument is out of range.zOInvalid operation. The specified operation is not allowed in the current state.zFInvalid framebuffer operation. The framebuffer object is not complete.zFOut of memory. There is not enough memory left to execute the command.zUnknown errorz(0xz): )_debug_gl_tracer'   AttributeErrorr>   _debug_gl_trace_argsr   printpygletrD   current_contextr   
glGetErrorGL_INVALID_ENUMGL_INVALID_VALUEGL_INVALID_OPERATION GL_INVALID_FRAMEBUFFER_OPERATIONGL_OUT_OF_MEMORYget)
r8   r9   r:   r   
trace_argsrD   errorerror_types	error_msgr#   s
             r$   errcheckrV   7   sN    		=DD 	 	 	::DDD	 	#H#Hi#H#H#HIIJT))J)))****$KKK B@AAAMMOOE   n!U#%v/ 2=!i
  OOE?;;	)E))i))#Ms    --r   c                f    t           r%|dvr#|d d         dvrt          | _        || _        d S d S d S d S )N)rK      )glXaglwgl)	_debug_glrV   r'   )r9   r   s     r$   r   r   W   sO     T00T"1"XEZ5Z5Z  005Z5Zr%   )win32cygwin)r   r   darwin)r	   r   )r   r
   r&   )r   r   r   r   r   r   r   r   )r8   r   r9   r   r:   r   r   r   )r9   r   r   r   r   r   )'
__future__r   r4   typingr   r   r   r   rI   __all__optionsr\   rE   rG   r    r   r   c_int16c_int32
_int_typeshasattrr0   tsizeofc_size_tc_ptrdiff_t	Structurer2   r   rV   r   r	   r
   r   compat_platformpyglet.gl.lib_wglr   pyglet.gl.lib_aglpyglet.gl.lib_glxr*   r%   r$   <module>rq      sD   " " " " " "  4 4 4 4 4 4 4 4 4 4 4 4 C C C N:&	.!12~&;< & & & & &y & & &     nfn-

769 $ 6>##J	  Av}Q=6=9999) ) ) ) )V ) ) )	 	 	 	 	) 	 	 	   @    	0003333333333x''33333333333333333333r%   