
    3j\                     R   S r SSKJr  SSKJr  S r\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  0r\R                  \R                  \R                  \R                  0r " S S\5      rS rg)	z)Utility module to parse a Feedback buffer    )contextdata)GL_1_1c                 .   Sn/ n[        5       nX!:  Ga  [        X   5      nUS-  nU[        ;   a8  U" X5      u  pbUR                  [        R	                  U5      [        U6 45        GO$U[        ;   aH  U" X5      u  pbU" X5      u  prUR                  [        R	                  U5      [        U6 [        U6 45        OU[        R                  :X  a)  UR                  [        R                  X   45        US-  nOU[        R                  :X  aq  [        R                  /n[        X   5      n	US-  n[        U	5       H$  n
U" X5      u  pbUR                  [        U6 5        M&     UR                  [        U5      5        O[        SU< S35      eX!:  a  GM  U$ )z4Parse the feedback buffer into Python object recordsr      zUnrecognised token z in feedback stream)createGetVertexintSINGLE_VERTEX_TOKENSappendgetVertexDOUBLE_VERTEX_TOKENS_simpleGL_PASS_THROUGH_TOKENGL_POLYGON_TOKENrangetuple
ValueError)buffer
entryCountbufferIndexresult	getVertextokenvDatavData2tempcountitems              L/home/wildlama/miniconda3/lib/python3.13/site-packages/OpenGL/GL/feedback.pyparseFeedbackr       s~   KF"I

"F'(q((!*F!AEMM044U;VU^LN**!*F!AE"+V"BFMM$((/ 
 g333MMG996;NOP1Kg...,,-D+,E1Ke$-v$D!VU^, % MM5;'@EG 5 
": M    c                   &    \ rS rSrSrSrSS jrSrg)r   3   z8Simplistic holder for vertex data from a feedback buffervertexcolortextureNc                 (    Xl         X l        X0l        g)zStore values for accessNr$   )selfr%   r&   r'   s       r   __init__Vertex.__init__6   s    
r!   )r&   r'   r%   )NN)__name__
__module____qualname____firstlineno____doc__	__slots__r*   __static_attributes__ r!   r   r   r   3   s    B,Ir!   r   c                    ^^ [         R                  " S5      n [        R                  " [        R                  5      nSS/[        U5         mU [        R                  [        R                  4;   a!  U [        R                  :X  a  SmOSmU4S jnU$ U [        R                  :X  a  U4S jnU$ U [        R                  :X  a  SmOSmUU4S jnU$ )	NGL_FEEDBACK_BUFFER_TYPE   r         c                     > UT-   nXU S S 4U4$ )Nr3   )r   r   endsizes      r   r   "createGetVertex.<locals>.getVertexD   s$    d"Cs+D6s::r!   c                 .   > US-   nUT-   nXU XU S 4U4$ )Nr8   r3   )r   r   r:   colorEnd	colorSizes       r   r   r<   H   s1    a-CYHs+Fx,@FxOOr!   c                 <   > UT-   nUT-   nUS-   nXU XU XU 4U4$ )Nr6   r3   )r   r   r:   r>   
textureEndr?   r;   s        r   r   r<   Q   sB    d"CYH!AJs+Fx,@Q[A\]^hhhr!   )
r   getValuer   glGetBooleanvGL_INDEX_MODEr   GL_2DGL_3DGL_3D_COLORGL_3D_COLOR_TEXTURE)mode	indexModer   r?   r;   s      @@r   r   r   ;   s    !:<D%%w'<'<>IAY)Igmm,,7== DD	;$  
$$	$	P  7...DD	i
 r!   N)r0   OpenGLr   OpenGL.GL.VERSIONr   r   r    GL_BITMAP_TOKENGL_COPY_PIXEL_TOKENGL_DRAW_PIXEL_TOKENGL_POINT_TOKENr	   GL_LINE_TOKENGL_LINE_RESET_TOKENr   objectr   r   r3   r!   r   <module>rT      s    /  /"J W44!<!<!<!<G22	  700!<!< f r!   