
    3j	                         S r SSKJr  S=rr\R
                  (       a	   SSKJrJr  \c   " S S\	5      r\c   " S S\	5      rgg! \ a
  r SrCN)SrCff = f)	z)Late-bound base-class (with acceleration)    )acceleratesupportN)LateBindCurryc                   :    \ rS rSrSrSrS rS rS rS r	S r
S	rg)
r   
   zProvides a __call__ which dispatches to self._finalCall

When called without self._finalCall() makes a call to
self.finalise() and then calls self._finalCall()
Nc                     Xl         g)z.Set our finalCall to the callable object givenN
_finalCall)self	finalCalls     I/home/wildlama/miniconda3/lib/python3.13/site-packages/OpenGL/latebind.pysetFinalCallLateBind.setFinalCall   s    'O    c                 f    U R                   (       d  U R                  5       U l         U R                   $ )z,Retrieve and/or bind and retrieve final call)r
   finaliser   s    r   getFinalCallLateBind.getFinalCall   s     ??"&--/??"r   c                     g)zHFinalise our target to our final callable object

return final callable
N r   s    r   r   LateBind.finalise   s    r   c                 4    [        U R                  5       5      $ )z8Resolve our final call and check for empty/nonzero on it)boolr   r   s    r   __nonzero__LateBind.__nonzero__    s    ))+,,r   c                      U R                   " U0 UD6$ ! [        [        4 a>  nU R                   c  U R                  5       U l         U R                   " U0 UD6s SnA$ SnAff = f)zCall self._finalCall, calling finalise() first if not already called

There's actually *no* reason to unpack and repack the arguments,
but unfortunately I don't know of a Cython syntax to specify
that.
N)r
   	TypeErrorAttributeErrorr   )r   argsnamederrs       r   __call__LateBind.__call__#   s[    9888n- 9??*&*mmoDO8889s    A"3AA"A"r	   )__name__
__module____qualname____firstlineno____doc__r
   r   r   r   r   r#   __static_attributes__r   r   r   r   r   
   s'    	
 
	(	#	
	-	9r   r   c                   ,    \ rS rSrSrSrSrS rS rSr	g)r   1   zProvides a simple Curry which can bind (only) the first element

This is used by lazywrapper, which explains the weird naming
of the two attributes...
Nc                     X l         Xl        g)z1Stores self.wrapperFunction and self.baseFunctionNbaseFunctionwrapperFunction)r   r0   r/   s      r   __init__Curry.__init__9   s     ,#2 r   c                 B    U R                   " U R                  /UQ70 UD6$ )zAreturns self.wrapperFunction( self.baseFunction, *args, **named ))r0   r/   )r   r    r!   s      r   r#   Curry.__call__=   s#    ''):):LTLULLr   r.   )
r%   r&   r'   r(   r)   r0   r/   r1   r#   r*   r   r   r   r   r   1   s    	
 	3	Mr   r   )
r)   OpenGLr   r   r   ACCELERATE_AVAILABLEOpenGL_accelerate.latebindImportErrorr"   objectr   r   r   <module>r:      sk    / $ 5))> %96 %9L 	=M M S  s   A AA