
    \
j1                     z   d dl Z d dlmZmZm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 d dl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d0 Z e            Zi d1ej        d2ej        d3ej        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(        ej)        ej*        dB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 dCZ. G dD dEe          Z/ G dF dGe          Z0 G dH dIe          Z1dS )J    N)c_uint32c_intbyref)ConfigCanvasConfigContext)ContextException)gl)agl)CocoaCanvas)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_surc                      t          d t          j                                        d          D                       } t	          |           dk    r| S | fS )Nc                 ,    g | ]}t          |          S  )int).0vs     I/DATA/AppData/hermes/venv/lib/python3.11/site-packages/pyglet/gl/cocoa.py
<listcomp>z os_x_version.<locals>.<listcomp>c   s    CCCSVVCCC    .r   )tupleplatformreleasesplitlen)versions    r;   os_x_versionrE   b   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 ZdS )CocoaConfigc                    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           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%   r   )get_gl_attributes_gl_attributesgetappend_boolean_gl_attributesr8   r   NSOpenGLPFAAllRenderersNSOpenGLPFAMaximumPolicy_os_x_versionos_x_releaseNSOpenGLPFAFullScreenNSOpenGLPFAScreenMaskr   CGDisplayIDToOpenGLDisplayMaskCGMainDisplayIDgetattrNSOpenGLPFAOpenGLProfileNSOpenGLProfileVersion4_1CoreNSOpenGLProfileVersion3_2CoreNSOpenGLProfileVersionLegacyr   rC   r   allocinitWithAttributes_CocoaCanvasConfig)
selfcanvasattrsnamevalueattrrD   attrsArrayType
attrsArraypixel_formats
             r;   matchzCocoaConfig.match   s^   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 ot449ot44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%fdLAABBr=   N)__name__
__module____qualname__r   r7   r=   r;   ra   ra      s(        =C =C =C =C =Cr=   ra   c                   *     e Zd Z fdZd Zd Z xZS )rz   c                 z   t          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$t          | dd           t          | dd           d S |j
        t          j        k    r$t          | dd           t          | dd           d S t          | dd           t          | dd           d S d S )	Nr   r!   rc   re   rd   r   r   r   )superrz   __init___pixel_formatrg   itemsr   (getValues_forAttribute_forVirtualScreen_r   setattrr   _fake_gl_attributesrm   rn   r   rt   ru   rv   )
r{   r|   configr   r~   r   valsr   profile	__class__s
            r;   r   zCocoaCanvasConfig.__init__   s   &&//???) )..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oq111oq11111wDDDoq111oq11111oq111oq11111! 10r=   c                     |r|j         }nd }t                                                              | j        |          }t          | ||          S N)
_nscontextr   rx   initWithFormat_shareContext_r   CocoaContext)r{   shareshare_context	nscontexts       r;   create_contextz CocoaCanvasConfig.create_context
  sY     	!!,MM M $))++HH 	 D)U333r=   c                 ,    t          |t                    S r   )
isinstancer   )r{   r|   s     r;   
compatiblezCocoaCanvasConfig.compatible  s    &+...r=   )r   r   r   r   r   r   __classcell__r   s   @r;   rz   rz      sW         2  2  2  2  2D4 4 4/ / / / / / /r=   rz   c                   f     e Zd Z fdZ fdZ fdZ fdZd Zd Z fdZ	dd	Z
d
 Zd Z xZS )r   c                 v    t          t          |                               ||           || _        || _        d S r   )r   r   r   r   r   )r{   r   r   r   r   s       r;   r   zCocoaContext.__init__  s5    lD!!**65999#r=   c                    t           t          d         k     r(| j                                        rt	          d          t          t          |                               |           | j        	                    |j
                   | j                                                            d           |                                  d S )Nr!   zOpenGL 3 not supportedr   )rm   rn   r   requires_gl_3r	   r   r   attachr   setView_nsviewview$setWantsBestResolutionOpenGLSurface_set_current)r{   r|   r   s     r;   r   zCocoaContext.attach#  s    <///DK4M4M4O4O/"#;<<<lD!!((000 	  ///CCAFFFr=   c                     t          t          |                                            | j                                         d S r   )r   r   detachr   clearDrawabler{   r   s    r;   r   zCocoaContext.detach/  s9    lD!!((***%%'''''r=   c                     | j                                          t          t          |                                            d S r   )r   makeCurrentContextr   r   r   r   s    r;   r   zCocoaContext.set_current3  s9    **,,,lD!!--/////r=   c                 8    | j                                          d S r   )r   updater{   s    r;   update_geometryzCocoaContext.update_geometry7  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          t          |                                            | j                                         d | _        d S r   )r   r   destroyr   rA   r   s    r;   r   zCocoaContext.destroy@  s>    lD!!))+++!!!r=   Tc                     t          |          }| j                            t          |          t          j                   d S r   )r   r   setValues_forParameter_r   r   NSOpenGLCPSwapInterval)r{   vsyncr   s      r;   	set_vsynczCocoaContext.set_vsyncE  s4    U||//dW=[\\\\\r=   c                     t                      }| j                            t          |          t          j                   |j        S r   )r   r   getValues_forParameter_r   r   r   r   )r{   r   s     r;   	get_vsynczCocoaContext.get_vsyncI  s4    ww//dW=[\\\zr=   c                 8    | j                                          d S r   )r   flushBufferr   s    r;   flipzCocoaContext.flipN  s    ##%%%%%r=   )T)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r;   r   r     s        $ $ $ $ $

 
 
 
 
( ( ( ( (0 0 0 0 0! ! !
( ( (    
] ] ] ]  
& & & & & & &r=   r   )2r@   ctypesr   r   r   pyglet.gl.baser   r   r   	pyglet.glr	   r
   r   pyglet.canvas.cocoar   pyglet.libs.darwinr   r   	ObjCClassr   r   rn   rE   rm   NSOpenGLPFADoubleBufferNSOpenGLPFAStereoNSOpenGLPFAColorSizeNSOpenGLPFASampleBuffersNSOpenGLPFASamplesNSOpenGLPFAAuxBuffersNSOpenGLPFAAlphaSizeNSOpenGLPFADepthSizeNSOpenGLPFAStencilSizerk   ro   NSOpenGLPFAMinimumPolicyrl   rp   NSOpenGLPFAColorFloatNSOpenGLPFAOffScreenNSOpenGLPFASampleAlphaNSOpenGLPFAMultisampleNSOpenGLPFASupersamplerg   	frozensetrj   r   ra   rz   r   r7   r=   r;   <module>r      s  F  ) ) ) ) ) ) ) ) ) ) 8 8 8 8 8 8 8 8 8 8 & & & & & &             + + + + + + . . . . . . . . (g'(=>> #'#$566.  	
             !" #$ '  ,   W4g' 7/ g6	
 w) 70 '. '. G2 W4 '/ g6 g6  G1!& 70'( -)* G2+, 11/  6 ###$$ !!"""$   &   ?C ?C ?C ?C ?C& ?C ?C ?CD3/ 3/ 3/ 3/ 3/ 3/ 3/ 3/l3& 3& 3& 3& 3&7 3& 3& 3& 3& 3&r=   