
    3j                     d   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\R                  " \5      R                  S	S5      r\R                  " \5      R                  S	S
5      r\R                  " \5      R                  S	S5      r\R                  " \5      R                  S	S
5      r\R                  " \5      R                  S	S5      r\R                  " \5      R+                  S\
R,                  SSS9r\R                  " \5      R+                  S\
R,                  SSS9rg)a  OpenGL extension ARB.viewport_array

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

Overview (from the spec)
        
        OpenGL is modeled on a pipeline of operations. The final stage in this
        pipeline before rasterization is the viewport transformation. This stage
        transforms vertices from view space into window coordinates and allows the
        application to specify a rectangular region of screen space into which
        OpenGL should draw primitives. Unextended OpenGL implementations provide a
        single viewport per context. In order to draw primitives into multiple
        viewports, the OpenGL viewport may be changed between several draw calls.
        With the advent of Geometry Shaders, it has become possible for an
        application to amplify geometry and produce multiple output primitives
        for each primitive input to the Geometry Shader. It is possible to direct
        these primitives to render into a selected render target. However, all
        render targets share the same, global OpenGL viewport.
        
        This extension enhances OpenGL by providing a mechanism to expose multiple
        viewports. Each viewport is specified as a rectangle. The destination
        viewport may be selected per-primitive by the geometry shader. This allows
        the Geometry Shader to produce different versions of primitives destined
        for separate viewport rectangles on the same surface. Additionally, when
        combined with multiple framebuffer attachments, it allows a different
        viewport rectangle to be selected for each. This extension also exposes a
        separate scissor rectangle for each viewport. Finally, the viewport bounds
        are now floating point quantities allowing fractional pixel offsets to be
        applied during the viewport transform.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/viewport_array.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    V/home/wildlama/miniconda3/lib/python3.13/site-packages/OpenGL/GL/ARB/viewport_array.pyglInitViewportArrayARBr   +   s    !$$o77    v   datatargetT)sizepnameArgorPassIn)__doc__r   r   r   r   r   r   ctypesOpenGL.raw.GLr   r	    OpenGL.raw.GL.ARB.viewport_arrayr   r   glViewportArrayvsetInputArraySizeglViewportIndexedfvglScissorArrayvglScissorIndexedvglDepthRangeArrayvglGetFloati_v	setOutput_glget_size_mappingglGetDoublei_v r   r   <module>r)      s-  "F . - &  ) . <8 !12DD  OO$78JJ  0BB //"34FF  ??#56HH  oom,66
++Xt 7  ~.88
++Xt 9 r   