home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / OpenGL / extensions / spec / import_context.spec < prev    next >
Encoding:
Text File  |  1996-11-11  |  4.0 KB  |  156 lines

  1. Name
  2.  
  3.     EXT_import_context
  4.  
  5. Name Strings
  6.  
  7.     GLX_EXT_import_context
  8.  
  9. Version
  10.  
  11.     $Date: 1995/09/30 02:31:16 $ $Revision: 1.1 $
  12.  
  13. Number
  14.  
  15.     47
  16.  
  17. Dependencies
  18.  
  19.     None
  20.  
  21. Overview
  22.  
  23.     This extension allows multiple X clients to share an indirect
  24.     rendering context.
  25.  
  26.     An additional convenience procedure to get the current Display*
  27.     bound to a context is also added.
  28.  
  29. Issues
  30.  
  31.     Does glXImportGLXContext also need to take an XVisualInfo*?
  32.         No.  This information will be retrieved from the server.
  33.  
  34. New Procedures and Functions
  35.  
  36.     Display *glXGetCurrentDisplayEXT();
  37.  
  38.     GLXContextID glXGetGLXContextIDEXT(const GLXContext ctx);
  39.  
  40.     GLXContext glXImportGLXContextEXT(
  41.                 Display *dpy, GLXContextID contextID);
  42.  
  43.     void glXFreeGLXContextEXT(Display *dpy, GLXContext ctx);
  44.  
  45. New Tokens
  46.  
  47.     None
  48.  
  49. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  50.  
  51.     None
  52.  
  53. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  54.  
  55.     None
  56.  
  57. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
  58. and the Frame Buffer)
  59.  
  60.     None
  61.  
  62. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  63.  
  64.     None
  65.  
  66. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  67.  
  68.     None
  69.  
  70. Additions to the GLX Specification
  71.  
  72.     [Add the following to Section 3.2.4 of the GLX Specification
  73.     (Rendering Contexts)]
  74.  
  75.     glxGetCurrentDisplayEXT returns the current display associated
  76.     with the current context.
  77.  
  78.         Display *glXGetCurrentDisplayEXT();
  79.  
  80.     If there is no current context, NULL is returned. No round trip
  81.     is forced to the server; unlike most X calls that return a value,
  82.     glXGetCurrentDisplayEXT does not flush any pending events.
  83.  
  84.     glXGetGLXContextIDEXT returns the XID associated with a GLXContext.
  85.  
  86.         GLXContextID glXGetGLXContextIDEXT(const GLXContext ctx);
  87.  
  88.     No round trip is forced to the server; unlike most X calls that
  89.     return a value, glXGetGLXContextIDEXT does not flush any
  90.     pending events.
  91.  
  92.     glXImportGLXContext creates a GLXContext given the XID of an 
  93.     existing GLXContext.  It may be used in place of glXCreateContext, 
  94.     to share another process's indirect rendering context. 
  95.  
  96.         GLXContext glXImportGLXContextEXT(
  97.         Display *dpy, GLXContextID contextID);
  98.  
  99.         Only the server-side context information can be shared between
  100.         X clients; client-side state, such as pixel storage modes,
  101.         cannot be shared. Thus, glXImportGLXContextEXT, must allocate
  102.         memory to store client-side information. This memory is freed
  103.         by calling  glXFreeGLXContextEXT.
  104.  
  105.     This call does not create a new XID.  It merely makes an
  106.     existing object available to the importing client (Display *).
  107.     Like any XID, it goes away when the creating client drops its
  108.     connection or the ID is explicitly deleted. Note that this is
  109.     when the XID goes away. The object goes away when the XID
  110.     goes away AND the context is not current to any thread.
  111.  
  112.     glXFreeGLXContext frees the client-side part of a GLXContext
  113.     that was created with glXImportGLXContext.
  114.  
  115.         void glXFreeGLXContextEXT(Display *dpy, GLXContext ctx);
  116.  
  117.         glXFreeGLXContext does not free the server-side context information
  118.         or the XID associated with the server-side context.
  119.  
  120. Dependencies on SGI_extension_name
  121.  
  122.     None
  123.  
  124. GLX Protocol
  125.  
  126.     One new GLX protocol command is added.
  127.  
  128.         GetContextInfo
  129.             1           CARD8           opcode (X assigned)
  130.             1           17              GLX opcode (glXVendorPrivateWithReply)
  131.             2           4               request length
  132.             4           15              vendor specific opcode
  133.             4           GLX_CONTEXT     context id
  134.            =>
  135.             1           1               Reply
  136.             1                           unused
  137.             2           CARD16          sequence number
  138.         4        n        reply length
  139.             4           VISUALID        visual i.d.
  140.             4           CARD32          screen i.d.
  141.             4           GLX_CONTEXT     share list
  142.             1           BOOL            is_direct
  143.             11                          unused
  144.  
  145. Errors
  146.  
  147.     None
  148.  
  149. New State
  150.  
  151.         None
  152.  
  153. New Implementation Dependent State
  154.  
  155.     None
  156.