From: rthomson@dsd.es.com (Rich Thomson)
Subject: Welcome to comp.windows.x.pex! (FAQ)
Frequency: monthly
Followup-To: comp.windows.x.pex
Summary: Frequently asked questions about PEX
Originator: rthomson@mesa
Keywords: PEX, FAQ
X-Rcs-Header: $Header: pex-faq,v 1.3 92/02/20 15:36:26 rthomson Locked $
Reply-To: rthomson@dsd.es.com
Organization: Design Systems Division, Evans & Sutherland, SLC, UT
Date: Tue, 1 Sep 92 19:01:03 GMT

Archive-name: pex-faq
Last-Modified: 01 May 1992

This article discusses frequently asked questions (FAQs) about PEX,
the PHIGS Extensions to the X Window System.  Each question is grouped
as an article in a digest.  Some news readers (i.e rn) have commands
for skipping to the next article in a digest.  In rn, ^G (control-G)
skips to the next article in a digest.  The information in this
article is culled from several sources: the FAQ in comp.windows.x,
and articles in the newsgroups comp.windows.x and comp.graphics.
Where possible, the author, date and article id of the original
newsgroup article is included.  When I have edited/modified the
original article, I have enclosed my modifications in square brackets
[] with my initials (RT) at the end.

  1)  What is PEX?
  2)  How can I tell if my X server supports PEX?
  3)  Why don't the R5 PEX demos work on my mono screen?
  4)  Where can I get an X-based PEX package?
  5)  What about immediate mode for PEX?
  6)  Why don't the R5 PEX contributed demos compile?
  7)  Why doesn't double-buffering work via phigs_ws_type_create?
  8)  What does "Kernel not configured with shared-memory IPC" mean?
  9)  Obtaining Graphics Standards (GKS, PHIGS, etc.)
 10)  Practical Intro to PHIGS (review of new book)
 11)  PHIGS/PEX Books
 12)  O'Reilly PHIGS book available now!
 13)  Articles on PEX
 14)  PEX Application Programmer Interfaces (APIs)

Acronyms:

ANSI		American National Standards Institute
API		Application Programmer Interface
CGM		Computer Graphics Metafile
GKS		Graphics Kernel System
HLHSR		Hidden line and hidden surface removal
ISO		International Standards Organization
PEX		PHIGS/PHIGS-PLUS Extensions to X
PHIGS		Progammer's Hierarchical Interactive Graphics System
PHIGS-PLUS	PHIGS Plus Lumiere Und Surfaces
SI		Sample Implementation

------
Subject:  1)  What is PEX?
From: hersh@expo.lcs.mit.edu (Jay Hersh)
Date: Mon, 20 Jan 92 12:06:01 -0500
Message-Id: <9201201706.AA13024@xenon.lcs.mit.edu>

PEX stands for PHIGS Extensions to X.  It is a an Extension to the
Core X Protocol to provide 3D graphics support within the X Windows
environment.  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.

In order to access the PEX funtional extensions to the X Server
one must use an application that generates PEX Protocol.  The
application can either generate the Protocol bytestream itself, or
use something called an Application Protocol Interface or API for
short.  One such API which is provided with the X11R5 distribution
is the PHIGS 3D graphics standard.  This 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.

Other alternate APIs are available via anonymous ftp from
export.lcs.mit.edu.  Also an Xlib like low level standard Protocol
wrapper (called PEXlib) is presently under development and should
become available later this year.  Please look at the X11R5 release
notes, or further in this FAQ for more information on functional
limitations of the PEX-SI PHIGS API, or the PEX-SI Server funtionality.

- Jay Hersh
  MIT X Consortium

------
Subject:  2)  How can I tell if my X server supports PEX?
From: hersh@expo.lcs.mit.edu (Jay Hersh)
Date: Mon, 20 Jan 92 12:06:01 -0500
Message-Id: <9201201706.AA13024@xenon.lcs.mit.edu>

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.

- Jay Hersh
  MIT X Consortium

