
    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\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\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(\R                  " \)5      R                  SS5      r)\R                  " \*5      R                  SS5      r*\R                  " \+5      R                  S
S5      R                  SS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)a
  OpenGL extension ARB.direct_state_access

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

Overview (from the spec)
        
        In unextended OpenGL, most mutation of state contained in objects is through
        an indirection known as a binding. Objects are attached to a context (either
        directly or indirectly via a container) and then commands to modify or
        query their state are issued on that context, indirecting through its
        attachments and into the underlying object. This is known as `bind-to-edit'.
        
        This extension derives from the GL_EXT_direct_state_access extension, which
        added accessors for most state on most objects, allowing it to be queried
        and modified without the object needing to be bound to a context. In cases
        where a single property of an object is to be modified, directly accessing
        its state can be more efficient than binding the object to the context and
        then indirecting through it. Further, directly accessing the state of
        objects through their names rather than by bind-to-edit does not disturb
        the bindings of the current context, which is useful for tools, middleware
        and other applications that are unaware of the outer state but it can also
        avoid cases of redundant state changes.
        
        There are several subtle differences between this extension and the older
        GL_EXT_direct_state_access extension. First, this extension only expands
        functionality that still exists in core profile OpenGL. Second, any function
        that only partially avoids bind-to-edit (for example, explicitly specifying
        a texture unit, bypassing the active texture selector but still indirecting
        through a texture binding) has been omitted. Finally, the original extension
        effectively allowed any function to create new objects whereas in unextended
        OpenGL, only binding functions created objects (bind-to-create), even if
        their names were obtained through one of the glGen* functions. This
        extension does not allow on-the-spot creation of objects. Rather than rely
        on bind-to-create (which would defeat the purpose of the extension), we add
        glCreate* functions that produce new names that represent state vectors
        initialized to their default values. Due to this last change, several
        functions no longer require their <target> parameters, and so where
        applicable, this parameter is absent from this extension.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/ARB/direct_state_access.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/ARB/direct_state_access.pyglInitDirectStateAccessARBr   4   s    !$$o77    idsbuffersdataparams   framebuffersbufsattachmentsvaluerenderbufferstexturesparampixelsr   offsetsstridessamplers	pipelines)/__doc__r   r   r   r   r   r   ctypesOpenGL.raw.GLr   r	   %OpenGL.raw.GL.ARB.direct_state_accessr   r   glCreateTransformFeedbackssetInputArraySizeglCreateBuffersglNamedBufferStorageglNamedBufferDataglNamedBufferSubDataglClearNamedBufferDataglClearNamedBufferSubDataglGetNamedBufferPointervglGetNamedBufferSubDataglCreateFramebuffersglNamedFramebufferDrawBuffers glInvalidateNamedFramebufferData#glInvalidateNamedFramebufferSubDataglClearNamedFramebufferivglClearNamedFramebufferuivglClearNamedFramebufferfvglCreateRenderbuffersglCreateTexturesglCompressedTextureSubImage1DglCompressedTextureSubImage2DglCompressedTextureSubImage3DglTextureParameterfvglTextureParameterIivglTextureParameterIuivglTextureParameterivglGetTextureImageglGetCompressedTextureImageglCreateVertexArraysglVertexArrayVertexBuffersglCreateSamplersglCreateProgramPipelinesglCreateQueries r   r   <module>rJ      s  +X . - &  ) 3 A8 #??+EFXX	4  0BBt __%9:LL
D  //"34FF
D  __%9:LL
D  '=>PP
D  "//*CDVV
D  !)ABTTa   (?@RR
D  __%9:LLD  &oo.KL^^
D  ")1Q!R!d!d4"   %,OO4W$X$j$j4% # "//*CDVVT  #??+EFXXT  "//*CDVVT  oo&;<NNT  !12DD  &oo.KL^^
D  &oo.KL^^
D  &oo.KL^^
D  __%9:LLT  oo&;<NNd  '=>PPd  __%9:LLT  //"34FFd  $OO,GHZZd  __%9:LLd  #??+EFXXttt	  !12DD  !)ABTT  0BB	4r   