
    ^j(,                    |   U d dl mZ d dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZ d dlmZmZ  ej        d          Z ej        d	          Z	 i d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.Zd/ed0<   dMd3Z e            Zi d4ej        d5ej        d6ej        d7ej        d8ej        d9ej        d:ej        d;ej         d<ej!        d=ej"        d>ej#        d?ej$        d@ej%        dAej&        dBej'        dCej(        dDej)        ej*        ej+        dEZ, e-ej"        ej        ej        ej$        ej%        ej(        ej#        ej'        ej*        ej+        ej)        g          Z.d d d d d d d dFZ/ G dG dHe          Z0 G dI dJe          Z1 G dK dLe          Z2dS )N    )annotationsN)byrefc_intc_uint32)CocoaCanvas)ContextException)DisplayConfigConfigContext)cocoapyquartzNSOpenGLPixelFormatNSOpenGLContextzpre-release)r      kodiak)r      r   cheetah)r      r   puma)r   gffffff@jaguar)   r   r   panther)   tiger)   leopard)	   snow_leopard)
   lion)   mountain_lion)   	mavericks)   yosemite)   
el_capitan)   sierra)   high_sierra)   mojave)   )   )   )catalinabig_surzJdict[str, tuple[float] | tuple[float, float] | tuple[float, float, float]]os_x_releasereturntuple[int, ...]c                     t          d t          j                                        d          D                       } t	          |           dk    r| S | fS )Nc                ,    g | ]}t          |          S  )int).0vs     J/home/agentuser/manim-venv/lib/python3.11/site-packages/pyglet/gl/cocoa.py
<listcomp>z os_x_version.<locals>.<listcomp>>   s    CCCSVVCCC    .r   )tupleplatformreleasesplitlen)versions    r=   os_x_versionrG   =   sU    CCX%5%7%7%=%=c%B%BCCCDDG 7||a:r?   double_bufferstereobuffer_sizesample_bufferssamplesaux_buffers
alpha_size
depth_sizestencil_sizeall_renderers
fullscreenminimum_policymaximum_policyscreen_maskcolor_float	offscreensample_alpha)multisamplesupersample)red_size
green_size	blue_sizeaccum_red_sizeaccum_green_sizeaccum_blue_sizeaccum_alpha_sizec                      e Zd ZddZdS )CocoaConfigcanvasr   r5   list[CocoaDisplayConfig]c                   g }|                                  D ]d\  }}t                              |          }|r|s$|                    |           |t          vr"|                    t          |                     e|                    t          j                   |                    t          j                   t          t          d         k     rx|                    t          j                   |                    t          j                   |                    t          j        t          j                                         nt          t          d         k    rt!          | dd           pdt!          | dd           pdf}|                    t          j                   |d         dk    rCt          t          d         k    r-|                    t          t          j                             ne|d         dk    r-|                    t          t          j                             n,|                    t          t          j                             |                    d           t*          t-          |          z  } || }t.                                                              |          }	|	g S t5          || |	          gS )	Nr   r    major_versionr   minor_versionr      r$   )get_gl_attributes_gl_attributesgetappend_boolean_gl_attributesr:   r   NSOpenGLPFAAllRenderersNSOpenGLPFAMaximumPolicy_os_x_versionr4   NSOpenGLPFAFullScreenNSOpenGLPFAScreenMaskr   CGDisplayIDToOpenGLDisplayMaskCGMainDisplayIDgetattrNSOpenGLPFAOpenGLProfileNSOpenGLProfileVersion4_1CoreNSOpenGLProfileVersion3_2CoreNSOpenGLProfileVersionLegacyr   rE   r   allocinitWithAttributes_CocoaDisplayConfig)
selfrd   attrsnamevalueattrrF   attrsArrayType
attrsArraypixel_formats
             r=   matchzCocoaConfig.match   sd   1133 	) 	)KD%!%%d++D u LL111SZZ((( 	W4555 	W5666 <777LL6777LL6777LL>v?U?W?WXXYYYYl6222 t_d;;@qt_d;;@qBG LL9:::
 qzQ=L4M#M#MS!FGGHHHHqS!FGGHHHHS!EFFGGGQ "CJJ.#^U+
*0022FFzRR I"64>>??r?   N)rd   r   r5   re   )__name__
__module____qualname__r   r9   r?   r=   rc   rc      s.        <@ <@ <@ <@ <@ <@r?   rc   c                  0     e Zd Zd fd	ZddZddZ xZS )r}   rd   r   configrc   r   r   r5   Nonec                   t                                          ||           || _        t                                          D ]R\  }}t                      }| j                            t          |          |d           t          | ||j	                   St                                          D ]\  }}t          | ||           t          t          d         k    rt                      }| j                            t          |          t          j        d          }|j	        t          j        k    rd| _        d| _        d S |j	        t          j        k    rd| _        d| _        d S d| _        d| _        d S d S )Nr   r    ri   r   r   r   )super__init___pixel_formatrk   itemsr   (getValues_forAttribute_forVirtualScreen_r   setattrr   _fake_gl_attributesrq   r4   r   rw   rx   rg   rh   ry   )
r~   rd   r   r   r   r   valsr   profile	__class__s
            r=   r   zCocoaDisplayConfig.__init__   sp   ((() )..00 	, 	,JD$77DGGdUY[\]]]D$