------
Subject:  3)  Why don't the R5 PEX demos work on my mono screen?
From: xug@mta.com (X User's Group)
Date: Sun, 15 Dec 91 20:51:04 GMT
Message-Id: <1991Dec15.205122.5581@mta.com>
Newsgroups: comp.windows.x

The R5 sample server implementation only works on color screens, sorry.

------
Subject:  4)  Where can I get an X-based PEX package?
From: xug@mta.com (X User's Group)
Date: Sun, 15 Dec 91 20:53:23 GMT
Message-Id: <1991Dec15.205323.5657@mta.com>
Newsgroups: comp.windows.x

	The official release of PEX is with X11R5.

	There is now available from the University of Illinois an 
implementation of the PEX 4.0 specification called UIPEX. It contains a "near-
complete" implementation of PHIGS and PHIGS PLUS. The file 
pub/uipex/uipex.tar.Z is on a.cs.uiuc.edu (128.174.252.1); the porting platform
was an RT running 4.3.  Questions and comments can to go uipex@cs.uiuc.edu. 

	In addition, the PEXt toolkit by Rich Thomson (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.


------
Subject:  5) What about immediate mode for PEX?
From: jch@Stardent.COM (Jan "Yon" Hardenbergh)
Date: 7 May 91 15:39:02 GMT
Message-Id: <1991May7.153902.6083@Stardent.COM>
Newsgroups: comp.graphics

PEX has immediate mode intrinsically.  No need to add it.  What is
needed is the API.  There are currently three proposed interfaces to PEX
Immediate mode: PEXIM, PEXlib and PEXtk.  PEXIM is actually a PHIGS
subset with immediate mode extensions.  PEXlib is to the PEX protocol
what Xlib it to the X protocol.  PEXtk is trying to capture the best of
the proprietary graphics interfaces.

Of course, PEXIM has the advantage that graphics hackers familiar with
PHIGS can pick it right up, or that can read one of the (great :-) PHIGS
books coming out.

The ANSI PHIGS committee started to add immediate mode to PHIGS.  So,
eventually, the API for PEX immediate mode will probably fall back to
PHIGS, but that is just opinion.

From: jim@baroque.Stanford.EDU (James Helman)
> But does this actually address the problem?  The main reason that
> PHIGS is well-suited for networked graphics is that once your large
> mass of geometry is downloaded, you can rapidly change attributes and
> transformations without blasting the whole object down the slow wire.
> But in immediate mode, one typically sends everything down the wire
> each draw cycle.  With graphics speeds hitting 1 million polys per
> second, you certainly can't blast enough data down an ethernet to feed
> the graphics hardware.

You have to look at what is happening to the majority of the data.  If
the geometry is stable but the attribute change, then you can store the
geometry in the server and use immediate mode to send the attributes.
This is referred to as "mixed mode" or mixing stored structures with
immediate mode.  This is a very powerful model of graphics.

> Hence unless network bandwidth outpaces graphics performance, an
> immediate mode PEX API won't be particularly useful over a network.
> One could replace the PEX layer with local graphics access to get
> performance, thus making the immediate mode PEX API a standard for
> non-PEX graphics, but this is a rather convoluted path to such an end.

It's never safe to assume that the relative speeds of components of the
system will stay the same.  You are comparing the high end of rendering
with the low end of networking.  Compare the current high end of
networking, like FDDI at 12 MBytes per second and it works out just
fine.  1 M polygons/sec takes 12 MB / second.  Of course both of those
numbers are PEAK numbers.  When you start to look at what applications
really do, the peak numbers become irrelevant.

> Maybe GL and XGL's days aren't so numbered.  Or am I missing
> something?  Perhaps, local shared memory PEX request queues?  The
> article didn't even mention bandwidth as a concern.

Yes, of course good implementations of PEX will have shared memory.

But let's talk about the bread and butter cases.  The majority of the
market has not hit the 30 K triangles per second mark.  Ethernet can
keep up with that quite easily, and shared memory does more than keep
up.

But, there is overhead in a network transparent protocol.  To get rid of
it would require the application to write thier data directly into the
shared memory, then there are no copies, still something to work for.
People used to say X would never work due to the overhead, or for that
matter that fancy UI's do not work due to the overhead.  Depends on what
you want and where your priorities are.

My guess is that the combination of compute servers and PEX terminals
and workstations will help PEX become the graphics of choice.  If you
are not recomputing your 1 million triangles they can be in the display
list.  If you are recomputing them, how long does that take? on what
machine?

Disclaimer: I've had something to do with PEX and PEXIM and I always
speak on my own behalf, unless specifically stated otherwise.

-Jan "YON" Hardenbergh       jch@stardent.com         (508)-371-9810x261
Stardent Computer, 6 N.E. Tech Center, 521 Virginia Rd,Concord, MA 01742

------
Subject:  6)  Why don't the R5 PEX contributed demos compile?
From: hersh@expo.lcs.mit.edu
Date: Thu, 30 Apr 92 15:39:27 -0400
Message-Id: <9204301939.AA06066@exhume.lcs.mit.edu>

