ó
    š3jŸ
  ã                   ó`   • S r SSKJrJrJr  SSKJrJr  SSKrSSKJ	r	J
r
  SSK7  SSKJr  S rg)	a†	  OpenGL extension AMD.interleaved_elements

This module customises the behaviour of the 
OpenGL.raw.GL.AMD.interleaved_elements to provide a more 
Python-friendly API

Overview (from the spec)
        
            The glDrawElements function and its variants (instanced and indirect,
        for example) allow OpenGL to draw indexed arrays of vertices. Since its
        inception, OpenGL has supported unsigned bytes, unsigned shorts and
        unsigned integers as index types. However, all enabled vertex arrays may
        be represented by at most one shared index.
        
            A common scenario in graphics rendering is that several faces share
        a vertex where, for each face some properties of a vertex (position and
        texture coordinates, for example) should be common but others must be
        unique (colors, normals, and so on). Consider a mesh of a cube with
        per-face normals, for example. There are 8 vertices and 6 normals, and 12
        triangles (where each face of the cube is represented as two triangles).
        To render this cube, we must compute the 24 unique permutations of
        position and normal and build a new element list to index into it. In
        fact, any advantage of indexed draw is lost here as the number of required
        permutations is equal to the final vertex count required to draw the
        object.
        
            This extension allows OpenGL to process multi-component packed element
        data. The maximum size of a vertex's index data is not increased, but the
        facility to store 2 16-bit or 2 or 4 8-bit indices per vertex is introduced.
        Each vertex attribute is given a swizzle property to allow its index to
        be sourced from one of up to 4 channels of index data. This effectively
        allows an application to supply multiple interleaved streams of index data
        to OpenGL. Each vertex attribute is given a 'channel selector' to select
        one of the up to 4 channels of vertex index information presented to
        OpenGL. This enables the use-case described above and many more.
        The swizzle parameter is also applied to vertex indices passed to shaders,
        and updates to the definition of base vertex parameters and primitive
        restart are applied.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/AMD/interleaved_elements.txt
é    )ÚplatformÚconstantÚarrays)Ú
extensionsÚwrapperN)Ú_typesÚ_glgets)Ú*)Ú_EXTENSION_NAMEc                  ó:   • SSK Jn   U R                  " [        5      $ )z=Return boolean indicating whether this extension is availabler   ©r   )ÚOpenGLr   ÚhasGLExtensionr   r   s    Ú\/home/wildlama/miniconda3/lib/python3.13/site-packages/OpenGL/GL/AMD/interleaved_elements.pyÚglInitInterleavedElementsAMDr   2   s   € å!Ø×$Ò$¤oÓ7Ð7ó    )Ú__doc__r   r   r   r   r   r   ÚctypesÚOpenGL.raw.GLr   r	   Ú&OpenGL.raw.GL.AMD.interleaved_elementsr   r   © r   r   Ú<module>r      s'   ðñ)÷T .Ñ -ß &Û ß )Ü 4Ý Bó8r   