This document provides supplemental information for version 1.0 of the VAXuisx Runtime Library for VMS, targeted at graphics programmers and users. It details restrictions and performance considerations when using VAXuisx, which runs on VMS V5.3 or above and requires DECwindows to be installed.
Key restrictions include:
- Unsupported Features: VAXuisx does not implement all UIS features, such as DOPS, VWS QIO interface, digitizer/tablet support (tablets are treated as mice), shared colormaps, and specific VWS utilities or terminal emulators.
- Startup Procedure: The
UISX$STARTUP.COM file should not be run on systems with native VWS to prevent conflicts due to UISSHR redefinition.
- Linking Issues: Linking UIS applications on a VAXuisx system can lead to portability problems if run on systems without DECwindows or with different
DECW$DWTLIBSHR versions. It recommends linking against the stub SYS$SHARE:UISSHR.EXE.
- VMS Version: Only VMS V5.3 or higher is supported; VMS V5.1 and V5.2 are explicitly not supported due to instability.
- Configuration: Users may need to restart their DECwindows server or re-log in to pick up new fonts. Running detached VAXuisx applications can generate error log files unless
UISX$CUSTOMIZE_COLORS is set to FALSE or log file versions are limited.
- Synchronization: Using
UISX$SYNCHRONIZE intensively with ASTs is not recommended for interactive applications as it can cause deadlocks or I/O errors.
- User Interface: Window option menus are replaced by the DECwindows Window Manager, and certain function keys (F1-F5) have DECwindows definitions, not VWS. Window placement logic is simplified compared to VWS.
- Borderless Windows: By default, all windows have borders and banners; disabling them makes windows unmanipulable by the user interface.
- Routine Limitations:
UIS$CREATE_TERMINAL cannot create TK-type terminals, instead creating DECterm terminals. Several specific UIS routines, particularly those related to tablets and DOPs, are entirely unsupported.
Performance differences between UIS and VAXuisx are also highlighted:
- Backing Store: VAXuisx's bitmap backup (backing store) ensures window integrity but can impact performance; it can be disabled or configured for immediate operations or batched updates.
- Flush Operations: Auto-Flush periodically flushes operations, which can be configured for smoother output or higher throughput. Disabling it or forcing flushes after every operation can affect performance.
- Drawing: Drawing wide lines is significantly slower than thin lines, as thin lines leverage hardware acceleration, while wide lines use a more general X11 algorithm.
- Attribute Changes: Frequent changes to attribute blocks severely degrade drawing performance.
- Fill Styles: Solid fill styles perform better than patterned fills, as non-solid patterns require building an X11 PIXMAP.
- Graphics Text: Graphics text (sloped, rotated, scaled) is much slower than normal text because X11 does not directly support character manipulation, requiring VAXuisx to generate X11 images for each character.
- Writing Modes: Many UIS writing modes are not directly available in X11, leading to slower performance as VAXuisx must use complex combinations of attributes or multiple drawing operations.
- Image Performance: Image rendering is slower due to the overhead of converting UIS image data to X11 image format on a pixel-by-pixel basis.