>   [Initially at the time of R5's release...] it was a bit of
>   work to upgrade PEX to the new ISO IS PHIGS C Binding.  The examples
>   had been put into contrib a while back and there was no time nor
>   manpower to worry about updating those when other things had to be
>   fixed and upgraded (like the man pages).

The demos have been upgraded.  The new versions for the ISO PHIGS C
binding are available from export.lcs.mit.edu  in the file
PEX.examples.tar.Z in the directory contrib/R5fixes.

- Jay Hersh

-----
Subject:  7)  Why doesn't double-buffering work via phigs_ws_type_create?
From: rthomson@mesa.dsd.es.com (Rich Thomson)
Date: Sat, 23 Nov 91 20:38:52 GMT
Newsgroups: comp.graphics,comp.windows.x

In article <1991Nov22.220338.3560@shell.shell.com>
	senften@taurus (Scott D. Senften) writes:
>
>I need your help...I just got X11R5 up and running on my Sparc and I'm wanting
>to do some PHIGS+ work.  I've got a rough prototype up and running but I can't
>seem to get the double buffering working.  I tried:
>
> wks = phigs_ws_type_create(phigs_ws_type_x_tool,
>                            PHIGS_X_BUF_MODE, PHIGS_BUF_DOUBLE,
>                            0);
>
>but that alone doesn't seem to do it.  Am I missing something?

What you're missing is that the PEX-SI provides no support for double
buffering.

A serious hole in the PEX-SI is its non-support for double buffering.
Even worse, the PEX-SI api assumes that the client desires an
XClearArea on the window before each frame is drawn.  What really
should have been done was to provide an end-of-render procedure hook,
with the default hook installed to do a clear area.

Individual vendors (because of market pressure) have provided their
own solutions to the double buffering problem (we do double buffering
an all PHIGS workstations; if you do immediate-mode you get single
buffering along with the PEX-SI's XClearArea call).

I believe the PEX interoperability group is currently working on a vendor
neutral solution that we can all agree on.

						-- Rich

-----
Subject:  8)  What does "Kernel not configured with shared-memory IPC" mean?
From: michaelh@homebrew.WV.TEK.COM (Mike Herbert)
Date: 25 Nov 91 18:54:35 GMT
Newsgroups: comp.windows.x

Francis J. Hitchens writes:
> I have just built X11R5 on my VAXstatsion 3100, under ULTRIX 4.1, and
> tried to run the PEX
> tests.
>
> They all failed...
>
> PHIGS error -57 in OPEN PHIGS: Kernel not configured with shared-memory IPC
> facility needed for PEX SI communication

I ran into this problem last week.  Here's what I've determined so far.

Your PEX library has been built so that it is trying to use the shared-memory
IPC facility to communicate with the phigsmon program.  If your client
does not need phigsmon, then turn it off:

setenv PEX_SI_API_NO_PM 1

(Typically you should only need phigsmon for doing PHIGS input or client-
side structure storage.)

