
    3j                        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SKJr  SS jr " S	 S
\R                  5      r " S S\5      r\R"                  \R$                  " \R&                  5      \R(                  \R$                  " \R*                  5      \R,                  \R$                  " \R.                  5      \R0                  \R$                  " \R2                  5      \R4                  \R$                  " \R6                  5      \R8                  \R$                  " \R2                  5      \R:                  \R$                  " \R<                  5      \R>                  \R$                  " \R@                  5      0r!g)z'String-array-handling code for PyOpenGL    )_types)GL_1_1)formathandlerN)_byteserror)ERROR_ON_COPYc                     [         R                  " [         R                  " U 5      [         R                  5      R                  $ N)ctypescastc_char_pc_void_pvalue)r   typeCodes     O/home/wildlama/miniconda3/lib/python3.13/site-packages/OpenGL/arrays/strings.pydataPointerr      s&    ;;vu-v?EEE    c                       \ rS rSrSr\R                  4r\SS j5       r	\
" \5      rSS jrSS jrS rSS jrSS	 jrSS
 jrSS jrSrg)StringHandler   z,String-specific data-type handler for OpenGLNc                 @    [         R                  " [        U5      5      $ r
   )r   r   r   )clsr   r   s      r   
from_paramStringHandler.from_param   s    {5122r   c                     [        S5      ez.Currently don't allow strings as output types!z0Don't currently support strings as output arraysNotImplementedErrorselfdimsr   s      r   zerosStringHandler.zeros       !B
 	
r   c                     [        S5      er   r   r   s      r   onesStringHandler.ones    r$   r   c                     [        S5      e)z=Given a value, guess OpenGL type of the corresponding pointerz1Can't guess data-type from a string-type argumentr   )r    r   s     r   arrayToGLTypeStringHandler.arrayToGLType&   s    !C
 	
r   c                 0    [         U   n[        U5      U-  $ )z9Given a data-value, calculate ravelled size for the array)
BYTE_SIZESlen)r    r   r   	byteCounts       r   	arraySizeStringHandler.arraySize,   s     x(	5zY&&r   c                     [        U5      $ )zCGiven a data-value, calculate number of bytes required to represent)r-   r    r   r   s      r   arrayByteCountStringHandler.arrayByteCount2   s    5zr   c                    [        U[        5      (       a  U$ [        US5      (       a  UR                  5       $ [        US5      (       a  UR	                  5       $ [        US5      (       a  UR
                  $ [        S[        U5      -  5      e)z7Convert given value to an array value of given typeCodetobytestostringrawz(String handler got non-string object: %r)
isinstancebyteshasattrr6   r7   r8   	TypeErrortyper2   s      r   asArrayStringHandler.asArray6   su    eU##LUI&&==?"UJ''>>##UE""99 F$u+VWWr   c                     [        S5      e)z<Determine dimensions of the passed array value (if possible)z2Cannot calculate dimensions for a String data-type)r<   r2   s      r   
dimensionsStringHandler.dimensionsD   s    PQQr    r
   )__name__
__module____qualname____firstlineno____doc__r   r:   HANDLED_TYPESclassmethodr   staticmethodr   r"   r&   r)   r/   r3   r>   rA   __static_attributes__rC   r   r   r   r      sS    6\\OM3 3 {+K


'XRr   r   c                   L    \ rS rSr\R
                  4r\SS j5       rSS jr	Sr
g)UnicodeHandlerI   Nc                     [         R                  " U5      n[        R                  U5      nX1La'  [        (       a  [
        R                  " S5      eX4l        U$ )NzSUnicode string passed, cannot copy with ERROR_ON_COPY set, please use 8-bit strings)r   as_8_bitr   r   r   r   	CopyError_temporary_array_)r   r   r   	convertedresults        r   r   UnicodeHandler.from_paramL   sN     OOE*	)))4!}oom  (1$r   c                 V    [         R                  " U5      n[        R                  XUS9$ )N)r   )r   rQ   r   r>   r2   s      r   r>   UnicodeHandler.asArrayY   s&    &$$T8$DDr   rC   r
   )rD   rE   rF   rG   r   unicoderI   rJ   r   r>   rL   rC   r   r   rN   rN   I   s&    ^^%M
 
Er   rN   r
   )"rH   OpenGL.raw.GLr   OpenGL.raw.GL.VERSIONr   OpenGL.arraysr   r   OpenGLr   r   OpenGL._configflagsr   r   FormatHandlerr   rN   	GL_DOUBLEsizeofGLdoubleGL_FLOATGLfloatGL_INTGLintGL_SHORTGLshortGL_UNSIGNED_BYTEGLubyteGL_UNSIGNED_SHORTGL_BYTEGLbyteGL_UNSIGNED_INTGLuintr,   rC   r   r   <module>rp      s   -   ( '    -F7RM// 7RtE] E, fmmFOO4
OOV]]6>>2
MM6==.
OOV]]6>>2
V]]6>>:
fmmFNN;
NNFMM&--0
FMM&--8	
r   