ó
    š3jW  ã                   ó`   • 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 MESAX.texture_stack

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

Overview (from the spec)
        
        There are a number of circumstances where an application may wish to
        blend two textures out of a larger set of textures.  Moreover, in some
        cases the selected textures may vary on a per-fragment basis within
        a polygon.  Several examples include:
        
           1. High dynamic range textures.  The application stores several
           different "exposures" of an image as different textures.  On a
           per-fragment basis, the application selects which exposures are
           used.
        
           2. A terrain engine where the altitude of a point determines the
           texture applied to it.  If the transition is from beach sand to
           grass to rocks to snow, the application will store each texture
           in a different texture map, and dynamically select which two
           textures to blend at run-time.
        
           3. Storing short video clips in textures.  Each depth slice is a
           single frame of video.
        
        Several solutions to this problem have been proposed, but they either
        involve using a separate texture unit for each texture map or using 3D
        textures without mipmaps.  Both of these options have major drawbacks.
        
        This extension provides a third alternative that eliminates the major
        drawbacks of both previous methods.  A new texture target,
        TEXTURE_2D_STACK, is added that functions identically to TEXTURE_3D in
        all aspects except the sizes of the non-base level images.  In
        traditional 3D texturing, the size of the N+1 LOD is half the size
        of the N LOD in all three dimensions.  For the TEXTURE_2D_STACK target,
        the height and width of the N+1 LOD is halved, but the depth is the
        same for all levels of detail. The texture then becomes a "stack" of
        2D textures.  The per-fragment texel is selected by the R texture
        coordinate.
        
        References:
        
            http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=011557
            http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=000516
            http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=011903
            http://www.delphi3d.net/articles/viewarticle.php?article=terraintex.htm

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/MESAX/texture_stack.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    ÚW/home/wildlama/miniconda3/lib/python3.13/site-packages/OpenGL/GL/MESAX/texture_stack.pyÚglInitTextureStackMESAXr   <   s   € å!Ø×$Ò$¤oÓ7Ð7ó    )Ú__doc__r   r   r   r   r   r   ÚctypesÚOpenGL.raw.GLr   r	   Ú!OpenGL.raw.GL.MESAX.texture_stackr   r   © r   r   Ú<module>r      s'   ðñ3÷h .Ñ -ß &Û ß )Ü /Ý =ó8r   