Another alternative is to rebuild the PEX library so that it uses sockets
to communicate with phigsmon.  You can do this by defining 
"PEX_API_SOCKET_IPC".  (I haven't tried this, but the code indicates
that it should work.) 

The other alternative, of course, it to configure your kernel to use IPC.
(I'm a novice as far as Ultrix is concerned, so I really don't understand
what's involved in doing that.)

Mike Herbert
Tektronix, Inc.
Network Displays Division
P.O. Box 1000, M/S 60-850
Wilsonville, OR 97070
(503) 685-2145

michaelh@orca.WV.TEK.COM

-----
Subject:  9)  Obtaining Graphics Standards (GKS, PHIGS, etc.)
From: jch@Stardent.COM (Jan "Yon" Hardenbergh)
Date: 12 Feb 91 19:27:53 GMT
Newsgroups: comp.graphics

GKS - Graphical Kernal System - geometric graphics system
CGM - Computer Graphics Metafile - archive of graphics commands - very
      useful for plotting.
PHIGS - the best graphics standard!  3D geometric graphics with lighting
      and shading and neat primitives to draw fancy pictures.
If you are looking for a broad overview of graphics standards you might
try this:

>   Guidelines for determining when to use GKS and when to use PHIGS
>   Bettels, J.; Bono, P.R.; McGinnis, E.; Rix, J.
>   Author Affil:  Digital Equipment Corp., Geneva, Switzerland
>   Source: Comput. Graph. Forum (Netherlands)  vol.7, no.4,    pp.: 347-54
>   Publication Year: Dec. 1988
>   (29 Refs)
>   Abstract:  GKS,  GKS-3D, and PHIGS are all approved ISO standards for the
> application  programmer  interface.  How  do system analysts or programmers
> decide which standard to use for their application? The authors discuss the
> range  of  application  requirements  likely to be encountered, explore the
> suitability  of  GKS and PHIGS for satisfying these requirements, and offer
> guidelines to aid in the decision process. 

I know I've seen other overviews of graphics standards. Just none recently.

There are a couple of books on CGM and GKS, but I do not have the
references written down.

As, for PHIGS, you can get the standard itself from ANSI in New York.
(212) 354-3300.  [The following table gives the ANSI standard numbers
corresponding to the PHIGS standards:

	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

--RT]  They will also have the GKS and CGM specs.

-Jan "YON" Hardenbergh       jch@stardent.com         (508)-371-9810x261
Stardent Computer, 6 N.E. Tech Center, 521 Virginia Rd,Concord, MA 01742

-----
Subject: 10)  Practical Intro to PHIGS (new book)
From: jch@Stardent.COM (Jan Hardenbergh)
Date: 16 Apr 91 02:26:46 GMT
Newsgroups: comp.graphics

I just got a copy of "A Practical Introduction to PHIGS and PHIGS PLUS"
by Toby Howard, Terry Hewitt, R.J. Hubbold and K.M. Wyrwas.  ISBN
0-201-41641-7. I've been looking at it off and on all day now and am
more and more impressed each time I pick it up.

It would be hard for any new book on PHIGS to NOT be the best book on
PHIGS.  But this book goes way beyond being an improvement.  It is, as
it claims, a practical (and thorough) introduction to PHIGS.  The best
thing is that it is not intimidating.  It starts with a "Whirlwind tour"
to get your feet wet and then with a totally trivial example - draw a
line.  Only then does it start to systematically introduce primitives,
structures, etc.

It has many, many examples in C!!! The C binding matches the standard of
last year - before underscores.  This matches the current PHIGS
products, but those of us on the cutting edge need to add our own
underscores.  Not a big deal.  The examples are well thought out and
developed along the way. Appendix A & B are non-trivial examples of how
to do something useful in PHIGS.  The first is a viewing example and the
second shows what you can do with lighting.

It has 34 color plates showing variations lighting and shading options.

