ó
    š3j‚  ã                   ó  • S r SrSSKJr  SSKJr  SSKJr  SSKrSSK	J
r
Jr  S=rr " S S	\R                  5      r\\R"                  \R$                  4\\R(                  \R*                  4\
\R(                  \R*                  40r\" \R0                   V Vs/ s H  u  p\" \U 5      U4PM     snn 5      r\" \R0                   V Vs/ s H  u  p\" \U 5      PM     snn 5      q\" \R0                   V Vs/ s H  u  pU\" \U 5      4PM     snn 5      r\" \R0                   V Vs/ s H  u  pU\R=                  \" \U 5      5      4PM!     snn 5      r CCgs  snn f s  snn f s  snn f s  snn f ! \  a
  r! Sr!C!gSr!C!ff = f)
z3Numbers passed as array handling code for PyOpenGL
Únumbersé    )Ú_types)ÚGL_1_1)ÚformathandlerN)ÚlongÚinteger_typesc                   ó6  • \ rS rSrSr\\\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                   4
-   rSS jr\rSS jrSS jrS rSS jrSS	 jrSS
 jrS rSrg)ÚNumberHandleré   zKAllows the user to pass a bald Python float,int, etceteras as an array-of-1Nc                 ó€   •  [         R                  " U5      $ ! [         a  nU=R                  S-  sl        e SnAff = f)z5If it's a ctypes value, pass on, otherwise do asArray)z^ If you have ERROR_ON_COPY enabled, remember to pass in an array to array-requiring functions.N)ÚctypesÚbyrefÚ	TypeErrorÚargs)ÚselfÚvalueÚtypeCodeÚerrs       ÚO/home/wildlama/miniconda3/lib/python3.13/site-packages/OpenGL/arrays/numbers.pyÚ
from_paramÚNumberHandler.from_param   s>   € ð	Ü—<’< Ó&Ð&øÜó 	ØHŠHð ñ Hð ûð		ús   ‚ ˜
=¢8¸=c                 ó   • [        S5      e©z-Currently don't allow Number as output types!z6Number data-type not allowed as an output array format©ÚNotImplementedError©r   Údimsr   s      r   ÚzerosÚNumberHandler.zeros*   ó   € ä!ØHó
ð 	
ó    c                 ó   • [        S5      er   r   r   s      r   ÚonesÚNumberHandler.ones0   r    r!   c                 óÌ   • UR                   [        ;   a  [        UR                      $ [        R                  UR                   5      nUb  US   $ [	        S[        U5      -  5      e)z=Given a value, guess OpenGL type of the corresponding pointeré   z(Can't guess array data-type for %r types)Ú	__class__ÚTARGET_TYPESÚDEFAULT_TYPESÚgetr   Útype)r   r   Úguesss      r   ÚarrayToGLTypeÚNumberHandler.arrayToGLType6   sY   € à?‰?œlÓ*Ü §¡Ñ0Ð0ä!×%Ñ% e§o¡oÓ6ˆEØÑ Ø˜Q‘xÜØ>Ä$ÀuÃ+ÑNóð r!   c                 ó   • g)z9Given a data-value, calculate ravelled size for the arrayr&   © ©r   r   r   s      r   Ú	arraySizeÚNumberHandler.arraySizeB   ó   € àr!   c                 óŽ   • UR                   [        ;   a  U$ [        R                  U5      nUb  U" U5      $ [	        SU< S35      e)z7Convert given value to an array value of given typeCodezDon't know how to convert z to an array type)r'   r(   ÚCONSTANT_TO_TYPEr*   r   )r   r   r   Ú
targetTypes       r   ÚasArrayÚNumberHandler.asArrayF   sI   € ð ?‰?œlÓ*ØˆLÜ%×)Ñ)¨(Ó3ˆ
ØÑ!Ù˜eÓ$Ð$ÝÛCKÐMó
ð 	
r!   c                 ó   • g)z-Determine unit size of an array (if possible)r&   r0   r1   s      r   ÚunitSizeÚNumberHandler.unitSizeR   r4   r!   c                 óx   • [         [        [        4 H  nX#;   d  M
  X2   X1'   M     U[        ;   a  [        U4-   qgg)z2Register a sub-class for handling as the base-typeN)r)   r(   Ú
BYTE_SIZESÚTARGET_TYPE_TUPLE)r   ÚtypÚbaseÚsources       r   ÚregisterEquivalentÚ NumberHandler.registerEquivalentV   s@   € ô %¤l´JÓ?ˆFØ~Ø$™l“ñ @ð ”<ÓÜ 1°T°GÑ ;Ñð  r!   r0   )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úfloatr   ÚGLdoubleÚGLfloatÚGLintÚGLshortÚGLuintÚGLulongÚGLushortÚGLclampfÚGLclampdÚHANDLED_TYPESr   ÚdataPointerr   r#   r-   r2   r8   r;   rC   Ú__static_attributes__r0   r!   r   r
   r
      s…   † ÙUà!ØØ‰Ø‰Ø‰Ø‰Ø‰Ø‰Ø‰Ø‰Ø‰ð%ñ €Môð €Kô
ô
ò
ôô

ôõ<r!   r
   )"rI   ÚREGISTRY_NAMEÚOpenGL.raw.GLr   ÚOpenGL.raw.GL.VERSIONr   ÚOpenGL.arraysr   r   ÚOpenGL._bytesr   r   ÚnÚcÚFormatHandlerr
   rJ   rK   Ú	GL_DOUBLEÚintrM   ÚGL_INTr)   ÚdictÚARRAY_TYPE_TO_CONSTANTÚgetattrr(   Útupler?   r6   Úsizeofr>   Ú	NameErrorr   )r\   r]   s   00r   Ú<module>rh      sŒ  ðñð €Ý  Ý (Ý 'Û ß -à€€€AôO<M×/Ñ/ô O<ðf 
ˆFO‰O˜V×-Ñ-Ð.Øˆ&,‰,˜Ÿ™Ð	&Øˆ6<‰<˜Ÿ™Ð
'ð€ñ
 Ø+1×+HÒ+HÔIÒ+H¡ !gˆfaÓ˜!ÓÑ+HÒIó€ñ Ø&,×&CÒ&CÔDÒ&C™F˜QWˆVQÖÑ&CÒDóÐ ñ Ø+1×+HÒ+HÔIÒ+H¡ !€a‰˜Ó	ÓÑ+HÒIóÐ ñ Ø:@×:WÒ:WÔXÒ:W±°€aˆ‰‘w˜v qÓ)Ó	*Ó+Ñ:WÒXó€
ð	Ø	‰1ùó Jùó Eùó Jùó Yøð
 ó 	Üûð	ús*   ÂE
ÃE
Ã5E#
Ä%&E)
ÅE/ Å/E?Å:E?