
    _e\                     R   d Z ddlmZ ddlmZ d Zej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  iZej                  ej                  ej                  ej                  iZ G d de      Zd Zy)	z)Utility module to parse a Feedback buffer    )contextdata)GL_1_1c                 0   d}g }t               }||k  rt        | |         }|dz  }|t        v r: || |      \  }}|j                  t        j	                  |      t        | f       n%|t        v rL || |      \  }} || |      \  }}|j                  t        j	                  |      t        | t        | f       n|t        j                  k(  r*|j                  t        j                  | |   f       |dz  }n|t        j                  k(  rrt        j                  g}t        | |         }	|dz  }t        |	      D ]%  }
 || |      \  }}|j                  t        |        ' |j                  t        |             nt        d|d      ||k  r|S )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              4/usr/lib/python3/dist-packages/OpenGL/GL/feedback.pyparseFeedbackr       s   KF"I


"F;'(q((!*FK!AE;MM044U;VU^LN**!*FK!AE;"+V["BFKMM$((/ 
 g333MMG996+;NOP1Kg...,,-D{+,E1Ke -$-v{$D!kVU^,- MM5;'@EG 5 

": M    c                       e Zd ZdZdZddZy)r   z8Simplistic holder for vertex data from a feedback buffervertexcolortextureNc                 .    || _         || _        || _        y)zStore values for accessNr#   )selfr$   r%   r&   s       r   __init__zVertex.__init__6   s    
r!   )NN)__name__
__module____qualname____doc__	__slots__r)    r!   r   r   r   3   s    B,Ir!   r   c                     t        j                  d      } t        j                  t        j                        }ddgt        |         | t        j                  t        j                  fv r| t        j                  k(  rdndfd}|S | t        j                  k(  rfd}|S | t        j                  k(  rdndfd}|S )	NGL_FEEDBACK_BUFFER_TYPE   r         c                 "    |z   }| || d d f|fS )Nr/   )r   r   endsizes      r   r   z"createGetVertex.<locals>.getVertexD   s&    d"C;s+D6s::r!   c                 2    |dz   }|z   }| || | || d f|fS )Nr4   r/   )r   r   r6   colorEnd	colorSizes       r   r   z"createGetVertex.<locals>.getVertexH   s5    a-CYH;s+F3x,@FxOOr!   c                 B    |z   }|z   }|dz   }| || | || | || f|fS )Nr2   r/   )r   r   r6   r9   
textureEndr:   r7   s        r   r   z"createGetVertex.<locals>.getVertexQ   sH    d"CYH!AJ;s+F3x,@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:   r7   s      @@r   r   r   ;   s    !:<D%%w'<'<>IAY)Igmm,,7== DD	;$  
$$	$	P  7...DD	i
 r!   N)r-   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   r/   r!   r   <module>rO      s    /  /"J W44!<!<!<!<G22	  700!<!< f r!   