C
glXCreateContext
Chapter 3
87
glXCreateContext
glXCreateContext: create a new GLX rendering context.
C Specification
GLXContext glXCreateContext(
Display *dpy,
XVisualInfo *vis,
GLXContext shareList,
Bool direct)
Parameters
dpy Specifies the connection to the X server.
vis Specifies the visual that defines the frame buffer resources available to
the rendering context. It is a pointer to an XVisualInfo structure, not a
visualID or a pointer to a Visual.
sharelist Specifies the context with which to share display lists. NULL indicates
that no sharing is to take place.
direct Specifies whether rendering is to be done with a direct connection to
the graphics system if possible (True) or through the X server (False).
Description
glXCreateContext creates a GLX rendering context and returns its handle. This context
can be used to render into both windows and GLX pixmaps. If glXCreateContext fails to
create a rendering context, NULL is returned.
If direct is True, then a direct rendering context is created if the implementation
supports direct rendering, if the connection is to an X server that is local, and if a direct
rendering context is available. (An implementation may return an indirect context when
direct is True). If direct is False, then a rendering context that renders through the X
server is always created. Direct rendering provides a performance advantage in some
implementations. However, direct rendering contexts cannot be shared outside a single
process, and they may be unable to render to GLX pixmaps.
If shareList is not NULL, then all display-list indexes and definitions are shared by
context shareList and by the newly created context. An arbitrary number of contexts can
share a single display-list space. However, all rendering contexts that share a single
display-list space must themselves exist in the same address space. Two rendering
contexts share an address space if both are non-direct using the same server, or if both
are direct and owned by a single process. Note that in the non-direct case, it is not
necessary for the calling threads to share an address space, only for their related
rendering contexts to share an address space.
If the GL version is 1.1 or greater, then all texture objects except object 0, are shared by
any contexts that share display lists.