ó
    š3j2  ã                   óÔ  • 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	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	S5      r\R                  " \5      R                  S	S5      r\R                  " \5      R                  S	S5      rg)
av  OpenGL extension ARB.gpu_shader_fp64

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

Overview (from the spec)
        
        This extension allows GLSL shaders to use double-precision floating-point
        data types, including vectors and matrices of doubles.  Doubles may be
        used as inputs, outputs, and uniforms.  
        
        The shading language supports various arithmetic and comparison operators
        on double-precision scalar, vector, and matrix types, and provides a set
        of built-in functions including:
        
          * square roots and inverse square roots;
        
          * fused floating-point multiply-add operations;
        
          * splitting a floating-point number into a significand and exponent
            (frexp), or building a floating-point number from a significand and
            exponent (ldexp);
        
          * absolute value, sign tests, various functions to round to an integer
            value, modulus, minimum, maximum, clamping, blending two values, step
            functions, and testing for infinity and NaN values;
        
          * packing and unpacking doubles into a pair of 32-bit unsigned integers;
        
          * matrix component-wise multiplication, and computation of outer
            products, transposes, determinants, and inverses; and
        
          * vector relational functions.
        
        Double-precision versions of angle, trigonometry, and exponential
        functions are not supported.
        
        Implicit conversions are supported from integer and single-precision
        floating-point values to doubles, and this extension uses the relaxed
        function overloading rules specified by the ARB_gpu_shader5 extension to
        resolve ambiguities.
        
        This extension provides API functions for specifying double-precision
        uniforms in the default uniform block, including functions similar to the
        uniform functions added by EXT_direct_state_access (if supported).
        
        This extension provides an "LF" suffix for specifying double-precision
        constants.  Floating-point constants without a suffix in GLSL are treated
        as single-precision values for backward compatibility with versions not
        supporting doubles; similar constants are treated as double-precision
        values in the "C" programming language.
        
        This extension does not support interpolation of double-precision values;
        doubles used as fragment shader inputs must be qualified as "flat".
        Additionally, this extension does not allow vertex attributes with 64-bit
        components.  That support is added separately by EXT_vertex_attrib_64bit.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.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/ARB/gpu_shader_fp64.pyÚglInitGpuShaderFp64ARBr   E   s   € å!Ø×$Ò$¤oÓ7Ð7ó    Úvalue)Ú__doc__r   r   r   r   r   r   ÚctypesÚOpenGL.raw.GLr   r	   Ú!OpenGL.raw.GL.ARB.gpu_shader_fp64r   r   ÚglUniform1dvÚsetInputArraySizeÚglUniform2dvÚglUniform3dvÚglUniform4dvÚglUniformMatrix2dvÚglUniformMatrix3dvÚglUniformMatrix4dvÚglUniformMatrix2x3dvÚglUniformMatrix2x4dvÚglUniformMatrix3x2dvÚglUniformMatrix3x4dvÚglUniformMatrix4x2dvÚglUniformMatrix4x3dv© r   r   Ú<module>r'      sÙ  ðñ<÷z .Ñ -ß &Û ß )Ü /Ý =ò8ð _Š_˜\Ó*×<Ñ<ØˆTó€ð _Š_˜\Ó*×<Ñ<ØˆTó€ð _Š_˜\Ó*×<Ñ<ØˆTó€ð _Š_˜\Ó*×<Ñ<ØˆTó€ð —?’?Ð#5Ó6×HÑHØˆTóÐ ð —?’?Ð#5Ó6×HÑHØˆTóÐ ð —?’?Ð#5Ó6×HÑHØˆTóÐ ð —_’_Ð%9Ó:×LÑLØˆTóÐ ð —_’_Ð%9Ó:×LÑLØˆTóÐ ð —_’_Ð%9Ó:×LÑLØˆTóÐ ð —_’_Ð%9Ó:×LÑLØˆTóÐ ð —_’_Ð%9Ó:×LÑLØˆTóÐ ð —_’_Ð%9Ó:×LÑLØˆTóÑ r   