Diagrams are a strong point of this book.  It has all of the good diagrams
that you expect to see - viewing frustum, deferral update flow chart,
reflectance angles, a bicycle structure hierarchy chart, etc.  It also
has many new ones, ASF decision chart, good structure edit diagrams and
even archive conflict resolution diagrams ( that's going too far! :-).

Here's the table of contents:

 1. Whirlwind tour
 2. Getting started
 3. Graphical output
 4. Creating the model
 5. Editing the model
 6. 3D Viewing
 7. Graphical input
 8. Workstations
 9. Styles of output   [ attributes ]
10. Archiving
11. More about the CSS [ name sets, filters... ]
12. Dealing with errors
13. PHIGS PLUS graphical output
14. The PHIGS PLUS rendering pipeline

Appendix A - Viewing example program
Appendix B - PHIGS PLUS example program
Appendix C - Coordinate transforms  [ great ]
Appendix D - Using PHIGS with Fortran [sic]
Appendix E - Summary of functions, elements and errors
Appendix F - Colour models
Appendix G - Toby's annotated PHIGS bibliography
Bibliography
Glossary [O.K. needs more]
Index

339 pages, less than an inch thick.  This is not a reference book on all
of the details and issues of PHIGS.  Nor is this a read once and toss
tutorial.  This is a book to give on a good idea about how to use any
particular aspect of PHIGS.  It has enough detail to get you started but
keeps it simple enough so you can find what you want easily.  The
combination of this book and a good "call reference" manual, like the
one provided with the PEX Sample Implementation should be all most
people need.

But, as much as I like this book, we can always hope for a better one.
It could have both pieces of PHIGS (PHIGS89 & PHIGS-PLUS) integrated.
It could have an newer cut at the "C" binding - although the decision to
use the one that was out in the field was a good one, it won't be out in
the field for too long.  Those are really nits.  Still hoping for two
more at SIGGRAPH, Prentice Hall (Valerie Clark) and Wiley & Sons
(Hopgood & Duce).  If they are as good as this book, acquiring PHIGS
knowledge will become much, much easier.

This book is not the standard warmed over or a breezy tour of PHIGS as
was "Understanding PHIGS" and the chapter in Foley, van Dam, Feiner and
Hughes.  It is PHIGS explained as you need it by people who have -
obviously - explained it before, many times.

Disclaimer, I did review this book last June.  I thought from the state
it was in then (Pascal examples? and almost no PHIGS-PLUS) that it was
destined to be a little better than mediocre book.  The explanations
that were there were good, but...scarce.  This book is radically better
than the draft. It is great.

-Jan "YON" Hardenbergh       jch@stardent.com         (508)-371-9810x261
Stardent Computer, 6 N.E. Tech Center, 521 Virginia Rd,Concord, MA 01742

-----
Subject: 11)  PHIGS/PEX Books
From: jch@stardent.com (Jan Hardenbergh)
Date: 23 Jan 92 18:35:23 GMT
Newsgroups: comp.windows.x.pex
Summary: Lots of PHIGS books out there!

While I'm a big fan of Tom Gaskins' PHIGS book, there are others.
Here's the list de jour:  (I'd love to know about others!)

Tom Gaskins' "PHIGS Programming Manual", O'Reilly, ISBN 0-937175-85-4,
Will be out in mid/late-Febuary. (order now get discount price 39.95)

