------------- PEX FAQ--Frequently Asked Questions Network Computing Devices 350 North Bernardo Avenue Mountain View, California 94043. (415) 694-0650 Introduction ------------ Here is a list of frequently asked technical questions (Technical FAQ's) about NCD PEX, the 3D Graphics Extension to the X Window System. Some are general questions about PEX which will apply to any implementation. Some are specific questions about NCD's implementation of PEX. The general questions can also be found in articles from USENET: comp.windows.x.pex, comp.windows.x and comp.graphics. Glossary -------- ANSI American National Standards Institute API Application Programmer Interface CGM Computer Graphics Metafile GKS Graphics Kernel System ISO International Standards Organization PEX PHIGS/PHIGS-PLUS Extensions to X PEX-SI PEX Sample Implementation from the MIT X Consortium PHIGS Programmers' Hierarchical Interactive Graphics System PHIGS-PLUS PHIGS Plus Lumiere Und Surfaces Frequently Asked Questions -------------------------- Q: What is PEX? A: PEX is an Extension to the Core X Protocol to provide 3D graphics support within the X Windows environment. PEX stands for PHIGS Extension to X, but PEX is more than PHIGS and PHIGS PLUS. PEX supports many other 3D graphics application programmer's interfaces (API's) with either display list mode or immediate mode style graphics or a mixture of the two. Included in the X11R5 distribution is code for the Sample Implementation of the extensions to the X Windows server which implements the functionality defined by the PEX Protocol Extensions. Included in the PEX-SI is PEXlib, the client side library or API for PEX. Q: How can I tell if my X server supports PEX? A: For any X server the xdpyinfo command displays all the extensions supported by a server. If one of the extensions listed is "X3D-PEX", then your server supports PEX. On NCD terminals you can go to the Console->Statistics->Show Version window and you will be able to see if the NCD terminal supports PEX. The NCDWare version will include the suffix "PEX" if the server has the PEX extension. In addition, you must have a PEX license to use PEX. PEX will be listed under "Licensed Features" on the Show Version window if that NCD terminal has a PEX license. Please contact your NCD sales representative if you need a PEX license. Q: Why don't the R5 PEX demos work on my mono screen? A: The X11R5 PEX-SI and the NCD PEX product only work on 8-bit screens: greyscale and color. The supported NCD bases that will run PEX are: MCX, 19c, 17cr, 19g. Q: What are the two input devices supported by NCD PEX? A: The NCD PEX server comes with X Input Extension support for the SummaGraphics Tablet (both 12x12 and 18x12 inch tablets) and the Logitech 3D Mouse. No other devices are supported at this time. There are no known restrictions on the support for the SummaGraphics Tablet. In addition to both 12x12 and 18x12 inch tablets, NCD PEX supports the two button stylus, the four button mouse, and the 16 button mouse. NCD PEX supports the two different protocols UIOF and MM used by the SummaGraphics Tablet (which is transparent to the user). NCD PEX supports both relative and absolute mode reporting from the tablets. Tablet resolution changes by the user are through the X Input Extension. There are no configuration parameters necessary to set up the tablet. NCD PEX automatically selects from a set of serial port parameters. All user configurability of the tablet occurs through the X Input Extension. The Logitech 3D Mouse is supported in 3D mode only. Logitech claims that their 3D Mouse will eventually work in both 3D Mode and 2D Mode. In 2D Mode it is compatible with other Logitech mice that NCD ships with all products. There are no configuration parameters for the 3D Mouse either. In order to use X Input Extension devices with NCD X terminals, the serial port must be configured to be used for an "input-device" using the Setup client. Then the correct extension input device must be selected from the "Input Devices" section of the Setup client. Currently, the choices are either "tablet" or "3d-mouse". At that point, the NCD PEX server will attempt to establish contact with the extension device attached to the serial port when clients query the server about what devices are available. Q: Where do I get PEX? A: NCD PEX Product: See the Jan/Feb Price list addendum for NCD product ordering. The product codes for PEX are SW5UG for an upgrade to SW1 or SW2, and SW5 for a new license. For ordering new hardware, there is a special RAM code for the extended memory configuration, see the page, "Configuring for PEX" for details. A: Publicly Available Source Code: The PEX Sample Implementation (PEX-SI) is part of the X11R5 release. This includes the server extension and API's. This code is available via anonymous ftp from export.lcs.mit.edu. Q: PEX Application Programmer Interfaces (API's) A: NCD provides the server extension for support of the PEX protocol. In order to access this extension, one must use an application that generates PEX Protocol. The application can either generate the Protocol byte stream itself, or use something called an Application Protocol Interface or API for short. A: PEX API Products with Publicly Available Source Code: The PEXlib API has been released by the MIT X Consortium with the PEX 5.1 Sample Implementation and is available on most host platforms that support X11R5. In the contrib section of X11R5 is another API, PEXtk from SHOgraphics which supplies an Iris 4GL style of programmer's interface. The PEXt toolkit by Rich Thomson at Evans and Sutherland (rthomson@dsd.es.com) is available on export as PEXt.tar.Z; it includes a PEX widget making it easier to include PEX in Xt-based programs. A: PEX API Products Commercially Available: Two API's are the PHIGS and PHIGS-PLUS 3D graphics standards. PHIGS is a port of the PHIGS C language binding onto an internal layer which generates the PEX Protocol allowing this particular PHIGS implementation to work within the X windows environment. The same model used by PHIGS holds for PHIGS-PLUS which adds more functionality. Both PHIGS and PHIGS plus are available for most workstation platforms either from the vendor or from an independent software vendor. Figaro and FIGt which are PHIGS like products are available from Template Graphics. HOOPS is available from Ithaca Software. PEX-IM is available from Oki Electronic Industry and G5G. Q: What about immediate mode for PEX? A: The NCD PEX extension supports all of the subsets of PEX 5.1. This includes Immediate Mode, Workstation, and Structure Mode subsets. Q: What does "Kernel not configured with shared-memory IPC" mean? A: This is a known problem when using the PEXlib library from the MIT X11R5 distribution. This does not occur with most commercially supplied PEXlib products. After building the X11R5 PEX library from the MIT distribution, one runs the PEX tests distributed with X11R5. The tests fail with the resulting error message "PHIGS error -57 in OPEN PHIGS: Kernel not configured with shared-memory IPC facility needed for PEX SI communication". The PEX library has been built so that it is trying to use the shared-memory IPC facility to communicate with the phigsmon program. If the client does not need phigsmon, then turn it off with the command "setenv PEX_SI_API_NO_PM 1". (Aside: Typically one should only need phigsmon for doing PHIGS input or client- side structure storage.) A: Another alternative is to rebuild the PEX library so that it uses sockets to communicate with phigsmon. One can do this by defining "PEX_API_SOCKET_IPC" in the build environment. Or configure the kernel to use IPC. Q: Obtaining Graphics Standards (GKS, PHIGS, etc.) A: You can get the PHIGS standard itself from ANSI in New York: number is (212) 642-3300, office hours are 8:45am to 4:45pm EST. They will also have the GKS and CGM specs. The following table gives the ANSI standard numbers corresponding to the PHIGS standards: ANSI Standard Number PHIGS Standard ANSI X3.144-1988 ISO 9592 parts 1, 2 and 3 for PHIGS ANSI X3.144.1 ISO 9593-1 for PHIGS FORTAN binding ANSI X3.144.3 ISO 9593-3 for PHIGS Ada binding ANSI X3.144.4 ISO 9593-4 for PHIGS C binding Q: What about network bandwidth issues for PEX? A: PEX is a 3D graphics protocol. This allows the graphical data to be expressed at a higher level than the core X graphics. The result of this is that more graphical information can be sent across the network in fewer bytes. In addition, PEX allows the graphical data to be stored in the PEX server. This occurs when using the Workstation Mode or Structure Mode of PEX. Once the geometry data is stored in the server, only the operations to transform and change attributes need to be sent to the server where it is applied to the data. This can be done much more quickly than sending new geometry data for each update of a scene. Immediate Mode PEX is available for applications which do not want to store data in the server. This is useful when displaying images which have a lot of changes in the geometry data. This mode will use more network bandwidth than the Workstation or Structure modes. Q: Will GL applications work on the PEX server? A: No, GL applications use a proprietary graphics library developed by SGI. They will not work with any PEX server. Q: PEX Bibliography A: "A Practical Introduction to PHIGS and PHIGS PLUS" by Toby Howard, Terry Hewitt, R.J. Hubbold and K.M. Wyrwas, published by Addison Wesley. ISBN 0-201-41641-7 A: "PHIGS Programming Manual" by Tom Gaskins, published by O'Reilly & Associates, Inc. ISBN 0-937175-85-4, ISBN 0-937175-92-7 (case bound) "PHIGS Reference Manual" by Tom Gaskins, published by O'Reilly & Associates, Inc. ISBN 0-937175-91-9. "PEXlib Programming Manual" by Tom Gaskins, published by O'Reilly & Associates, Inc. ISBN 1-56592-028-7. "PEXlib Reference Manual" by Tom Gaskins, published by O'Reilly & Associates, Inc. ISBN 1-56592-029-5. O'Reilly & Associates, Inc. 03 Morris Street, Suite A Sebastopol, CA 95472 (800) 338-6887 (local/overseas 1-707-829-0515) 7 AM-5 PM PST weekdays FAX: (707) 829-0104