Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ glxmakecurrentreadsgi(3G) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



glXMakeCurrentReadSGI(3G)   OpenGL Reference - GLX   glXMakeCurrentReadSGI(3G)



NAME
     glXMakeCurrentReadSGI - attach a GLX context to separate read and write
     drawables


C SPECIFICATION
     Bool glXMakeCurrentReadSGI( Display *dpy,
                                 GLXDrawable draw,
                                 GLXDrawable read,
                                 GLXContext gc )


PARAMETERS
     dpy   Specifies the connection to the X server.


     draw  A GLX drawable that receives the results of OpenGL drawing
           operations.


     read  A GLX drawable that provides pixels for glReadPixels and
           glCopyPixels operations.


     gc    A GLX rendering context to be attached to draw and read.


DESCRIPTION
     glXMakeCurrentReadSGI performs the same functions as glXMakeCurrent, with
     one important difference:  it attaches a GLX context to two drawables,
     rather than one.  The second drawable serves as the source for any pixel
     data that are read by glReadPixels, glCopyPixels, and OpenGL extension
     commands that read color, depth, or stencil data from the framebuffer.
     It may be an ordinary GLX drawable, or it may be a GLX video source (see
     glXCreateGLXVideoSourceSGIX).  Accumulation operations (see glAccum) are
     not allowed when draw is not identical to read.

     It is not necessary for draw and read to have the same ancillary buffers.
     It is also not necessary for read to contain a buffer corresponding to
     the current GLREADBUFFER of gc.  For example, the current
     GLREADBUFFER of gc might be GLBACK, and read might be single-buffered.
     If there is no corresponding buffer in read, then the pixel values
     extracted from read will be undefined, but no error will be generated.
     Operations that query the value of GLREADBUFFER use the value set last
     in gc, regardless of whether read has the corresponding buffer.

     glXMakeCurrentReadSGI returns True if it is successful, False otherwise.
     If False is returned, the previously current rendering context and
     drawables (if any) remain unchanged.






                                                                        Page 1





glXMakeCurrentReadSGI(3G)   OpenGL Reference - GLX   glXMakeCurrentReadSGI(3G)



ERRORS
     BadMatch is generated if any of the following conditions hold:

          1.   draw was not created on the same X screen and visual as gc.

          2.   read was not created on the same X screen as gc.

          3.   draw is None and gc is not None.

          4.   draw is a GLX video source.

     BadAccess is generated if gc was current to another thread at the time
     glXMakeCurrentReadSGI was called.

     GLXBadDrawable is generated if either draw or read is not a valid GLX
     drawable.

     GLXBadContext is generated if gc is not a valid GLX context.

     GLXBadContextState is generated if glXMakeCurrentReadSGI is called
     between a glBegin and the corresponding call to glEnd.

     GLXBadContextState is also generated if the rendering context current to
     the calling thread has OpenGL renderer state GLFEEDBACK or GLSELECT.

     GLXBadCurrentWindow is generated if there are pending OpenGL commands for
     the previous context and the current drawable is a window that is no
     longer valid.

     BadAlloc may be generated if the server has delayed allocation of
     ancillary buffers until glXMakeCurrentReadSGI is called, only to find
     that it has insufficient resources to complete the allocation.



MACHINE DEPENDENCIES
     The SGImakecurrentread extension is supported on RealityEngine,
     RealityEngine2, and VTX systems with the following restrictions:

          1.  A BadMatch error is generated if

              a.   draw is RGBA and read is not, or vice versa.  A video
                   source (see glXCreateGLXVideoSourceSGIX) is considered to
                   be RGBA.

              b.   read is not a video source and it does not have the same
                   color component resolution or the same number of index bits
                   as draw;

              c.   Either draw or read is not at buffer level 0 (the main
                   frame buffer planes, rather than overlay planes).




                                                                        Page 2





glXMakeCurrentReadSGI(3G)   OpenGL Reference - GLX   glXMakeCurrentReadSGI(3G)



              d.   draw is multisample capable and readP is a pbuffer (see
                   glXCreateGLXPbufferSGIX).

          2.  When draw is a pixmap then read must be the same pixmap.  A
              BadAlloc error is generated otherwise.

     On RealityEngine, RealityEngine2, and VTX, on InfiniteReality, on High
     Impact and Maximum Impact, on Solid Impact systems, and on O2 systems, it
     is not possible to use a context for rendering to both windows and
     pixmaps.


SEE ALSO
     glXMakeCurrent, glXCreateContext, glXGetCurrentContext,
     glXGetCurrentDisplay, glXGetCurrentDrawable, glXGetCurrentReadDrawable








































                                                                        Page 3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026