This has already been discussed here (comp.windows.x.pex) and without
question will be the best book for someone planning to use the PEX-SI
PHIGS library, and to understand the PEX 5.0 protocol.  It will
definitely be the best PHIGS book when it comes out, and probably
forever, but who knows?

    ** Available NOW **
    Toby Howard et al. "A Practical Introduction to PHIGS and PHIGS PLUS"
    Addison-Wesley 1991, ISBN 0-201-41641-7

    A "great" small book on PHIGS.  Covers almost everything, but briefly.

    --

    O'Reilly's, "PHIGS Reference Manual", O'Reilly, ISBN 0-937175-91-9
    improved PEX-SI man pages, will be out late March.

    --

    ** Available NOW **
    Hopgood & Duce, "A Primer for PHIGS" John Wiley & Sons Ltd,
    ISBN: 471 93042 3 (no PHIGS-PLUS)

    Some useful notions on structure editing.

    --

    ** Available NOW **
    W.A. Gaman, W.A. Giovinazzo, "PHIGS by Example", Springer-Verlag,
    ISBN 0-387-97555-1

    --  FUTURES.

    Joe Kasper's, "Graphics Programming with PHIGS and PHIGS-PLUS"
    HP Press/Addison Wesley, ISBN 020-1563-436, out by SIGGRAPH

    This book will also be a high quality book, but it will cover all of
    PHIGS-PLUS (PEX 5.0 came out before PHIGS-PLUS was final).  The book
    seems to be using the standard ISO binding for PHIGS-PLUS so it will
    will require some translation to the current PEX/PHIGS C binding.

    --

    Digital Press is starting to publicize a book on 3D programming and PHIGS
    by Ron Levine.  Should be good.

    --

    Valerie Clark, "Programming in PHIGS", Prentice Hall, ISBN 0-13-722182-7
    (this still has a fuzzy release date, but it does have an ISBN number)

-Jan "YON" Hardenbergh       jch@stardent.com         (508)-371-9810x261
Stardent Computer, 6 N.E. Tech Center, 521 Virginia Rd,Concord, MA 01742
-----
Subject: 12) O'Reilly PHIGS book available now!
From: rthomson@mesa.dsd.es.com (Rich Thomson)
Date: Fri, 3 Apr 92 20:54:21 GMT
Newsgroups: comp.windows.x.pex,comp.graphics

I just received my copy of the following book:

    PHIGS Programming Manual: 3D Programming in X
    by Tom Gaskins
    918 pages
    O'Reilly & Associates, Inc.
    ISBN 0-937175-85-4 (softcover)	$42.95
    ISBN 0-937175-92-7 (casebound)	$52.95

    Available from:

	O'Reilly & Associates, Inc.
	103 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
    
    Contents:

    1. Introduction
    2. PHIGS Concepts and Programming
    3. Using PHIGS with X and  Toolkits
    4. Color
    5. Line Primitives and Attributes
    6. Area Primitives and Attributes
    7. Text
    8. Polymarker and Cell Array
    9. Bundled Attributes
    10. Modeling
    11. Viewing
    12. The Central Structure Store
    13. Archives and Metafiles
    14. Workstations
    15. The Rendering Pipeline
    16. Inquiry Functions
    17. Error Handling
    18. The Name Set, Filters, and Searching
    19. Input
    20. PHIGS Extensions
    21. X and X Toolkit Applications
    A. Coordinate Systems and Transforms
    B. Vectors
    C. PHIGS PLUS Features not in the PEX-SI
    D. Data for the Western Europe Programs
    E. Minimum Support Criteria
    F. Error Messages

This book is useful as a generic PHIGS reference and is indispensible
for developing applications with the PEX-SI, since its PHIGS
programming is discussed in terms of the PEX-SI.  Although I haven't
gone over every portion of the 900+ pages in the first edition of this
book, I did review its technical content before it was published.

						-- Rich
-- 
	Repeal the personal income tax; vote Libertarian in 1992.
Disclaimer: I speak for myself, except as noted; Copyright 1992 Rich Thomson
UUCP: ...!uunet!dsd.es.com!rthomson			Rich Thomson
Internet: rthomson@dsd.es.com	IRC: _Rich_		PEXt Programmer

-----
Subject: 13) Articles on PEX
From: klee@wsl.dec.com (Ken Lee)
Date: 12 Aug 91 17:06:05 GMT

Clifford, William, John McConnell, and Jeffrey Friedberg, "The Development
     of PEX, A Three-dimensional Graphics Extension to X11," in Proceedings
     of Eurographics'88, September, 1988.  An overview PEX, an extension to
     the X protocol to support PHIGS+.

Rost, Randi, Jeffrey Friedberg, and Peter Nishimoto, "PEX:  A Network-
     Transparent 3D Graphics System," IEEE Computer Graphics & Applica-
     tions, pp. 14-26, July, 1989.  A good overview of PEX, the
     PHIGS/PHIGS+ 3D extension to X. A complete PEX is currently being
     developed by Sun under contract to the MIT X Consortium and is
     scheduled to be publicly available in 1991.

