
    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                  S
S5      r\R                  " \5      R                  S	S5      R                  S
S5      r\R                  " \5      R                  S	S5      R                  S
S5      rg)a3  OpenGL extension NVX.progress_fence

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

Overview (from the spec)
        
        This extension uses the concept of GL semaphores as defined in 
        GL_EXT_semaphore to better coordinate operations between multiple
        GPU command streams. A semaphore type called "progress fence" is 
        derived from the GL semaphore. The progress fence semaphore is
        created by CreateProgressFenceNVX() returning the name of a newly
        created semaphore object. Like other semaphores, these are signaled
        by the GL server. Each signal operation is queued in the GPU command
        stream with an associated fence value that is written to the semaphore
        at the completion of a signal operation. 
        
        A GL server wait can be added to the command stream using WaitSemaphoreui64NVX.
        This blocks the GPU until the progress fence semaphore reaches or exceeds the 
        specified fence value.
        
        A GL client wait can be initiated using ClientWaitSemaphoreui64NVX. 
        This blocks the CPU until the specified fence value is reached.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/NVX/progress_fence.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/NVX/progress_fence.pyglInitProgressFenceNVXr   $   s    !$$o77    fenceValueArraysemaphoreArray)__doc__r   r   r   r   r   r   ctypesOpenGL.raw.GLr   r	    OpenGL.raw.GL.NVX.progress_fencer   r   glSignalSemaphoreui64NVXsetInputArraySizeglWaitSemaphoreui64NVXglClientWaitSemaphoreui64NVX r   r   <module>r      s   8 . - &  ) . <8 !)ABTTtd  '=>PPtd  %__-IJ\\td r   