++++ /4466 	' 	'KD%D$&&&& L00077D(QQd0 G zWBBB%&"%&"""wDDD%&"%&"""%&"%&"""! 10r?   shareCocoaContext | NoneCocoaContextc                t   |r|j         }nd }t                                                              | j        |          }| j        r<t          d          }|                    t          |          t          j
                   | j        r | j                                         d | _        t          | ||          S )Nr   )
_nscontextr   r{   initWithFormat_shareContext_r   transparent_framebufferr   setValues_forParameter_r   r   NSOpenGLCPSurfaceOpacityrC   r   )r~   r   share_context	nscontextopaques        r=   create_contextz!CocoaDisplayConfig.create_context   s     	!!,MM M $))++HH 	 ' 	_1XXF--eFmmW=]^^^  	&&&(((!%DD)U333r?   boolc                ,    t          |t                    S N)
isinstancer   )r~   rd   s     r=   
compatiblezCocoaDisplayConfig.compatible   s    &+...r?   )rd   r   r   rc   r   r   r5   r   )r   r   r5   r   )rd   r   r5   r   )r   r   r   r   r   r   __classcell__r   s   @r=   r}   r}      sf         '  '  '  '  '  'D4 4 4 4./ / / / / / / /r?   r}   c                  z     e Zd Zd fd	Zd fdZd fdZd fdZddZddZd fdZ	dddZ
ddZddZ xZS )r   r   r}   r   r   r   r   r5   r   c                h    t                                          ||           || _        || _        d S r   )r   r   r   r   )r~   r   r   r   r   s       r=   r   zCocoaContext.__init__  s/    '''#r?   rd   r   c                    t           t          d         k     rd}t          |          t                                          |           | j                            |j                   |                                  d S )Nr    zOpenGL 3 not supported)	rq   r4   r   r   attachr   setView_nsviewset_current)r~   rd   msgr   s      r=   r   zCocoaContext.attach  sn    <///*C"3'''v 	  ///r?   c                z    t                                                       | j                                         d S r   )r   detachr   clearDrawabler~   r   s    r=   r   zCocoaContext.detach  s1    %%'''''r?   c                z    | j                                          t                                                       d S r   )r   makeCurrentContextr   r   r   s    r=   r   zCocoaContext.set_current  s3    **,,,r?   c                8    | j                                          d S r   )r   updater~   s    r=   update_geometryzCocoaContext.update_geometry  s     	     r?   c                j    | j                                          | j                                          d S r   )r   r   setFullScreenr   s    r=   set_full_screenzCocoaContext.set_full_screen"  s0    **,,,%%'''''r?   c                    t                                                       | j                                         d | _        d S r   )r   destroyr   rC   r   s    r=   r   zCocoaContext.destroy&  s6    !!!r?   Tvsyncr   c                    t          |          }| j                            t          |          t          j                   d S r   )r   r   r   r   r   NSOpenGLCPSwapInterval)r~   r   r   s      r=   	set_vsynczCocoaContext.set_vsync+  s4    U||//dW=[\\\\\r?   c                    t                      }| j                            t          |          t          j                   t          |j                  S r   )r   r   getValues_forParameter_r   r   r   r   r   )r~   r   s     r=   	get_vsynczCocoaContext.get_vsync/  s<    ww//dW=[\\\DJr?   c                8    | j                                          d S r   )r   flushBufferr   s    r=   flipzCocoaContext.flip4  s    ##%%%%%r?   )r   r}   r   r   r   r   r5   r   )rd   r   r5   r   )r5   r   )T)r   r   r5   r   )r5   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r=   r   r     s#       $ $ $ $ $ $
     ( ( ( ( ( (     ! ! ! !
( ( ( (     
] ] ] ] ]       
& & & & & & & &r?   r   )r5   r6   )3
__future__r   rB   ctypesr   r   r   pyglet.display.cocoar   	pyglet.glr   pyglet.gl.baser	   r
   r   pyglet.libs.darwinr   r   	ObjCClassr   r   r4   __annotations__rG   rq   NSOpenGLPFADoubleBufferNSOpenGLPFAStereoNSOpenGLPFAColorSizeNSOpenGLPFASampleBuffersNSOpenGLPFASamplesNSOpenGLPFAAuxBuffersNSOpenGLPFAAlphaSizeNSOpenGLPFADepthSizeNSOpenGLPFAStencilSizero   rr   NSOpenGLPFAMinimumPolicyrp   rs   NSOpenGLPFAColorFloatNSOpenGLPFAOffScreenNSOpenGLPFASampleAlphaNSOpenGLPFAMultisampleNSOpenGLPFASupersamplerk   	frozensetrn   r   rc   r}   r   r9   r?   r=   <module>r      s'   " " " " " " "  ) ) ) ) ) ) ) ) ) ) , , , , , , & & & & & & 9 9 9 9 9 9 9 9 9 9 . . . . . . . .'g'(=>> #'#$566.\6\i\ y\ H	\
 i\ t\ T\ t\ E\ E\ U\ \ \ %\ e\  5!\" e#\$ '\ \ \    .    W4g' 7/ g6	
 w) 70 '. '. G2 W4 '/ g6 g6  70!& 70'( -)* G2+, 11/  6 ###$$ !!"""$   &   >@ >@ >@ >@ >@& >@ >@ >@B</ </ </ </ </ </ </ </~4& 4& 4& 4& 4&7 4& 4& 4& 4& 4&r?   