
    ^jf                    F   d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
mZmZ d dlZd dlmZmZ d dlmZ ddgZej                            d	          Z	  eed
          Z e ed                    e_         ee          ge_        dZn# e$ r dZY nw xY w	 	 dddZeZdS )    )annotations)	CFUNCTYPEPOINTERc_ubytecastcreate_string_bufferpointer)AnyCallableSequenceN)decorate_functionmissing_function)asbyteslink_GLlink_GLXGLglXGetProcAddressARBTFnamestrrestyper
   argtypesrequires
str | NonesuggestionsSequence[str] | NonereturnCallable[..., Any]c           
        	 t          t          |           }||_        ||_        t	          ||            |S # t
          $ r t          rt          t          t          t          |                               t          t                              }t          |          }|r>t          |gt          |          R  }t          ||          }t	          ||            |cY S Y nw xY wt!          | ||          S )zAttempt to retrieve the GL function from the loaded library.

    If the function is not found, an attempt will be made via glXGetProcAddressARB.

    If both are unsuccessful, a dummy function will be returned that raises a MissingFunctionException.
    )getattrgl_libr   r   r   AttributeError_have_getprocaddressr   r	   r   r   r   r   r   r   tupler   )	r   r   r   r   r   funcbnameaddrftypes	            L/home/agentuser/manim-venv/lib/python3.11/site-packages/pyglet/gl/lib_glx.pyr   r      s    vt$$ $%%% 	 	 	 	!5gdmm!D!DEEwwGWGWXXE'..D !W$?uX$?$?AD%((!$---	 D(K888s   47 B'C#"C#)NN)r   r   r   r
   r   r
   r   r   r   r   r   r   ) 
__future__r   ctypesr   r   r   r   r   r	   typingr
   r   r   
pyglet.libpygletpyglet.gl.libr   r   pyglet.utilr   __all__libload_libraryr    r   r   r   r   r"   r!   r   r        r(   <module>r5      sa   " " " " " " S S S S S S S S S S S S S S S S * * * * * * * * * *     = = = = = = = =      j
!		 	 	&	&!"76+ABB#*799T??#;#; %,WW%5%5$6! ! ! ! ! LP049 9 9 9 98 s   8B BB