Next: 5.6 Window System Dependency Up: 5 Comparing OpenGL to Previous: 3.6 Display Lists

5.5 Portability

While PEX was designed to be vendor-independent and portable, the subsetting allowed by the PEX standard allows implementations of greatly varying functionality to claim to be ``standard'' PEX implementations. The fact that PEX explicitly allows multiple subsets perhaps indicates the PEX standard may be too large to implement fully and completely in a timely fashion. Anyone who has been disappointed by the functionality of the X11R5 sample implementation understands the problem.

OpenGL does not allow any subsetting of rendering functionality and therefore can expect much greater application portability. The need for interoperability testing for OpenGL is greatly reduced because OpenGL demands more consistent implementations.

Neither OpenGL nor PEX is pixel exact. This means neither specification is completely explicit about what pixels must be modified by each rendering operation (the core X protocol is largely pixel exact). Pixel exactness is not a totally desirable feature for 3D since much 3D graphics is done with floating point where numerical errors make exactness nearly impossible. But the OpenGL specification is much more rigorous than PEX about what is considered conformant behavior. Not only does this make conformance test design easier, but OpenGL programmers can have high confidence their scene will be rendered accurately on all compliant OpenGL implementations.

The OpenGL release kit includes a suite of conformance tests to verify rendering accuracy. No comprehensive test suites are yet available to validate PEX implementations.


mjk@asd.sgi.com
Wed Oct 19 18:06:42 PDT 1994