Stroyan, Michael, "Three-Dimensional Graphics Using the X Window System,"
     Dr. Dobb's Journal, vol. 15, no. 2, pp. 28-36, February, 1990.  A high
     level description of various approaches to developing 3D graphics
     tools for X, including those of the PHIGS Extension to X (PEX) and
     HP's Starbase-on-X11 (sox11).

Sung, Hsien Ching Kelvin, Greg Rogers, and William Kubitz, "A Critical
     Evaluation of PEX," IEEE Computer Graphics & Applications, vol. 10,
     no. 6, pp. 65-75, November, 1990.  An evaluation of PEX, the X exten-
     sion to support PHIGS, from the point of view of a PHIGS implementor.

Thomas, Spencer W. and Martin Friedmann, "PEX - A 3-D Extension to X Win-
     dows," in Proceedings of the Winter, 1989 USENIX Conference, pp. 139-
     149.  Describes a demonstration implementation of PEX, the
     PHIGS/PHIGS+ 3D extension to X. A complete PEX is currently being
     developed by Sun under contract to the MIT X Consortium and is
     scheduled to be publically available in 1991.

-----
Subject: 14)  PEX Application Programmer Interfaces (APIs)
From: rthomson@dsd.es.com (Rich Thomson)
Date: Thu Feb 20 15:22:25 MST 1992

When discussing PEX, it is important not to confuse the protocol with
the API, or application programmer interface.  The API is the
conceptual model of 3D graphics that the application developer sees.
The protocol is generated by the API and is interpreted by the server
to perform graphics requests on behalf of the client program.

The PHIGS/PHIGS-PLUS standards are specified in two parts.  First,
a functional description describes each operation conceptually, in
a language-independent manner.  Second, language bindings are used
to bind the particular PHIGS functions to the semantics of the
language.  The PEX-SI comes with an application programmer interface
that conforms with the latest revision of the PHIGS/PHIGS-PLUS C
language binding.

Jim Morris of ShoGraphics had this to say about their GL-like API
called PEXtk:

    Newsgroups: comp.windows.x.pex
    From: jim@shograf.com (jim morris)
    Subject: Re: difference between PEX and GL
    Date: Wed, 22 Jan 1992 21:51:42 GMT
    Message-ID: <1992Jan22.215142.27295@shograf.com>

    PEXtk is written and available now directly from us as a beta copy.
    It is Free.  We will E-mail it to anyone who asks for it.  When the
    beta is complete we will put it in the contrib directory at MIT.

    Depending on how you write a GL program and what features you use
    it may or may not be difficult to port to PEXtk. It would certainly
    be easier than porting to PHIGS.

    For example PEXtk uses X as its windowing system, so the UI is X
    based. We have not attempted to duplicate any GL windowing functions.

    For a copy send E-Mail to rws@shograf.com with a reliable return address.

    Jim
    -- 
    Jim Morris,	E-Mail: jim@shograf.com    Voice: (415) 903-3887
    SHO graphics.	Practical PEX

There is also a "PEXlib" interface being worked out.  PEXlib is
intended to be a policy-free interface to the protocol.  It is
intended to be a systems programming interface (i.e. people developing
graphics toolkits and graphics systems will implement their system on
top of PEXlib).  It is proposed that the PHIGS API be ported to PEXlib
once PEXlib is finalized.  This change would not affect programs
written to the existing PHIGS API.

The future may contain other popular graphics APIs (SGI's GL, HP's
Starbase, Stardent's Dore') that also generate the PEX protocol.

						-- Rich
-- 
       Repeal the personal income tax; vote Libertarian in 1992.
	    Probably Copyright (C) 1992, Evans & Sutherland
    UUCP: ...!uunet!dsd.es.com!rthomson			Rich Thomson
    Internet: rthomson@dsd.es.com			Software Engineer