HP Workstation zx2000 HP OpenGL Implementation Guide for HP-UX 11.X (IPF versi - Page 29

running OpenGL programs, virtual GLX (VGL) mode, visual support for the VGL mode

Page 29 highlights

3 running OpenGL programs This chapter describes Virtual GLX mode, Virtual Memory Driver (VMD), and support of stereo applications. virtual GLX (VGL) mode Virtual GLX (VGL) defines a special transparent mode within HP's implementation of OpenGL that allows an HP client to render through OpenGL to X Servers and/or X terminals that do not support OpenGL or the X Server extension for GLX. This mode is implemented by emulating the X Server extension within the OpenGL API client-side library and using the hp Virtual Memory Driver (VMD) to perform Xlib rendering. VGL provides flexibility for OpenGL users, but does not provide the same level of performance as is available to servers supporting GLX. visual support for the VGL mode In VGL mode, the visual capabilities incorporated in glXChooseVisual() and glXGetConfig() are synthesized from the list of X Visuals supported on the target X Server and the capabilities of the Virtual Memory Driver (VMD). "supported visuals" on page 1-3 lists the X Visuals that are supported through the OpenGL Extension to the X Window System (GLX) in the Virtual GLX (VGL) mode. special considerations When you are in the VGL mode, you will notice the following differences between it and the GLX mode. ■ VGL deals with X Servers that do not support replicated X visuals that provide extended GLX capabilities. This results in a GLX visual list that is synthesized from available X visuals. This list is assigned the maximum set of capabilities supported by the Virtual Memory Driver (VMD) for each particular visual. For example, if a visual is found to be supported by the Double-Buffered Extension (DBE), then it will be reported as having the capability of doing double buffering. Note that there will not be a counterpart for the GLX visual with the same type and depth that is single buffered. Such visuals are locked to either single buffer or double buffer mode, based upon the first access. In VGL, to utilize one visual for both single and double buffered operation, two separate X display connections must be opened. ■ OpenGL and Xlib rendering when mixed and sent to the same drawable in VGL mode may behave differently than if a GLX capable X Server were used. This is because in VGL mode OpenGL rendering is not strictly bounded by the limits of primitives rendered as is the case when a GLX Server is used. In fact, rendering a single GLX primitive can result in repainting the entire drawable. This means that in the VGL mode it may not be safe to rely upon the fact that Xlib and OpenGL render to different regions of the drawable. The best way to avoid this issue is to always perform Xlib rendering after OpenGL rendering. OpenGL implementation guide 3-1

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

OpenGL implementation guide
3–1
3
running OpenGL programs
This chapter describes Virtual GLX mode, Virtual Memory Driver (VMD), and support of stereo
applications.
virtual GLX (VGL) mode
Virtual GLX (VGL) defines a special transparent mode within HP's implementation of OpenGL
that allows an HP client to render through OpenGL to X Servers and/or X terminals that do not
support OpenGL or the X Server extension for GLX.
This mode is implemented by emulating the X Server extension within the OpenGL API
client-side library and using the hp Virtual Memory Driver (VMD) to perform Xlib rendering.
VGL provides flexibility for OpenGL users, but does not provide the same level of performance
as is available to servers supporting GLX.
visual support for the VGL mode
In VGL mode, the visual capabilities incorporated in
glXChooseVisual()
and
glXGetConfig()
are synthesized from the list of X Visuals supported on the target X Server
and the capabilities of the Virtual Memory Driver (VMD).
“supported visuals” on page 1-3
lists
the X Visuals that are supported through the OpenGL Extension to the X Window System (GLX)
in the Virtual GLX (VGL) mode.
special considerations
When you are in the VGL mode, you will notice the following differences between it and the
GLX mode.
VGL deals with X Servers that do not support replicated X visuals that provide extended
GLX capabilities. This results in a GLX visual list that is synthesized from available X
visuals. This list is assigned the maximum set of capabilities supported by the Virtual
Memory Driver (VMD) for each particular visual. For example, if a visual is found to be
supported by the Double-Buffered Extension (DBE), then it will be reported as having the
capability of doing double buffering. Note that there will not be a counterpart for the GLX
visual with the same type and depth that is single buffered. Such visuals are locked to either
single buffer or double buffer mode, based upon the first access. In VGL, to utilize one visual
for both single and double buffered operation, two separate X display connections must be
opened.
OpenGL and Xlib rendering when mixed and sent to the same drawable in VGL mode may
behave differently than if a GLX capable X Server were used. This is because in VGL mode
OpenGL rendering is not strictly bounded by the limits of primitives rendered as is the case
when a GLX Server is used. In fact, rendering a single GLX primitive can result in repainting
the entire drawable. This means that in the VGL mode it may not be safe to rely upon the fact
that Xlib and OpenGL render to different regions of the drawable. The best way to avoid this
issue is to always perform Xlib rendering after OpenGL rendering.