Release Notes for Digital PHIGS[TM] Version 5.1 May 12, 1997 Copyright © 1997 by Digital Equipment Corporation DIGITAL Digital Equipment Corporation Maynard, Massachusetts Contents PREFACE v 1 PRODUCT SUMMARY 1 2 MULTI-PLATFORM DIGITAL PHIGS 1 3 DIGITAL PHIGS CUSTOMER REQUESTS 1 4 DIGITAL PHIGS VERSION 5.1 REQUIREMENTS 2 5 ENHANCEMENTS IN DIGITAL PHIGS VERSION 5.1 2 6 ENHANCEMENTS IN DIGITAL PHIGS VERSION 5.0 2 6.1 FIPS 153 Standard Compliant 2 7 ENHANCEMENTS IN DIGITAL PHIGS VERSION 4.2 2 7.1 ISO C Binding Converter 2 7.2 Retrieve Paths to Ancestors/Descendants 3 7.3 New Locator PET -14 (echo position in raster coordinates) 3 8 ENHANCEMENTS IN DIGITAL PHIGS VERSION 4.1 3 8.1 More Color Models Supported 3 8.2 32x32 Bitmap Markers Supported 3 8.3 Font 2 Added 3 8.4 Intensity Highlighting Method 3 9 ENHANCEMENTS IN DIGITAL PHIGS VERSION 4.0 3 9.1 Modeling Clip 3 9.2 Patterns 4 9.3 Incremental Spatial Search 4 9.4 Cell Array 4 9.5 Man Pages 4 10 ENHANCEMENTS IN DIGITAL PHIGS VERSION 3.2 4 10.1 OpenGL Support 4 10.2 New Documentation 4 11 ENHANCEMENTS IN DIGITAL PHIGS VERSION 3.1 5 11.1 X11R5 Scalable Fonts 5 11.2 Polyline Set 3 W/Color Performance Improved 5 11.3 Structure Mode 4 5 12 ENHANCEMENTS IN DIGITAL PHIGS VERSION 3.0 5 12.1 ISO Compliant C Binding 5 12.2 New Documentation 6 12.3 More Polymarker Types 6 12.4 Overlay Plane Support 7 12.5 Japanese Support Merged in Digital PHIGS 7 iii Contents 13 IMPORTANT ENHANCEMENTS IN PREVIOUS VERSIONS OF DIGITAL PHIGS 8 13.1 ISO Compliant Fortran Binding 8 13.2 ISO Fortran Binding Conversion Utility 8 13.3 New Escape for Quick Updates 9 13.4 MIT_DB_UPDATE_COPIED Environment Option 10 13.5 Shared Structure Store for PEX Devices 10 13.5.1 Less Memory Needed on Storing Workstations 11 13.5.2 Determining Structure Memory Usage11 13.6 Digital PHIGS Tracer 11 13.7 BattleZone Game 12 13.8 Dithering Support for ZLX-E* Series Graphics Options 12 14 DIGITAL PHIGS FOR OPENVMS SPECIFICS 14 14.1 DECwindows Motif Version 1.2-3 Required 14 14.2 Ada Binding and Ada Compiler Version 14 14.3 Tuning VMS DECwindows Systems 14 14.4 PCM Failure 16 15 DIGITAL PHIGS FOR OPENVMS VAX SPECIFICS 16 15.1 DEC C V4.0 Required 16 16 DIGITAL PHIGS FOR OPENVMS ALPHA SPECIFICS 17 16.1 Ada Binding and Ada Compiler Version 17 16.2 PCM, PEXlib, and PEX Server on Digital Open3D Kit for Alpha 17 16.3 /FLOAT=IEEE_FLOAT on Compile 17 17 DIGITAL PHIGS FOR DIGITAL UNIX SPECIFICS 18 17.1 Ada Binding and Ada Compiler Version 18 17.2 PCM Server and PEXlib on Digital Open3D Kit for Alpha 18 17.3 Porting Hints 18 18 OPENGL GRAPHICS DRIVER INFORMATION 19 18.1 Installation on Digital UNIX 19 18.2 Installation on OpenVMS 20 18.3 OpenGL Specifics Documentation 20 18.4 OpenGL Workstation Types 20 18.5 Selection of 12 Bit Visuals on ZLX*-E2 and ZLX*-E3 Devices 20 18.6 Performance 21 18.7 Features Being Considered 21 18.8 OpenGL Driver Restrictions 22 18.8.1 Depth Cueing 22 iv Contents 18.9 OpenGL Driver Known Problems 23 18.9.1 NURB SURFACE and Server Crashes 23 18.9.2 Workstation Type 271 Problems 23 18.9.3 Annotation Text Depth Cues Improperly 23 18.9.4 Tesselation Problems 23 18.9.5 Outputting of Edged Primitives with Both Modeling Clip and Culling Enabled 24 18.9.6 Color Problems 24 19 PROBLEMS FIXED IN DIGITAL PHIGS VERSION 5.1 25 19.1 Problems Fixed Specific to Namesets 25 19.2 Problems Fixed Specific to OpenGL Workstation Types 25 19.2.1 Problem with Edge Type Zero 25 19.2.2 Problem with Pixmaps 25 19.2.3 Problem with Depth Cue Table 25 20 PROBLEMS FIXED IN DIGITAL PHIGS VERSION 5.0 25 20.1 Problems Fixed Specific to OpenGL Workstation Types 25 20.1.1 Degenerate text direction vectors 25 20.1.2 Name set space not correctly initialized at traversal 25 20.1.3 Text attributes (font, precision) are now inherited 25 20.1.4 OpenGL error 1282 [invalid operation] with Incremental Spatial Search 26 20.1.5 Marker type 25 was displayed as type 24 26 20.1.6 Inquire annotation facilities problem 26 20.2 Cell array problems 26 20.3 Return structure identifiers problem 26 21 PROBLEMS FIXED IN DIGITAL PHIGS VERSION 4.2 26 21.1 Inquiry Restriction Removed 26 21.2 ISO C Binding Related Problems Fixed 26 21.2.1 phigs.h (phigs_iso.h) 27 21.2.2 pdel_store 27 21.2.3 Checking for C Binding-Specific Errors 27 21.2.4 Crash in pnon_uniform_b_spline_curve3 27 21.2.5 Arguments of Enumerated Type Now Checked for Range 27 v Contents 21.3 Text Problems Fixed 27 21.3.1 Hang with Illegal Characters in Japanese Text 27 21.3.2 Concatenation Point 27 21.3.3 Text Position 27 21.3.4 Inquire Text Extent 28 21.3.5 Variable-Width Fonts and Text Path Up or Down 28 21.3.6 Text String Placement with Negative Spacing 28 21.3.7 Font Height 28 21.4 OpenGL Workstation Type Related Problems Fixed 28 21.4.1 Modeling Clip 28 21.4.1.1 Polylines 28 21.4.1.2 Polymarkers 28 21.4.1.3 Annotation Text 28 21.4.1.4 Fill Areas and Fill Area Sets 29 21.4.1.5 Edges 29 21.4.1.6 Error Cases 29 21.4.2 Double Exposure 29 21.4.3 Line Type 0 29 21.4.4 Default Highlighting 29 21.4.5 Hang on Close Workstation followed by Open Workstation 29 21.4.6 Display usage with WIDGET wstype 30 21.4.7 Text primitive following a fill area 30 21.4.8 Polyline Set and Polyline Set 3 functions 30 21.5 Other Problems Fixed 30 21.5.1 Evaluate View Mapping Matrix 3 30 21.5.2 Change Structure References and the SVR 30 21.5.3 Delete Element in Structure Mode 430 21.5.4 Inquiry on Drawable (2n2) or Widget (2n3) Workstation Type 30 21.5.5 Inquire List of Available Wstypes 30 21.5.6 HLHSR Mode with Screen Empty 31 21.5.7 Inquiry of Bundle Table 31 21.5.8 Error Returns 31 21.5.9 HLS and HSV Color Model Problems 31 21.5.10Open Archive File 31 21.5.11Delete Structure Networks from Archive 31 21.5.12Element Pointer after Delete Structure Networks 31 21.5.13Copy All Elements from Structure 31 21.5.14Change Structure Identifier and vi Contents Change Structure Identifier and References 32 21.5.15Inquire Paths to Descendants and Truncated Paths 32 21.5.16Inquire Paths to Ancestors/Descendants and Path Order BOTTOM_FIRST 32 21.5.17GDP3 and GDP Elements 32 21.5.18Utility Routines pcreate_store and pdel_store Available on OpenVMS 32 21.5.19User defined error handling and error file 32 21.5.20Validity of the workstation viewport 33 21.5.21Error checking for ISS parameters 33 21.5.22Maximum values for length of ISS filters 33 21.5.23Modeling Clip index in ISS 33 21.5.24Set View Transformation Input Priority 33 21.5.25View Indices, View Entries and View Table 33 21.5.26Changes for NIST Certification 33 22 PROBLEMS FIXED IN DIGITAL PHIGS VERSION 4.1 34 22.1 ISO C Binding Related Problems Fixed 34 22.1.1 Inquire Color Facilities 34 22.1.2 Inquire List Color Indices 34 22.1.3 Inquire [Current] Element Content and Type 34 22.1.4 Inquire Text Extent 34 22.1.5 Inquire Paths to Ancestors/Descendants 34 22.1.6 Inquire Model Clip Facilities 34 22.1.7 OpenVMS: Vax-float symbols Not Visible 34 22.1.8 Inquire Dynamics of Workstation Attributes 34 22.1.9 Reporting of Errors 35 22.1.10Inquire List Text Indices 35 22.2 Fortran Binding Related Problems Fixed 35 22.2.1 Inquire Color Facilities 35 22.2.2 Inquire Predefined Color Rep 35 22.2.3 Close PHIGS 35 vii Contents 22.3 OpenGL Workstation Type Related Problems Fixed 35 22.3.1 Degenerate Fill Areas 35 22.3.2 Edges 35 22.3.3 Out-of-range Polymarker Type 35 22.3.4 Edges and Culling 36 22.3.5 Out-of-range Line Types 36 22.3.6 Attributes and Complex Structure Networks 36 22.3.7 Inquire Workstation State Table Lengths 36 22.3.8 Inquire Pattern Facilities 36 22.3.9 Bad Visual Error Message 36 22.3.10View Shield Attributes 36 22.4 PEX Workstation Type Related Problems Fixed 36 22.4.1 Pick Highlighting 36 22.4.2 Quad Mesh 37 22.5 Motif Workstation Type Related Problems Fixed 37 22.5.1 Fill Area Size Restriction Lifted 37 22.5.2 Motif Input, Color Maps 37 22.6 Other Problems Fixed 38 22.6.1 Japanese Text 38 22.6.2 Japanese Example File 38 22.6.3 Set Highlighting/Invisibility Filter 38 22.6.4 Set Workstation Window 2D 38 22.6.5 Change Structure Identifier 38 22.6.6 Element Search 38 22.6.7 Edge Type Error Checking 38 22.6.8 Inquire Bundle Representation with REALIZED type flag 39 22.6.9 Set Conflict Resolution 39 22.6.10Allow Empty Archive File 39 22.6.11Error Return Value 39 22.6.12Inquire Conflicting Structures/Networks 39 22.6.13Inquire Paths to Ancestors/Descendants 39 22.6.14Inquire Predefined Pattern Representation 39 22.6.15Inquire Predefined View Representation 40 22.6.16Modeling Utility Functions 40 22.6.17Post Structure Error Checking 40 22.6.18Inquire View Indices 40 22.6.19Text Height and Expansion Factor 40 22.6.20Archiving: MAINTAIN 40 viii Contents 22.6.21Archiving: ABANDON 40 22.6.22Delete Structure 41 22.6.23Delete Structure Networks 41 22.6.24User Defined Error Handler 41 22.6.25Error File Before PHIGS is Opened 41 22.6.26Unsupported Workstation Type Check41 22.6.27Error Checking on Line, Marker Types, etc. 41 22.6.28Cell Array Dimensions 42 22.6.29Set Workstation Viewport 42 23 PROBLEMS FIXED IN DIGITAL PHIGS VERSION 4.0 42 23.1 Locator Input Position 42 23.2 Painter's Picking 42 24 PROBLEMS FIXED IN DIGITAL PHIGS VERSION 3.2 43 24.1 ACCVIO/Core Dump on Delete All Structures 43 24.2 Binary CGM on Digital UNIX 43 25 PROBLEMS FIXED IN DIGITAL PHIGS VERSION 3.1 43 25.1 Linking with Old Fortran Binding 43 25.2 Using LUN with Fortran Binding Open Workstation 43 25.3 Motif X11 Fonts and DPI 43 25.4 Include Structure ACCVIO or SegFault 43 26 PROBLEMS FIXED IN DIGITAL PHIGS VERSION 3.0 43 26.1 Memory Corruption in Motif Device Handler 44 26.2 PostScript Description File Fixed 44 26.3 PEX Drawable to an X11 window Fixed 44 27 KNOWN PROBLEMS 45 27.1 General Problems 45 27.1.1 Painter's HLHSR Method Not Accurate Enough 45 27.1.2 Opening a PEX Workstation in a Multihead Environment 45 27.1.3 Inquire Extended Polyline Facilities Function 45 27.1.4 Partial Repair of Exposure Events 46 27.1.5 Picking Accuracy 46 27.1.6 Pick Highlighting and View Clip Limits 46 27.1.7 Update Following View Priority Change 46 27.1.8 Edges with Painter's HLHSR Algorithm 46 27.1.9 Pick Highlighting and Structure Editing 46 27.1.10Color Highlighting with Painter's HLHSR 47 ix Contents 27.1.11Workstation Type 240 47 27.2 PEX Problems 47 27.2.1 NURBS With Trimming Loops 47 27.3 Motif Problems 47 27.3.1 Unpredictable Highlight Color on Motif 47 27.3.2 Quick Update with Colors Per-Facet47 27.3.3 Choice Input 47 27.3.4 CLOSE Option 48 27.3.5 String Input Device 3 Trigger Problems 48 27.3.6 Choice Device Problems 48 27.3.7 Choice Device 9 48 27.3.8 RESET Button Style Guide Conformance Problems 48 27.3.9 Repair After Choice Menu Teardown on Digital UNIX 48 28 ISO FORTRAN BINDING RESTRICTIONS 49 28.1 Transparency coefficient 49 28.2 Edge Data Ignored on Quadrilateral Mesh 3, Triangle Strip 3 With Data 49 28.3 Data Mapping Data Ignored on All Surface Primitives 49 28.4 Digital Extensions to Curve Approximation Criteria 49 28.5 Digital Extensions to Surface Approximation Criteria 50 29 ISO C BINDING RESTRICTIONS 51 29.1 Edge Data Ignored on Quadrilateral Mesh 3, Triangle Strip 3 With Data 51 29.2 Data Mapping Data Ignored on All Surface Primitives 51 29.3 NURBS Surface Not Implemented 51 30 KNOWN RESTRICTIONS 51 30.1 General Restrictions 51 30.1.1 Escape Restrictions 51 30.1.2 Default Workstations 52 30.1.3 NURBS Curves and Surfaces for Quick Update Mode 53 30.1.4 Trim Curve Approximation Criteria 53 30.1.5 Using Direct Colors in Quick Update Mode 53 30.1.6 Direct Color and Shading Attributes in Immediate Mode 53 30.1.7 Highlighting in Immediate Mode 54 30.1.8 Indexed Colors and Lookup Tables 54 30.1.9 Ada Language Restrictions 54 x Contents 30.1.10POST TO VIEW and Changing View Representations 54 30.1.11Calling PHIGS$OPEN_PHIGS from Fortran 55 30.2 General Device Restrictions 55 30.2.1 Bundle Tables and CGM Workstations55 30.2.2 Planes Orthogonal to the View Plane 55 30.3 PEX Device Restrictions 55 30.3.1 PEX Workstation NURB Approximation and Trimming Methods 55 30.3.2 PEX Highlight Methods 56 30.3.3 Quadrilateral Mesh Edges in Quick Update Mode 56 30.3.4 Trimming Curves 56 30.4 Motif Device Restrictions 56 30.4.1 Pick Echo Areas and RESIZE ZOOM Set to 1 56 30.4.2 Menu Bar, Border Size, and Title Size Warnings 57 30.4.3 Environment Option Font Path 57 30.4.4 PHIGS Window Appears in Deiconified State 58 30.4.5 No Support for Non-Digital Keyboard KEYSYMs 58 30.4.6 Correct Behavior on Window Resize and Reset 58 31 DOCUMENTATION NOTES 59 31.1 General Notes 59 32 TRADEMARKS 61 TABLES 1 Digital PHIGS Release Notes v xi ___________________________________________________________________ Preface This document contains the release notes for Digital PHIGS Version 5.1 for the Digital UNIX[R] operating systems. This document is supplied in both PostScript[R] and text form. You can find the release notes in the following locations: Table_1:_Digital_PHIGS_Release_Notes___________________________ Format_________File_Name_______________________________________ Digital_UNIX___________________________________________________ Text /usr/lib/PHIGS/phigs051_release_notes.txt PostScript_____/usr/lib/PHIGS/phigs051_release_notes.PS________ v Preface Associated Documents o Installing Digital PHIGS for OpenVMS Alpha Systems o Installing Digital PHIGS for Digital UNIX Systems o Installing DEC PHIGS for OpenVMS VAX Systems o Installing DEC PHIGS for ULTRIX Systems with RISC Processors o DEC PHIGS Ada Binding Reference Manual o DEC PHIGS C Binding Reference Manual o DEC PHIGS Fortran Binding Reference Manual o DEC PHIGS PHIGS$ Binding Reference Manual o DEC PHIGS Reference Manual o Getting Started With DEC PHIGS o DEC PHIGS Developer's Guide o Device Specifics Reference Manual for DEC GKS and DEC PHIGS vi Digital PHIGS Version 5.1 Release Notes 1 Product Summary Digital PHIGS (formerly DEC PHIGS) Version V5.1 contains some bug fixes. Additionally, Digital PHIGS V5.0 and PHIGS V5.1 are FIPS 153 standard compliant. 2 Multi-Platform Digital PHIGS If you want to run Digital PHIGS on other operating systems, use GRAFPAK-PHIGS by Advanced Technology Center (ATC), which is a source-licensed port of Digital PHIGS. For more information, contact ATC's Product Marketing Department at (714) 583-9119 (voice), (714) 583-9213 (FAX), or comments@atc.com (E-mail). 3 Digital PHIGS Customer Requests To improve communications with our customers, the Digital PHIGS product team has an electronic mail distribution list so we can communicate directly with our customers. If you would like to be included on the distribution list, send mail to requests@bgsdev.enet.dec.com. Be sure to include the following information: Your name Your company name Full company address Phone number Electronic mail address A brief description of how you use Digital PHIGS The operating systems and hardware you use The Digital PHIGS product team sometimes sends out Digital PHIGS product update information, or updates on the PHIGS ANSI/ISO standards process. We will also send out surveys for product planning. We request that customers send in suggestions for product en- hancements. These mail messages go directly to the engineering team, so you could have direct impact on the next version of Digital PHIGS. What can we do to make your job easier? Do not use this electronic mail account for problem submis- sion or anything related to customer support. Use the existing channels (QARs, SPRs, and so on) for problems. 1 Digital PHIGS Version 5.1 Release Notes 4 Digital PHIGS Version 5.1 Requirements For this version of Digital PHIGS, we changed some of the min- imum system software requirements. For Digital UNIX , version V4.0 of the operating system is required. Please keep these requirements in mind when installing this new version of Digital PHIGS. 5 Enhancements in Digital PHIGS Version 5.1 Digital PHIGS V5.1 is a bug fix release. There are no new en- hancements. 6 Enhancements in Digital PHIGS Version 5.0 6.1 FIPS 153 Standard Compliant Digital PHIGS V5.0 is now FIPS 153 compliant. 7 Enhancements in Digital PHIGS Version 4.2 7.1 ISO C Binding Converter The ISO C binding converter is now supported and will assist users in converting programs from the older DEC C binding to the new ISO C binding. Since this converter is driven by an external data file, you can review the types of changes required by reviewing the data file. On VMS this file is: phigs$examples:[utils]c_converter.dat On UNIX the data file is: /usr/lib/PHIGS/examples/utils/c_converter.dat To use the converter, define a foreign command on VMS: $ converter :== $phigs$examples:[utils]converter On UNIX set up an alias: % alias converter /usr/lib/PHIGS/examples/utils/converter Then issue the following command: converter -C [input_file] [output_file] 2 Digital PHIGS Version 5.1 Release Notes 7.2 Retrieve Paths to Ancestors/Descendants The Retrieve Paths to Ancestors and Retrieve Paths to Descendants functions have been implemented. 7.3 New Locator PET -14 (echo position in raster coordinates) A new locator PET, -14, has been added. It behaves identi- cally to PET 6 and PET -11, except that the device position is reported in raster units. 8 Enhancements in Digital PHIGS Version 4.1 8.1 More Color Models Supported With this release CIELUV, HSV, and HLS color models are now supported for the OpenGL workstation types. 8.2 32x32 Bitmap Markers Supported Support for 32x32 Bitmap polymarkers has been added for OpenGL workstation types. The new escape number is -537 or use the constant "PPESC_SET_MARKER_PATTERN32". The escape function operates the same as the 16x16 bitmap escape function -527 "PHIGS$K_ESC_SET_MARKER_PATTERN2" except that the application needs to pass the additional data. 8.3 Font 2 Added Support for font 2 has been added to all workstation types except for PEX. Font 2 is an italicized version of font 1. 8.4 Intensity Highlighting Method Highlight method "Intensity" has been added for the OpenGL workstation types. 9 Enhancements in Digital PHIGS Version 4.0 9.1 Modeling Clip Modeling Clipping functions are now supported for the OpenGL workstation types through the Fortran and C bindings. 3 Digital PHIGS Version 5.1 Release Notes 9.2 Patterns Pattern related functions are now supported for the OpenGL workstation types through the Fortran and C bindings. Patterns are still not a supported interior style for displaying of filled objects but the tables and structure elements can be created. We hope to add the actual display of patterned filled objects in a future release. 9.3 Incremental Spatial Search Incremental Spatial Search and Incremental Spatial Search 3 are now supported for the OpenGL workstation types through the Fortran and C bindings. 9.4 Cell Array Cell Array and Cell Array 3 functions are now supported for the OpenGL workstation types through the Fortran and C bindings. 9.5 Man Pages Man pages are now provided for all Fortran binding functions as well as the ISO C binding functions for Digital UNIX. If you have comments on the format, content or style of the ISO C binding man pages, please send electronic mail to the Digital PHIGS "requests" account with your suggestions. 10 Enhancements in Digital PHIGS Version 3.2 10.1 OpenGL Support This release added support for an OpenGL driver. More details later in these release notes. 10.2 New Documentation This release updated the Device Specifics Reference Manual. The new manual now includes information on the OpenGL workstation types and the now integrated Japanese workstation types. It also contains lots of new information on obtaining the best performance for your application and updates other minor items throughout the book. 4 Digital PHIGS Version 5.1 Release Notes 11 Enhancements in Digital PHIGS Version 3.1 11.1 X11R5 Scalable Fonts X11R5 scalable fonts are now supported with the Motif work- station types. To enable this feature, define the following environment option: OpenVMS $ DEFINE PHIGS$USE_SCALABLE_FONTS 1 Digital UNIX % setenv PHIGSuse_scalable_fonts 1 11.2 Polyline Set 3 W/Color Performance Improved The performance of the Polyline Set 3 with Color primitive on Motif workstation types has been greatly improved if the poly- line set is not clipped, no HLHSR is enabled, and the primitive is not depth cued. 11.3 Structure Mode 4 Structure Mode 4 is now supported for OpenGL and PEX worksta- tion types. This structure mode uses one OpenGL or PEX display list for each PHIGS primitive. This structure mode improves server response time but can hurt rendering performance for certain classes of applications. 12 Enhancements in Digital PHIGS Version 3.0 12.1 ISO Compliant C Binding Digital PHIGS V3.0 introduces an ISO conformant C binding. The previous Digital PHIGS binding was written to an early draft of the ISO PHIGS C binding document. This new binding is supplied in addition to the old C binding. Users can continue to use the old C binding and convert their applications one at a time. Digital recommends that the new ISO C binding be used for all new applications and that all old applications be eventually converted over to the new binding. There are some restrictions as to what is currently available. This information is included later in these release notes. 5 Digital PHIGS Version 5.1 Release Notes An ISO C converter utility is planned but not included in Digital PHIGS V3.0. The converter utility will be of the same style as the ISO Fortran utility. If you would like to receive an early copy of this utility before our next release, please contact your Digital representative or send electronic mail to the Digital PHIGS "requests" account. Information for that account is available earlier in these release notes. 12.2 New Documentation The Digital PHIGS binding manuals have been completely revised and re-organized. The Digital PHIGS reference manual has been removed and that information has been placed in all new binding manuals. In addition the binding manuals are now organized in two volumes, non-inquiry functions and inquiry functions, with each volume in alphabetical order. We think that this arrangement is much easier to use and places the information where and when you need it. The new documentation also includes information on about 100 new functions that are planned for upcoming releases. These new functions will complete the PHIGS and PHIGS+ standard imple- mentation as well as add many Digital specific extensions that will make your application development easier, faster, and more efficient. While the new functions are in the manual, it is indicated in the function description which ones are not sup- ported in Digital PHIGS V3.1. If there are specific functions that you would like to see sooner rather than later, please send electronic mail to the Digital PHIGS "requests" account with your suggestions. 12.3 More Polymarker Types More polymarker types have been added and are supported for the Motif workstation types. These new marker types are numbered 6 through 26. The definition of these was taken from the ISO Register of Graphical Items which is published by the National Institute of Standards and Technology. These marker types are therefore standard across PHIGS implementations that support them. Please let us know if support of these marker types would be useful in other Digital PHIGS workstation types. 6 Digital PHIGS Version 5.1 Release Notes 12.4 Overlay Plane Support Some X and PEX servers support overlay visuals using the X property SERVER_OVERLAY_VISUALS. If you have a server that supports this technique, Digital PHIGS supports it as a workstation type 232 (Motif in an X drawable) or workstation type 242 (Motif/PEX in an X drawable). The program phigs_planedemo.c (in the examples directory) provides an example of overlay plane support. For information on how to use the visual, see the init_overlays function. To work correctly, Digital PHIGS requires the ap- plication to use the transparent pixel overlay technique for workstation type 232 or 242. Digital PHIGS uses this pixel as the background for PHIGS workstations created in the overlay visual. This allows you to see through anything drawn with indexed color 0. Error number -460 has been added. The message text is as fol- lows: Workstation not started; overlay planes of type transparent mask are not supported in routine **** If you specify a workstation to run in specialized X over- lay planes, and select a method that is not supported, Digital PHIGS generates this error. If you get this error, check with the vendor of the X server on how to specify the pixel to be used. If the transparent pixel method is not sup- ported, Digital PHIGS cannot use the overlay planes. Digital PHIGS does not support this overlay visual as its de- fault visual, due to color limitations. It is also not for any workstation type other than 232 and 242. NOTE There are usually very few (4 to 8) overlay planes. You should use the workstation mask to limit the number of Digital PHIGS colors used (described in the exam- ple phigs_planedemo.c). Otherwise, color allocation errors may occur either with Digital PHIGS or other applications running in the overlay planes. 12.5 Japanese Support Merged in Digital PHIGS The Digital Japanese PHIGS product has been merged into a sin- gle product offering. The Japanese components will only be available during installation if you have the Japanese compo- nents of the operating system installed. 7 Digital PHIGS Version 5.1 Release Notes 13 Important Enhancements in Previous Versions of Digital PHIGS 13.1 ISO Compliant Fortran Binding Digital PHIGS V2.6 introduced an ISO conformant Fortran bind- ing. The previous Digital PHIGS binding was written to an early draft of the ISO PHIGS Fortran binding document and also included a Digital specific Fortran binding for the PHIGS+ functions. This new binding contains changes to the constant names, func- tion names and function parameters. Digital recommends that you convert your use of the Fortran binding to the new ISO ver- sion as soon as possible. A conversion tool has been provided to assist you with identifying the changes necessary. Please see the next section for more information. For PHIGS functions beginning with the letter "P", changes must be made to use the new binding. For PHIGS functions beginning with the letter "D", changes must only be made to constants used by these functions. The "D" functions and their syntax remain in the binding for this release. With the release of Digital PHIGS V4.0, the old binding library is no longer included and no longer supported. There are also some restrictions in the new ISO binding which will be corrected in a future Digital PHIGS release. Some func- tionality which does not exist in the base code of Digital PHIGS has not been implemented in this binding. 13.2 ISO Fortran Binding Conversion Utility Digital PHIGS provides a conversion utility to be used with converting programs from the old Digital PHIGS Fortran binding to the new Digital PHIGS ISO Fortran binding. This program will automatically convert constant and function names where this is a simple change. For more complicated porting changes, the converter will add comment lines into the source module delimited by "PHIGS-CHANGES" with additional information on what kind of changes should be made. For a few of the porting changes, you will have to reference the Digital PHIGS Fortran Binding manual. Since this converter is driven by an external data file, you can review the types of changes required by reviewing the data file. On VMS this file is located in: phigs$examples:[utils]fortran_converter.dat 8 Digital PHIGS Version 5.1 Release Notes On UNIX: /usr/lib/PHIGS/examples/utils/fortran_converter.dat To use the converter, on VMS define a foreign command: $ converter :== $phigs$examples:[utils]phigs$converter On UNIX: % alias converter /usr/lib/PHIGS/examples/utils/phigs_converter To use: converter -FORTRAN [input_file] [output_file] 13.3 New Escape for Quick Updates An escape and an environment option have been added to support forcing of quick update and batch quick update rendering to the front buffer when double buffering is enabled for PEX work- stations. The new escape is numbered -535 (PPESC_FORCE_QUMS_ TO_FRONT for the C binding and PHIGS$K_ESC_FORCE_QUMS_TO_FRONT for the PHIGS$ binding). The escape accepts two values in the integer input array and doesn't return any values. The first int should be the workstation id and the second int should be the flag indicating whether to force QUM rendering to the front buffer. Here are the possible values for the second integer input argument: o 0 - use default buffer for quick update and batch quick update drawing. Default buffer could be the back or the front buffer depending on the PEX device and the double buffering mode. See information on environment options MIT_ DB_UPDATE_COPIED and MIT_DB_ENABLE. o 1 or greater - use front buffer for quick update and batch quick update drawing. Below is an example as to how to force QUM and BQUM drawing to the front buffer using the new environment option. The values for the environment option have the same meaning as the second integer argument in the escape call. VMS $ define PHIGS$FORCE_QUMS_TO_FRONT 1 UNIX % setenv PHIGSforce_qums_to_front 1 9 Digital PHIGS Version 5.1 Release Notes 13.4 MIT_DB_UPDATE_COPIED Environment Option You can change the default update action which Digital PHIGS specifies when creating the buffers needed for MIT double buffering by setting the OpenVMS logical name PHIGS$MIT_DB_UPDATE_COPIED or the Digital UNIX environment option PHIGSmit_db_update_copied. If you set the value to 1, Digital PHIGS uses MultibufferUpdateActionCopied as the update action. If you set the value to 0, Digital PHIGS uses MultibufferUpdateActionUndefined as the update action. This is the default value. The use of update action MultibufferUpdateActionCopied may slow down the time it takes to swap buffers so update action MultibufferUpdateActionUndefined is strongly recommended. 13.5 Shared Structure Store for PEX Devices With the release of Version 2.5, Digital PHIGS introduced sup- port for structure sharing between PHIGS workstations. This section describes the restrictions for using shared structure store. In previous versions of Digital PHIGS, each PHIGS worksta- tion contained its own copy of the centralized structure store (CSS). If you opened two PHIGS workstations to the same PEX server, Digital PHIGS maintained two copies of the CSS, one for each workstation. With Digital PHIGS Version 2.5, whenever an application opens a PHIGS workstation, Digital PHIGS first checks to see if the new workstation can share the CSS contained in the de- fault workstation. If the test succeeds, the default work- station and the new workstation share the CSS stored on the default workstation. The default workstation is a workstation PHIGS opens when an application calls OPEN PHIGS. Its con- nection identifier and type are defined by the logical names PHIGS$WSTYPE and PHIGS$CONID on OpenVMS systems, and by the environment variables PHIGSwstype and PHIGSconid on ULTRIX/RISC and Digital UNIX systems. The workstation sharing test is only performed between the default workstation and the workstation being opened. A work- station that stores structures but is not currently the default workstation cannot share its copy of the CSS with other work- stations. The workstation sharing test succeeds if any one of the following criteria is met: o Neither workstation is a PEX workstation 10 Digital PHIGS Version 5.1 Release Notes o Both workstations are PEX workstations, and both use client- side structure store o One of the two workstations is a PEX workstation, and this PEX workstation uses client-side structure store o Both workstations are PEX workstations, use server-side structure store, and use the same connection to the X server 13.5.1 Less Memory Needed on Storing Workstations Even if the structure sharing test during an OPEN WORKSTATION call fails, the memory needed for storing structures on the new workstation will most likely be less for Version 2.5 than for previous versions of Digital PHIGS. In previous versions, after Digital PHIGS posted the first structure to a workstation that was not the default workstation, it put a full copy of the CSS on the workstation. With Version 2.5, when Digital PHIGS posts a structure to a storing workstation that is not the default workstation, it copies only those structures that are needed to resolve the post call onto the storing workstation. A storing workstation is a workstation, other than the default workstation, that failed the structure sharing test when it was opened. 13.5.2 Determining Structure Memory Usage A new environment variable has been added to allow you to request a printout of the maximum amount of memory used by Digital PHIGS to store structures. This information is printed out when the application closes the workstation. To enable this message, set the logical name PHIGS$STRUCT_MEM_DUMP (OpenVMS systems) or the environment variable PHIGSstruct_mem_dump (ULTRIX/RISC and Digital UNIX systems) to 1. 13.6 Digital PHIGS Tracer Digital PHIGS Version 2.5 introduces a tracing facility. The tracer records a log of all non-inquiry PHIGS calls used by an application, and the parameters passed. This tracer requires no modification of existing Digital PHIGS applications. To use the tracer on OpenVMS systems, issue the following com- mands: $ DEFINE PHIGS$DEBUG "TRACE" $ DEFINE PHIGS$TRACE_OUTPUT [filename] 11 Digital PHIGS Version 5.1 Release Notes To use the tracer on Digital UNIX or ULTRIX systems, issue the following commands: % setenv PHIGSdebug "TRACE" % setenv PHIGStrace_output [filename] The tracer serves two main purposes. First, the tracer is a debugging tool for application developers. With complex appli- cations, it can sometimes be difficult to determine the exact sequence of PHIGS functions used, and why the desired picture does not appear. The tracer output can be used to evaluate what calls are being used, in what order, with what parameters. The tracer also provides a means for application developers to report bugs to Digital. Sending the complete application as a reproducer is not always practical, and the output from the tracer may be enough for Digital to analyze, reproduce, and fix a bug. We would like some feedback as to the usefulness of this tool, and whether more tools of this nature would be useful for Digital PHIGS development. 13.7 BattleZone Game Digital PHIGS supplies complete sources for a tank bat- tle game. On OpenVMS systems, the files are located in PHIGS$EXAMPLES:[BATTLEZONE]. On Digital UNIX or ULTRIX systems, the files are located in /usr/lib/PHIGS/examples/battlezone. See the file battle.help for more information. For the game to work correctly, you must have 3D graphics accelerator hardware with a 24 plane depth visual. 13.8 Dithering Support for ZLX-E* Series Graphics Options For Alpha systems only, the ZLX-E* and ZLXp-E series of graph- ics options using Digital Open3D Version 2.5 or later support a dithering algorithm under PEX. This algorithm allows you to create high-quality objects that have lighting and shading ap- plied. The dithering may either be performed in software for the ZLX-E* or ZLXp-E*, or with hardware acceleration. For hard- ware acceleration, there are several criteria. The easiest way to meet these criteria with Digital PHIGS is to guarantee that Digital PHIGS uses an 8 or 12 plane TrueColor visual. You can do this in two ways: o The server has an 8 or 12 -plane TrueColor visual as its default 12 Digital PHIGS Version 5.1 Release Notes o For workstation types 243 and 242, create an X11[R] draw- able or Motif[R] widget that has an appropriate 8 or 12 plane TrueColor visual and color map, and give that to Digital PHIGS Note that if the TrueColor visual is not the default visual of the system, you will experience color flashing with the ZLX-E1 or ZLXp-E1 as they have only one physical color map. Digital PHIGS will turn on dithering by default if PHIGS de- tects an 8 or 12 bit drawable is being used which is of visual class TrueColor. You can still disable dithering by setting PHIGS$DITHER (OpenVMS) or PHIGSdither (Digital UNIX and ULTRIX) to 0. Although it is not the default, dithering can also be enabled for PseudoColor visuals on a ZLX-E* or ZLXp-E*. Note that if you request Digital PHIGS to dither and the visual is not an 8 or 12 plane TrueColor, dithering will be performed in software instead of hardware. This may adversely affect the performance of your application. For Digital UNIX systems, you can change the default visual class of the X server by adding -vclass0 as a server command line argument in the file /usr/lib/X11/Xserver.conf For OpenVMS Alpha systems, you can change the default visual class by setting the OpenVMS symbol DECW$SERVER_DEFAULT_VISUAL_ CLASS in the file SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.COM. 13 Digital PHIGS Version 5.1 Release Notes 14 Digital PHIGS for OpenVMS Specifics This section describes necessary information for using Digital PHIGS on OpenVMS systems. 14.1 DECwindows Motif Version 1.2-3 Required This release requires DECwindows Motif Version 1.2-3. NOTE When displaying to a server running OpenVMS and Motif V1.2-3, you may need to set the Mwm*clientAutoPlace re- source to False in the DECW$MWM.DAT file on the server. Doing so will ensure correct window placement. If, on successive runs of a PHIGS application, you see messages like this: Digital PHIGS - WARNING - 'BORDER SIZE' attribute incorrect: use "DEFINE PHIGS$DECW_BORDER_SIZE 224" and restart application. Digital PHIGS - WARNING - 'TITLE SIZE' attribute incorrect: use "DEFINE PHIGS$DECW_TITLE_SIZE -196" and restart application. with numbers that vary even if you do not redefine the logicals as suggested, then you should apply the Mwm*clientAutoPlace fix. 14.2 Ada Binding and Ada Compiler Version This version of the Digital PHIGS Ada binding requires DEC Ada for OpenVMS Alpha V3.2. The Ada binding can not be used with any other version of DEC Ada. 14.3 Tuning VMS DECwindows Systems This section describes how to tune DECwindows systems for Digital PHIGS. More tuning information is also supplied in the new Device Specifics book, performance chapter and in the Digital Open3D installation guide. Picking (AST Limits) If picking fails, enlarge the ASTlm in the user account. If this parameter is not large enough, the system might hang. A value of 300 should be sufficient for this parameter. Your system manager can change the value by using the AUTHORIZE utility to modify SYS$SYSTEM:SYSUAF.DAT. To use this parameter, you must log out and log back in. 14 Digital PHIGS Version 5.1 Release Notes System Process Parameters for the PHIGS (client) Program System process parameters need to be large enough to hold PHIGS, the application, and any PHIGS structures that the application generates. These parameters should also be set properly (usually large, but setting them arbitrarily large can lead to system thrashing) to minimize paging. This is described thoroughly in the Guide to VMS Performance Management. In par- ticular, the process parameters WSQUO, WSDEF, WSEXTENT, and PGFLQUO effect the working set size and maximum size to which the process can grow. These parameters are set on a per-user basis using the AUTHORIZE utility. For more on the parameters and how to set them, see the VMS Authorize Utility Manual. Process Parameters for the DECwindows Server The process parameters for the DECwindows server are not set through the AUTHORIZE utility. The parameters are set through system logicals that are checked when the server is started. The logicals work the same as the system parameters of similar names and have analogous effects. The process parameters for the DECwindows server are defined in SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.COM. Digital recommends that you edit the command file to contain the following lines at the end of the file: $ DEFINE/PROCESS DECW$SERVER_WSDEF 4096 $ DEFINE/PROCESS DECW$SERVER_WSQUOTA 8192 $ DEFINE/PROCESS DECW$SERVER_WSEXTENT 20480 $ DEFINE/PROCESS DECW$SERVER_FILE_LIMIT 400 $ DEFINE/PROCESS DECW$SERVER_ENQUEUE_LIMIT 1024 $ DECW$SERVER_ERROR_LOG_TO_KEEP == 2 You use "define/process" in these logical definitions to be sure these values override any "define/system" designations that could be set elsewhere, and could be too low. For Digital PHIGS applications that intend to have a very large Centralized Structure Store (CSS), Digital recommends that you also include the following line in SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.COM: $ DEFINE/PROCESS DECW$SERVER_PAGE_FILE n In this command line, n is the server page file size you want. Digital recommends a value of 100,000 for programmers of large 3D CAD/CAM/CAE applications. If you define DECW$SERVER_PAGE_FILE in DECW$PRIVATE_SERVER_ SETUP.COM, you should also do the following: 15 Digital PHIGS Version 5.1 Release Notes o Using SYS$SYSTEM:AUTHORIZE.EXE, modify the SYSTEM account so the Pgflquo is at least as large as the value you assigned to decw$server_page_file. o Make sure PAGEFILE.SYS is large enough so both the server page file size and the page file space required by applica- tions will fit. If you do not select a large enough value for decw$server_page_ file, error messages complaining of insufficient virtual memory will appear in the server error file DECW$SERVER_0_ERROR.LOG, and the server will abort. If you use 3D CAD/CAM/CAE applications and scientific visual- ization applications, Digital recommends you have at least 32 Mbytes of physical memory to be able to view even moderately complex models at an optimum performance level. System Parameters The SYSGEN parameter WSMAX limits the size that any working set can reach. If any of the process working set parameters are bigger than this, they will be trimmed. VIRTUALPAGECNT affects how many virtual pages any process can address. No matter how large you set the working set and page file quotas, their total can never exceed VIRTUALPAGECNT. Finally, you need to be sure that enough page file exists to satisfy the page file quotas of both the PHIGS and client process, and the server, as well as other processes that will be running. 14.4 PCM Failure On VMS, if the server is failing with the error "XIO: unable to open connection _WSA1:", where _WSA1: is your system's DECwindows display, check the Security Customization, and add "TRANSPORT=LOCAL, HOSTNAME=0, USER=SYSTEM". 15 Digital PHIGS for OpenVMS VAX Specifics This section describes the information necessary to use Digital PHIGS on OpenVMS VAX systems. 15.1 DEC C V4.0 Required DEC C V4.0 or later is now required for use with Digital PHIGS. Applications compiled and linked with VAX C V3.2 will continue to work except for the case when the DEC C binding is used and a C error file pointer has been passed to the OPEN PHIGS func- tion. If the default error file (0) is used, the application will continue to work correctly, otherwise it will ACCVIO. 16 Digital PHIGS Version 5.1 Release Notes 16 Digital PHIGS for OpenVMS Alpha Specifics This section describes the information necessary to use Digital PHIGS on OpenVMS Alpha systems. 16.1 Ada Binding and Ada Compiler Version This version of the Digital PHIGS Ada binding requires DEC Ada for OpenVMS Alpha V3.2. The Ada binding can not be used with any other version of DEC Ada. 16.2 PCM, PEXlib, and PEX Server on Digital Open3D Kit for Alpha In previous versions of Digital PHIGS for OpenVMS VAX systems, the following files were supplied with the kit: o Server for the graphics peripheral set (GPS-32 function key box and 6-dial box) o Shareable library for the GPS o Object library and documentation for PEXlib o PEX server extension For OpenVMS Alpha systems, these files are now available through the kit for Digital Open3D for OpenVMS Alpha systems. 16.3 /FLOAT=IEEE_FLOAT on Compile To use the default Digital PHIGS images with any of the binding interfaces, you must compile applications with the qualifier /FLOAT=IEEE_FLOAT. If you try to call a Digital PHIGS function with a VAX floating-point formatted number, you will get the following error: "SYSTEM-F-HPARITH, high performance arithmetic trap..." To use PHIGS with VAX floating point, please see the binding references manuals for compilation and linking information. 17 Digital PHIGS Version 5.1 Release Notes 17 Digital PHIGS for Digital UNIX Specifics This section describes the information necessary to use Digital PHIGS on Digital UNIX systems. 17.1 Ada Binding and Ada Compiler Version This version of the Digital PHIGS for Digital UNIX Ada binding requires DEC Ada for Digital UNIX V3.2. The Ada binding can not be used with any other version of DEC Ada. 17.2 PCM Server and PEXlib on Digital Open3D Kit for Alpha The PCM server (pcmserver) and PEXlib library that ship on the ULTRIX version of Digital PHIGS are not shipped with Digital PHIGS for Digital UNIX systems. To obtain these files, you must install the Digital Open3D kit for Digital UNIX systems. In previous versions of Digital PHIGS for ULTRIX, the following files were supplied with the kit: o Server for the graphics peripheral set (GPS-32 function key box and 8-dial box) o Object library and documentation for PEXlib For Digital UNIX systems, these files are available through the kit for Digital Open3D for Digital UNIX systems. 17.3 Porting Hints This section describes the changes needed to port a Digital PHIGS application from ULTRIX or OpenVMS VAX systems to a Digital UNIX system. Use New Escape Format Be sure to convert all calls to PHIGS escape functions to the new escape format. See the Device Specifics Reference Manual for DEC GKS and DEC PHIGS for details on the new escape record format. X Displays and X Drawables X drawables, and any other object that is an XID, are 64 bit quantities. Check to be sure your application does not treat them as integers. If your application is written in C and uses sprintf to copy an X drawable or the pointer to the X display identifier into a string (for the connection identifier), make 18 Digital PHIGS Version 5.1 Release Notes sure to change the format string from %d to %ld. For example, consider the following code fragment: sprintf(conn_id, "%d!%d", display, window); You must change it to the following: sprintf(conn_id, "%ld!%ld", display, window); Motif Workstation Types Be sure not to use any of the old XUI workstation types (210 to 213, and 220 to 223). Digital PHIGS currently supports only the Motif workstation types on Digital UNIX and OpenVMS Alpha systems. For example, if your application previously used work- station type 222 (XUI PEX DRAWABLE), change the workstation type to 242 or 272. 18 OpenGL Graphics Driver Information Digital PHIGS V5.1 for Digital UNIX and OpenVMS Alpha provides support for OpenGL(TM). The OpenGL driver for Digital PHIGS is included in the Digital PHIGS architecture at the same level as the PEX driver: APPLICATION | | Digital PHIGS KERNEL | | Digital PHIGS Workstation Manager | | | | | | | 3D PEX 3D OpenGL | Driver Driver | 2D drivers (PostScript, CGM, etc.) 18.1 Installation on Digital UNIX In order to use the OpenGL graphics driver on Digital UNIX, you must install the Digital Open3D OpenGL subset. Please see the Digital PHIGS installation guide for more information. If the proper Digital Open3D subset is not installed and the Digital PHIGS OpenGL workstation types are used, the application will silently default to the Motif workstation types. 19 Digital PHIGS Version 5.1 Release Notes 18.2 Installation on OpenVMS The OpenGL graphics driver requires that the OpenGL compo- nent of Digital Open3D for OpenVMS be installed. If the proper Digital Open3D component is not installed and the Digital PHIGS OpenGL workstation types are used, the application will silently default to the Motif workstation types. 18.3 OpenGL Specifics Documentation A new chapter has been added to the Device Specifics Reference Manual for DEC GKS and DEC PHIGS. It contains information on the device capabilities, restrictions, and other useful infor- mation. 18.4 OpenGL Workstation Types The following workstation types are available: o 270 - Output only o 271 - Output/input o 272 - Output to an X11 drawable o 273 - Output to a Motif widget 18.5 Selection of 12 Bit Visuals on ZLX*-E2 and ZLX*-E3 Devices When outputting to a ZLX*-E2 or ZLX*-E3 device, the use of 12 bit visuals yields improved double buffering performance over 24 bit visuals without much loss in color resolution. Through the use of the UNIX environment option PHIGSmax_visual_depth or the OpenVMS logical PHIGS$MAX_VISUAL_DEPTH, PHIGS users can switch between visuals of minimum and maximum depth. This environment option is fully described in the Device Specifics manual. To select a 12 bit visual, you must disable 24 bit double buffered visuals in the Digital Open3D server. See the Digital Open3D V2.6 or later release notes for how to do this. If 24 bit double buffered visuals have been disabled and a double buffered visual is requested, you can use the MAXIMUM VISUAL DEPTH option to switch between 8 and 12 bit visuals. 20 Digital PHIGS Version 5.1 Release Notes 18.6 Performance The performance characteristics of the OpenGL workstation types differ from those of the PEX workstation types. Some things are faster and some things are slower. With the release of Digital Open3D V3.1, performance using the OpenGL workstation types is generally better then using the PEX workstation types, sometimes as much as 100% better. For this reason Digital now recommends the use of the OpenGL workstation types over the PEX workstation types. Performance will continue to be studied and more improvements are possible. We encourage you to provide us with specific cases of concern for us to study. Generally the following relative performance can be expected: o Polylines - OpenGL driver is significantly faster than the PEX driver o Polymarkers - OpenGL driver is slightly slower than the PEX driver. o Text - OpenGL driver is significantly faster than the PEX driver. o Fill Areas - OpenGL driver is faster than the PEX driver. o Triangle Strips - OpenGL driver is slightly slower than the PEX driver. o Quadrilateral mesh - OpenGL driver is slightly slower than the PEX driver. o Polyline Sets - OpenGL driver is slightly faster than the PEX driver. o Picking - OpenGL driver is faster than the PEX driver. o Editing - OpenGL driver is faster except when color elements are changed. NOTE Specific performance can vary depending on the mix of primitives and attributes used, by primitive size, and by what graphics hardware option is used. Please see the performance chapter in the Device Specifics Reference Manual for ways to improve your application. 18.7 Features Being Considered In addition to the set of features currently available through other graphics drivers for Digital PHIGS, the following fea- tures are being considered for addition to the OpenGL graphics driver for Digital PHIGS: o X11 bitmap text fonts 21 Digital PHIGS Version 5.1 Release Notes o Modeling Clip (now supported in Digital PHIGS V4.0) o Cell array (now supported in Digital PHIGS V4.0) o registered GDPs o Triangle Sets o Set of Fill Area Sets o Data Mapping o Hatched and Patterned fill interior style o Sub-element picking o Conditional Traversal o Texture Mapping o Other primitives (spheres, cones, cylinders, etc.) Some of these features such as Conditional Traversal, and other primitives are partially implemented in the current product for the OpenGL driver. Since testing is not complete on these additions, they are not supported and any problems found will not be fixed until at least the next release. Please let us know which are most important. 18.8 OpenGL Driver Restrictions The following are restrictions for the Digital PHIGS OpenGL workstation types. More restrictions due to limitations in the design of OpenGL are documented in the OpenGL Device Specifics Chapter. 18.8.1 Depth Cueing The PHIGS+ standard suggests a depth cueing algorithm that is linear in the range between the front and back planes and is clamped at the front and back planes (see annex E of the ISO PHIGS PLUS standard, ISO/IEC 9592-4:1992(E) for exact details). The OpenGL model has an analogous function called fog. However, it is not possible to exactly replicate the clamping behavior of the PHIGS depth cueing suggested model with the OpenGL fog methods without imposing a very large performance penalty. Thus the preliminary PHIGS OpenGL interface precisely models the linear portion of the ramp. At the points where the PHIGS PLUS model suggests clamping the function continues linearly until either 100% intrinsic color or 100% depth cue (0% intrinsic color) is reached. For example, if the front plane was set at 0.8 and the back plane at 0.2, and the values were set at 0.8 and 0.2 respectively, then an object at NDC Z of 1.0 would have a color value 0.8 times the intrinsic color and 0.2 times the depth cue color and an object at 0.0 would have a color value 22 Digital PHIGS Version 5.1 Release Notes 0.2 times the intrinsic color and .8 times the depth cue color. On the Digital PHIGS preliminary OpenGL handler these values would be 100% intrinsic color and 0% intrinsic color (i.e. 100% depth cue color) respectively. In addition, because of coordinate system differences in where PHIGS depth cueing and OpenGL fog are applied PHIGS needs in- timate knowledge of the matrices used in all transformations. Thus projection matrices other than those generated by Evaluate View Mapping Matrix or Evaluate View Mapping Matrix 3 (or iden- tical to ones generated by those functions) will result in PHIGS using a fall back NDC mapping equivalent to that which would operate correctly in PHIGS view 0. 18.9 OpenGL Driver Known Problems 18.9.1 NURB SURFACE and Server Crashes Using NURB SURFACES with the OpenGL driver and using server side storage of structures could cause the Digital UNIX Motif server to crash. The only known workaround at this time is to use client side storage of structures. The Digital PHIGS engineering team is working with the server team to find a solution. To work around this problem on Digital UNIX , use the command: % setenv PHIGSdevice_struct_support_271 0 More details on this environment option can be found in the DEVICE SPECIFICS manual. 18.9.2 Workstation Type 271 Problems Using workstation type 271 may result in occasional process hangs, failures, or GLX error messages. Digital recommends that the 270, 272, and 273 workstation types be used instead whenever possible. 18.9.3 Annotation Text Depth Cues Improperly Annotation text primitives do not depth cue properly. 18.9.4 Tesselation Problems If you notice incorrect output for fill areas or fill area sets with GL workstation types 27*, set the environment variable PHIGSforce_gl_triangles on UNIX, logical name PHIGS$FORCE_GL_ TRIANGLES on VMS, to any value. This action will force the GL tesselator to use triangles only. Although there may be some performance degradation, the picture will be correct. To allow 23 Digital PHIGS Version 5.1 Release Notes GL to choose the breakup type during tesselation, remove the environment variable or logical name. 18.9.5 Outputting of Edged Primitives with Both Modeling Clip and Culling Enabled If both modeling clip and culling are enabled and edges are on, some edges of the polygons may not be culled. 18.9.6 Color Problems Some problems have been noticed to occur with XQuery_Color and XAlloc_Color if you are running PHIGS under the new Common Desktop Environment (CDE). The only known workaround at this time is to deinstall CDE from your system. If you encounter such a problem please notify us using the usual channels. 24 Digital PHIGS Version 5.1 Release Notes 19 Problems Fixed in Digital PHIGS Version 5.1 19.1 Problems Fixed Specific to Namesets A performance regression involving namesets and nested struc- tures has been fixed. 19.2 Problems Fixed Specific to OpenGL Workstation Types 19.2.1 Problem with Edge Type Zero The edge type zero is now recognized as valid and is replaced by the default value corresponding to a solid line. 19.2.2 Problem with Pixmaps Pixmaps now work for workstation type 272. 19.2.3 Problem with Depth Cue Table The depth cue table is now properly initialized. Previously erroneous values in the table led to a crash in certain circum- stances. 20 Problems Fixed in Digital PHIGS Version 5.0 20.1 Problems Fixed Specific to OpenGL Workstation Types 20.1.1 Degenerate text direction vectors If the direction vectors of a Text 3 primitive failed to de- fine a plane (i.e. one of the vectors was zero, or they were parallel), an incorrect picture or a crash could result. 20.1.2 Name set space not correctly initialized at traversal In some instances, name sets were not correctly initialized at the beginning of structure traversal, leading to incorrect visibility, highlighting, or detectability of primitives. 20.1.3 Text attributes (font, precision) are now inherited In some instances involving structure networks, text attributes like font and precision were not inherited correctly. 25 Digital PHIGS Version 5.1 Release Notes 20.1.4 OpenGL error 1282 [invalid operation] with Incremental Spatial Search In some cases involving Incremental Spatial Search and poly- lines, a OpenGL error 1282 [invalid operation] occurred. 20.1.5 Marker type 25 was displayed as type 24 Marker type 25 (meteorological automatic station circle, sky obscured) was appearing as type 24. 20.1.6 Inquire annotation facilities problem Sometimes error tests on inquire annotation facilities would fail if the calling program would pass in the same address at different parameter values. 20.2 Cell array problems The following problem existed with the cell array primitive: o In a cell array primitive, color indices less than zero were not correctly mapped to color index one. o If a cell array was drawn after an edged hollow fill area set, only the outlines of the cells were drawn. 20.3 Return structure identifiers problem The call to return structure identifiers will return the ac- tual requested value or if the call failed due to an error the return value is zero. 21 Problems Fixed in Digital PHIGS Version 4.2 21.1 Inquiry Restriction Removed In earlier versions of Digital PHIGS, it was necessary for ap- plications to open a workstation of type 232, 233, 242, 243, 272, or 273 before performing inquiries on the drawable or wid- get workstation types. This restriction is removed in Digital PHIGS Version 4.2. 21.2 ISO C Binding Related Problems Fixed 26 Digital PHIGS Version 5.1 Release Notes 21.2.1 phigs.h (phigs_iso.h) The ISO header file phigs_iso.h now conforms more closely to the standard and is a strict superset of the standard phigs.h. 21.2.2 pdel_store pdel_store now sets its pointer parameter to NULL as required by the standard. 21.2.3 Checking for C Binding-Specific Errors ISO C binding functions now check correctly for errors 2200 (start index invalid), 2201 (application list length < 0), and 2202 (enumeration type out of range). 21.2.4 Crash in pnon_uniform_b_spline_curve3 The ISO C binding function pnon_uniform_b_spline_curve3 no longer crashes. 21.2.5 Arguments of Enumerated Type Now Checked for Range Arguments of enumerated types passed to numerous functions, e.g. pset_conf_res, pret_paths_ances, pset_edge_rep, pset_int_ style, predraw_all_struct, pupdate_ws, pdel_struct_net, pset_ edit_mode, and pset_view_rep, are now checked for validity. If any of the arguments is out of range, error 2202 is returned. 21.3 Text Problems Fixed 21.3.1 Hang with Illegal Characters in Japanese Text The presence of certain illegal characters in Japanese text could cause PHIGS to hang. This problem is fixed. 21.3.2 Concatenation Point The concatenation point is correctly calculated for all combi- nations of text alignments and paths. 21.3.3 Text Position PHIGS now calculates the correct text position for all 60 pos- sible combinations of text path, horizontal alignment, and vertical alignment. 27 Digital PHIGS Version 5.1 Release Notes 21.3.4 Inquire Text Extent Digital PHIGS now uses the absolute value of the height and character expansion values in accordance with the PHIGS stan- dard. 21.3.5 Variable-Width Fonts and Text Path Up or Down The character boxes of a text string were not centered on the center line of the path when using a variable-width font with text path UP or DOWN. This problem has been fixed. 21.3.6 Text String Placement with Negative Spacing Text strings with large negative spacing values that cause reversal of the string are now placed correctly. 21.3.7 Font Height The heights defined in the font files supplied by Digital PHIGS now conform to the PHIGS standard. 21.4 OpenGL Workstation Type Related Problems Fixed 21.4.1 Modeling Clip Several problems relating to modeling clip have been fixed: 21.4.1.1 Polylines Polylines are now clipped correctly when modeling clip is en- abled. 21.4.1.2 Polymarkers Polymarkers are now clipped correctly when modeling clip is enabled. 21.4.1.3 Annotation Text Annotation text primitives are now clipped correctly when mod- eling clip is enabled. Specifically: o if the reference point of an annotation text primitive is OUTSIDE the modeling clip volume, the entire primitive will NOT be drawn, and o if the reference point of an annotation text primitive is INSIDE the modeling clip volume, then the entire primitive WILL be drawn (subject to viewport clipping). 28 Digital PHIGS Version 5.1 Release Notes 21.4.1.4 Fill Areas and Fill Area Sets If modeling clip is enabled, Digital PHIGS no longer opti- mizes hollow fill areas and hollow fill area sets into line primitives. The output picture is correct now. 21.4.1.5 Edges Edges are now clipped correctly when modeling clip is enabled. 21.4.1.6 Error Cases The following error cases are now handled correctly when a Model Clip Volume or Model Clip Volume 3 element is encoun- tered during traversal (i.e. the new modeling clip volume is ignored): o the new volume specifies more than the maximum number of clipping planes; o any of the half-spaces specified is degenerate; o the operator is INTERSECT and the sum of the number of ex- isting clipping planes and the number of new clipping planes exceeds the maximum number of clipping planes. 21.4.2 Double Exposure An exposure event on a PHIGS OpenGL workstation type window would occasionally result in a "double exposure" appearance. This has been fixed. 21.4.3 Line Type 0 If a line type value of 0 is specified with the OpenGL work- station types, a solid line type is now correctly drawn. Previously, no line was drawn. 21.4.4 Default Highlighting When the default highlighting method is used, the color cho- sen for highlighting is now always different from the normal drawing color of the primitive. Previously, the highlighted primitive might have been drawn with the same color. 21.4.5 Hang on Close Workstation followed by Open Workstation If the workstation type was 270 or 271, the sequence Open Workstation, Close Workstation, Open Workstation resulted in a hung process. This problem has been fixed. 29 Digital PHIGS Version 5.1 Release Notes 21.4.6 Display usage with WIDGET wstype The OpenGL driver now always uses the display implicit in the WIDGET workstation type (273), rather than creating a new one in some circumstances. 21.4.7 Text primitive following a fill area The OpenGL driver sometimes generated bad GL commands when a text primitive followed a fill area primitive. This problem has been fixed. 21.4.8 Polyline Set and Polyline Set 3 functions The Polyline Set and Polyline Set 3 functions generated a GL invalid operation error. This problem has been fixed. 21.5 Other Problems Fixed 21.5.1 Evaluate View Mapping Matrix 3 Evaluate View Mapping Matrix 3 now returns a correct matrix when the projection type is PERSPECTIVE and the front and back planes are the same. 21.5.2 Change Structure References and the SVR Change Structure References now sets the State of Visual Representation to DEFERRED if the old structure is posted. 21.5.3 Delete Element in Structure Mode 4 If Structure Mode 4 was in effect and a structure contained one or more sequences of like elements, then a series of one or more Delete Element operations beginning at the end of a sequence could result in a process hang. This problem has been fixed. 21.5.4 Inquiry on Drawable (2n2) or Widget (2n3) Workstation Type It is now possible to make WDT inquiries of Drawable or Widget workstation types without having a workstation of the corre- sponding type open. 21.5.5 Inquire List of Available Wstypes In response to INQUIRE LIST OF AVAILABLE WSTYPES, Digital PHIGS now returns only the workstation types that can be used in the open_ws call. 30 Digital PHIGS Version 5.1 Release Notes 21.5.6 HLHSR Mode with Screen Empty When the HLHSR mode is set with the screen empty, the HLHSR mode is now correctly set as the current mode. Previously, this would result in an HLHSR pending status. 21.5.7 Inquiry of Bundle Table An error is now correctly reported when the application in- quires the REALIZED values for an undefined bundle table entry. 21.5.8 Error Returns Many functions that returned error code 2 (function re- quires state (PHOP,*,*,*)) when PHIGS was not open have been corrected to return error code 3 (function requires state (PHOP,WSOP,*,*)), 5 (function requires state (PHOP,*,STOP,*)), etc. as appropriate. 21.5.9 HLS and HSV Color Model Problems In accordance with the PHIGS standard, the hue value in both the HLS and HSV color models is set to vary between 0 and 1. 21.5.10 Open Archive File Open Archive File will now signal an error if you attempt to open a new archive when the maximum number of archive files is already open. 21.5.11 Delete Structure Networks from Archive The Delete Structure Networks from Archive function did not always delete all the structures in the network(s) from the archive. This problem has been fixed. 21.5.12 Element Pointer after Delete Structure Networks The element pointer within an open structure was sometimes not properly set when function Delete Structure Networks caused the deletion of structure references from the open structure. This problem has been fixed. 21.5.13 Copy All Elements from Structure Copy All Elements from Structure now works properly in the case where the source and destination structures are the same. 31 Digital PHIGS Version 5.1 Release Notes 21.5.14 Change Structure Identifier and Change Structure Identifier and References Functions Change Structure Identifier and Change Structure Iidentifier and References have been substantially rewritten to fix multiple problems. 21.5.15 Inquire Paths to Descendants and Truncated Paths Inquire Paths to Descendants now reports paths correctly in cases involving truncation where the requested depth is less than the maximum path depth. 21.5.16 Inquire Paths to Ancestors/Descendants and Path Order BOTTOM_FIRST Paths reported by Inquire Paths to Ancestors and Inquire Paths to Descendants are now always reported in top-down order, even when the path order is BOTTOM FIRST. The path order specifies where truncation occurs, not the order of element references in the returned path. The old behavior is accessible by setting the new environmental control PHIGS$PATH_ORDER_ORIGINAL (VMS) or PHIGSpath_order_original (UNIX) to a non-zero value. 21.5.17 GDP3 and GDP Elements The structure elements GDP3 and GDP can now be correctly archived and retrieved. Inquire [Current] Element Content also now return correct data for GDP3 and GDP elements. 21.5.18 Utility Routines pcreate_store and pdel_store Available on OpenVMS The utility routines pcreate_store and pdel_store are now available in the DEC C binding on OpenVMS. They are needed for use with some of the ISO C style functions in the DEC C binding. 21.5.19 User defined error handling and error file The user defined error handler can be defined and used before PHIGS is open. If an error occurs before PHIGS is open the default output file is used as the error file. 32 Digital PHIGS Version 5.1 Release Notes 21.5.20 Validity of the workstation viewport The workstation viewport extents are checked for validity be- fore setting the viewport. 21.5.21 Error checking for ISS parameters The parameters of Incremental Spatial Search such as length of the return path and ceiling values, are now checked before executing the search. 21.5.22 Maximum values for length of ISS filters Inquire PHIGS facilities returns 1 as the maximum values for both the number of normal filters and inverted filters for Incremental Spatial Search. 21.5.23 Modeling Clip index in ISS The modeling clip index was not set up properly for ISS. This problem has been fixed. 21.5.24 Set View Transformation Input Priority The Set View Transformation Input Priority function now has no effect if the specified view and the reference view are the same. 21.5.25 View Indices, View Entries and View Table The number of defined view indices, the number of predefined view entries, and the maximum view table length now agree for I3D workstation types. 21.5.26 Changes for NIST Certification Certain changes in the behavior of PHIGS were necessary for certification; all these changes are enabled by defining the environmental control PHIGSnist_certified (UNIX) or PHIGS$NIST_ CERTIFIED (VMS) to be any non-zero value: o pinq_ws_conn_type returns the workstation id in the upper bits of the returned workstation type, to conform with the standard's requirement that, when a workstation is opened, a new (specific) workstation type replace the "generic" workstation type in the workstation state list. 33 Digital PHIGS Version 5.1 Release Notes 22 Problems Fixed in Digital PHIGS Version 4.1 22.1 ISO C Binding Related Problems Fixed 22.1.1 Inquire Color Facilities INQUIRE COLOR FACILITIES now returns valid data for the CIELUV red, green, and blue primaries in the ISO C and Fortran bind- ings. 22.1.2 Inquire List Color Indices INQUIRE LIST COLOR INDICES in the ISO C binding no longer re- turns an error status if the array is too small. 22.1.3 Inquire [Current] Element Content and Type INQUIRE [CURRENT] ELEMENT CONTENT and INQUIRE [CURRENT] ELEMENT TYPE AND SIZE now return correct information. 22.1.4 Inquire Text Extent The ISO C binding function INQUIRE TEXT EXTENT now correctly uses the rectangle coordinates. Previously the Xs and Ys were getting mixed up. 22.1.5 Inquire Paths to Ancestors/Descendants ISO C binding functions INQUIRE PATHS TO ANCESTORS and INQUIRE PATHS TO DESCENDANTS now return correct data. 22.1.6 Inquire Model Clip Facilities The ISO C binding function, INQUIRE MODEL CLIPPING FACILITIES, now returns the correct values when the number of elements in the application list is 1 or 2. 22.1.7 OpenVMS: Vax-float symbols Not Visible Linking ISO C, Vax-float programs on OpenVMS Alpha did not work and undefined symbols resulted. This is now fixed. 22.1.8 Inquire Dynamics of Workstation Attributes The ISO C binding function INQUIRE DYNAMICS OF WORKSTATION ATTRIBUTES now correctly returns a valid value for HLHSR MODE. 34 Digital PHIGS Version 5.1 Release Notes 22.1.9 Reporting of Errors The ISO C binding will now correctly call the PHIGS error log- ging facilities when an error occurs. 22.1.10 Inquire List Text Indices The ISO C INQUIRE LIST OF TEXT INDICES call does not return an error if the start value is the last available value. 22.2 Fortran Binding Related Problems Fixed 22.2.1 Inquire Color Facilities INQUIRE COLOR FACILITIES now returns valid data for the CIELUV red, green, and blue primaries in the ISO C and Fortran bind- ings. 22.2.2 Inquire Predefined Color Rep The Fortran Binding function INQUIRE PREDEFINED COLOR REPRESENTATION no longer generates an ACCVIO or core dump. 22.2.3 Close PHIGS On OpenVMS, using the Fortran Binding with an error file, the error file might not have always been correctly re-opened after closing PHIGS due to an uninitialized variable. This has been fixed. 22.3 OpenGL Workstation Type Related Problems Fixed 22.3.1 Degenerate Fill Areas Degenerate fill areas and fill area set subareas are no longer drawn with the OpenGL workstation types. This is in accordance with the PHIGS standard. 22.3.2 Edges Edges now work correctly. 22.3.3 Out-of-range Polymarker Type Using the PHIGS OpenGL workstation type, a core dump or ACCVIO would occur if the polymarker type was not in the supported range (26 to -128). This has been fixed. 35 Digital PHIGS Version 5.1 Release Notes 22.3.4 Edges and Culling Edges are culled when a facet is culled using the GL worksta- tion types and the DEC C binding. 22.3.5 Out-of-range Line Types Using the PHIGS OpenGL workstation types, unsupported line types would not be displayed. A solid line is now correctly displayed. 22.3.6 Attributes and Complex Structure Networks Attributes may not have been correct using the PHIGS OpenGL driver when complex structure networks were used. This has been fixed. 22.3.7 Inquire Workstation State Table Lengths The OpenGL workstation types now return zero pattern table length because interior style PATTERN is not supported for displaying filled objects. 22.3.8 Inquire Pattern Facilities The OpenGL workstation types now return zero predefined pattern entries because interior style PATTERN is not supported for displaying filled objects. 22.3.9 Bad Visual Error Message When using the OpenGL workstation types 272 or 273, the appli- cation could get an incorrect error from OPEN WORKSTATION if the X11 visual was invalid. Now error -1525 will be reported. 22.3.10 View Shield Attributes View shield and view borders now display with the correct at- tributes. 22.4 PEX Workstation Type Related Problems Fixed 22.4.1 Pick Highlighting Pick highlighting for user-defined markers on PHIGS PEX work- station types now works correctly. Previously, the "pick high- lighted" marker type used for drawing was not the user-defined value. 36 Digital PHIGS Version 5.1 Release Notes 22.4.2 Quad Mesh Inquire structure element for QUADRILATERAL MESH 3 on PEX work- station types returned swapped values for the X and Y dimen- sions of the array. This problem could also be seen when using 2 PHIGS PEX workstations with different workstation types and posting the same structure to both of them. The second worksta- tion would display the data incorrectly. 22.5 Motif Workstation Type Related Problems Fixed 22.5.1 Fill Area Size Restriction Lifted The restriction that a fill area was required to fit in one X buffer on Motif workstations has been lifted. Formerly, fill areas on these workstations were limited to about 1800 points on OpenVMS systems, and about 8000 points on Digital UNIX sys- tems. Any fill area larger than the limit was simplified by removing points while attempting to minimize the impact on the appear- ance of the fill area. In case you desire the old fill area reduction behavior for performance (or other) reasons, a new environment variable is supported. On OpenVMS systems, issue the following command: $ DEFINE PHIGS$MAX_FILL_POINTS nn On Digital UNIX systems, issue the following command: % setenv PHIGSmax_fill_points nn where "nn" is the maximum number of points you wish to allow before reduction takes place. The new number will be ignored if it is less that the old defaults. 22.5.2 Motif Input, Color Maps Due to a change in the behavior of the DECwindows Motif window manager, the default for the "X INPUT MODEL" for the Motif Motif/PEX and Motif/OpenGL workstation types has been changed to "Local" from "Global". Without this change, aplications may have noticed a loss of keyboard input or inability to have the correct color map installed for the window. The X input model can now also be selected using an environ- ment option. Use one of the values "G", "L", "P", or "N" for "Globally_Active", "Locally_Active", "Passive" or "No_Input" respectively. 37 Digital PHIGS Version 5.1 Release Notes As an example, on OpenVMS systems, issue the following command: $ DEFINE PHIGS$X_INPUT_MODEL "P" As an example on Digital UNIX systems, issue the following command: % setenv PHIGSx_input_model "P" 22.6 Other Problems Fixed 22.6.1 Japanese Text Japanese text now functions correctly again. 22.6.2 Japanese Example File The Japanese example file jphigs_string_fb.for/jphigs_string_ fb.f is now correctly ported to the ISO Fortran binding. 22.6.3 Set Highlighting/Invisibility Filter Set Highlighting Filter and Set Invisibility Filter now cor- rectly ignore name set elements with values less than 0. Highlighting and invisibility filter were incorrectly not reset to NULL when a workstation was closed and re-opened. 22.6.4 Set Workstation Window 2D Set workstation window (2D) no longer changes the Z values for the workstation window. 22.6.5 Change Structure Identifier CHANGE STRUCTURE IDENTIFIER and CHANGE STRUCTURE IDENTIFIER AND REFERENCES no longer generates an ACCVIO or core dump if the original structure does not exist. 22.6.6 Element Search The function ELEMENT SEARCH no longer generates an ACCVIO or core dump. 22.6.7 Edge Type Error Checking Entering an invalid edge type in the SET EDGE REPRESENTATION function will correctly generate a PHIGS error. 38 Digital PHIGS Version 5.1 Release Notes 22.6.8 Inquire Bundle Representation with REALIZED type flag INQUIRE LINE REPRESENTATION, INQUIRE MARKER REPRESENTATION, INQUIRE TEXT REPRESENTATION, INQUIRE EDGE REPRESENTATION, INQUIRE INTERIOR REPRESENTATION and INQUIRE COLOR REPRESENTATION were incorrectly returning an error when the bundle index was not defined and the return type flag was REALIZED. The values for bundle index 1 are now returned in this case. 22.6.9 Set Conflict Resolution SET CONFLICT RESOLUTION no longer generates an ACCVIO or core dump if it is used while PHIGS is closed. 22.6.10 Allow Empty Archive File OPEN ARCHIVE FILE now allows the file to exist but be empty. Previously this would have caused PHIGS to complain that the archive file was an invalid Digital PHIGS format. 22.6.11 Error Return Value Many functions were incorrectly returning the "structure not open" or "workstation not open" errors when they should have been returning the "PHIGS not open" error. This has been fixed. 22.6.12 Inquire Conflicting Structures/Networks INQUIRE ALL CONFLICTING STRUCTURES and INQUIRE CONFLICTING STRUCTURE NETWORKS no longer call the PHIGS error logging fa- cility. They set the error argument instead. 22.6.13 Inquire Paths to Ancestors/Descendants INQUIRE PATHS TO ANCESTORS and INQUIRE PATHS TO DESCENDANTS now report error 207 when the requested path depth is negative. Also with the above functions, a non-truncated path consisting of the single specified structure is now no longer returned. This change was prompted by the resolution of a defect report in the PHIGS standard. 22.6.14 Inquire Predefined Pattern Representation INQUIRE PREDEFINED PATTERN REPRESENTATION now returns the cor- rect error value of 112 when the pattern index is negative. 39 Digital PHIGS Version 5.1 Release Notes 22.6.15 Inquire Predefined View Representation INQUIRE PREDEFINED VIEW REPRESENTATION now correctly reports error 102 when the predefined view representation does not exist. 22.6.16 Modeling Utility Functions The PHIGS modeling utility functions (ROTATE, SCALE, etc.) now correctly set the error indicator argument instead of calling the PHIGS error logging facilities. 22.6.17 Post Structure Error Checking The POST STRUCTURE functions now correctly report error 208 when an out of range display priority is used. 22.6.18 Inquire View Indices PHIGS will no longer return an error value for INQUIRE VIEW INDICES when the function is passed an array too small to re- turn the entire list. It now returns as much of the list as fits into the array. 22.6.19 Text Height and Expansion Factor For the PHIGS OpenGL and Motif workstation types, the absolute value of the text height and text expansion factor is now used instead of using a negative value. The PEX workstation types still use the old incorrect behavior. Additionally, for character and string precision, the realized character expansion factor is the absolute value of the set value and is clamped between the minimum and maximum expansion values allowed by the workstation. The above applies to both text and annotation text. 22.6.20 Archiving: MAINTAIN In archiving and retrieval, conflict resolution mode MAINTAIN (PRES_MAINTAIN) is handled correctly now. 22.6.21 Archiving: ABANDON In RETRIEVE STRUCTURE NETWORKS, conflict resolution mode ABANDON (PRES_ABANDON) is handled correctly now. 40 Digital PHIGS Version 5.1 Release Notes 22.6.22 Delete Structure DELETE STRUCTURE now works correctly when the structure being deleted is the currently open structure, or when it is the most-recently closed structure. When deleting an open structure, DELETE STRUCTURE, DELETE ALL STRUCTURES, and DELETE STRUCTURE NETWORKS now correctly leave behind an empty, open structure. 22.6.23 Delete Structure Networks DELETE STRUCTURE NETWORKS now works correctly when the refer- ence handling flag is set to KEEP and some of the structures in the network are referenced from outside the network. 22.6.24 User Defined Error Handler The user defined error handler can be defined and used before PHIGS is open. 22.6.25 Error File Before PHIGS is Opened If an error occurs before PHIGS is open, the default output file is used as the error file. This is "SYS$OUTPUT" on OpenVMS and "/dev/tty" on Digital UNIX. 22.6.26 Unsupported Workstation Type Check The validity of the workstation type is checked during open workstation. If the workstation type is not in the supported list, the correct error is generated. Previously, PHIGS at- tempted to load the workstation and generated a less meaningful error message. 22.6.27 Error Checking on Line, Marker Types, etc. Validity tests for line types, marker types, edge types, fonts, etc. are now performing as expected. In agreement with the standard, if STROKE precision is sup- ported for a font, it implies that STRING and CHARACTER preci- sions are also supported for that font. Similarly, if CHARACTER precision is supported for a font, it implies that STRING pre- cison is also supported for that font. 41 Digital PHIGS Version 5.1 Release Notes 22.6.28 Cell Array Dimensions The dimensions of the colour array for cell array primitives (2/3) now have to be at least equal to one. This is a change prompted by the resolution of a defect report in the PHIGS standard. 22.6.29 Set Workstation Viewport The workstation viewport extents are checked for validity be- fore setting the viewport. 23 Problems Fixed in Digital PHIGS Version 4.0 23.1 Locator Input Position A problem with locator returning the incorrect input position has been fixed. This problem occurred with a non-zero based window and a non-zero based echo area. 23.2 Painter's Picking A problem involving the output of degenerate primitives while using the Painter's Picking HLHSR algorithm on Motif work- station types has been fixed. The problem occurred when a primitive became degenerate due to its position on the screen. 42 Digital PHIGS Version 5.1 Release Notes 24 Problems Fixed in Digital PHIGS Version 3.2 24.1 ACCVIO/Core Dump on Delete All Structures An access violation or segmentation fault resulting from using DELETE ALL STRUCTURES function with multiple workstations has been fixed. 24.2 Binary CGM on Digital UNIX CGM Binary formatted output on Digital UNIX produced a cor- rupted file. This has been fixed. 25 Problems Fixed in Digital PHIGS Version 3.1 This section describes the problems corrected in the Digital PHIGS Version 3.1 release. 25.1 Linking with Old Fortran Binding Use of the old Fortran Binding library would result in an unde- fined symbol. This has been fixed. 25.2 Using LUN with Fortran Binding Open Workstation A bug with the use of Fortran Logical Unit Numbers and the Fortran Binding function Open Workstation has been fixed. 25.3 Motif X11 Fonts and DPI A bug that allowed all X11 fonts of any DPI to be used has been fixed. Now only fonts with a DPI matching the screen will be used. 25.4 Include Structure ACCVIO or SegFault A bug with the use of the Include Structure function and multi- ple PHIGS workstations that would cause an ACCVIO or SegFault has been fixed. 26 Problems Fixed in Digital PHIGS Version 3.0 This section describes the problems corrected in the Digital PHIGS Version 3.0 release. 43 Digital PHIGS Version 5.1 Release Notes 26.1 Memory Corruption in Motif Device Handler A single extra byte was being written past the end of an allo- cated array. This could cause several different problems and it has been fixed. 26.2 PostScript Description File Fixed Use of the PostScript Device Handler description file would cause an arithmetic fault on OpenVMS Alpha when using IEEE floating point arithmetic. This has been fixed. 26.3 PEX Drawable to an X11 window Fixed Use of the PEX drawable workstation type (242) to an X11 window has been fixed. 44 Digital PHIGS Version 5.1 Release Notes 27 Known Problems This section lists the known problems with this release of Digital PHIGS. 27.1 General Problems This section lists the general problems known to be present in this release. 27.1.1 Painter's HLHSR Method Not Accurate Enough Due to limitations in the basic HLHSR algorithm known as "Painter's", objects that intersect each other in Z value may not be displayed in the correct order resulting in an incorrect picture. This is only a problem with non-PEX and non-OpenGL workstation types. With PEX and OpenGL workstation types, the better HLHSR algorithm known as "Z Buffering" is available and produces the correct picture. 27.1.2 Opening a PEX Workstation in a Multihead Environment In a multihead environment in which there is an HX head and a PEX-capable head such as a ZLX-M2 or a ZLX-E2, PHIGS does not properly report that a PEX workstation cannot be opened on the HX head. If you try to open a PEX workstation on the HX head in such an environment, you see the following error: X Error of failed request: BadDrawable (invalid Pixmap or Window parameter) Major opcode of failed request: 139 (X3D-PEX) Minor opcode of failed request: 7 (PEX_GetTableInfo) Resource id in failed request: 0x0 Serial number of failed request: 136 Current serial number in output stream: 136 27.1.3 Inquire Extended Polyline Facilities Function With workstation type 241, the C binding function INQUIRE EXTENDED POLYLINE FACILITIES returns an unusual result. The s_ actual_size is 2, but both the entries in shadmethods.integers are 0, which do not correspond to any defined shading method. 45 Digital PHIGS Version 5.1 Release Notes 27.1.4 Partial Repair of Exposure Events For workstation types 23x, and 24x, Digital PHIGS attempts to repair an exposure event by redrawing just the exposed region. Because of the interaction of PHIGS and DECwindows clipping, some primitives may be only partially redrawn. These primitives are STRING and CHARACTER precision text, HOLLOW area primitives (fill areas, fill area sets, and so on), and polymarkers. In addition, some primitives may be drawn slightly differently: nonsolid lines may show a pattern shift, as may area primitives drawn with HATCH interior style. A suggested workaround for this problem is to run with double buffering (pixmap) enabled. In this case, exposure events are repaired from the double buffer and are not subject to these clipping problems. On workstation type 23x devices, some of these problems will not be seen if the Painter's sort HLHSR method is enabled (using SET HLHSR IDENTIFIER). 27.1.5 Picking Accuracy For the TEXT and other PHIGS PLUS primitives, Digital PHIGS uses the primitive extent when testing for a pick hit. This is not a problem for PEX or OpenGL workstations. 27.1.6 Pick Highlighting and View Clip Limits When objects are highlighted, Digital PHIGS ignores the clip limits of overlaying views. 27.1.7 Update Following View Priority Change For workstation type 232, an UPDATE WORKSTATION following a view priority change may result in a single row of pixels from an occluded, lower-priority view remaining visible. 27.1.8 Edges with Painter's HLHSR Algorithm The Painter's algorithm sorts edges and their associated fill areas as separate entities, so edges may be drawn behind the fill area. 27.1.9 Pick Highlighting and Structure Editing You cannot use pick highlighting when the application is in a tight loop editing a Digital PHIGS structure. 46 Digital PHIGS Version 5.1 Release Notes 27.1.10 Color Highlighting with Painter's HLHSR If you use one of the Painter's HLHSR modes (PAINTER or AVERAGE_Z), color highlighting only works when the edge flag is ON. 27.1.11 Workstation Type 240 When the PHIGS viewport is set to the maximum display space size, the window is positioned with window controls off-screen. 27.2 PEX Problems This section lists known problems with Digital PHIGS and PEX. 27.2.1 NURBS With Trimming Loops If trimming loops are included with NURBS that are eventually written to an archive file, an XError may occur. 27.3 Motif Problems This section lists known problems with Digital PHIGS Motif workstation types. 27.3.1 Unpredictable Highlight Color on Motif When highlighting an object or echoing input, the color used by complement mode drawing may not be ideal on some color work- stations. The complement of color 0 (background) will always be visible, but other colors may not always complement to a suitably contrasting color. 27.3.2 Quick Update with Colors Per-Facet Quick updates of output primitives with color per-facet or color per-vertex data is not working for workstation type 231. The color for back-facing facets is not displayed correctly. 27.3.3 Choice Input Choice input may cause a redraw of the PHIGS window for each request choice, if the choice menu overlaps the PHIGS window. 47 Digital PHIGS Version 5.1 Release Notes 27.3.4 CLOSE Option Using the CLOSE option on the title bar kills the application. Currently there is no workaround to this problem. 27.3.5 String Input Device 3 Trigger Problems String input device number 3 (ASCII) with echoing ON does not trigger on each character as it does in NOECHO mode. 27.3.6 Choice Device Problems Choice devices 2, 3, 4, and 5 with echoing ON respond to their respective keyboard and mouse buttons, as well as selection from the menu with the mouse. They should only respond to the keyboard. 27.3.7 Choice Device 9 Choice device 9 with NOECHO appears to have no possible trig- ger. Choice device 9 with echo ON will trigger with any mouse movement over the window region. 27.3.8 RESET Button Style Guide Conformance Problems The RESET button is an item in the menu bar. This is incorrect for Motif style guide conformance, which requires the button to be an item in a pulldown menu with the name of the pulldown menu listed in the menu bar. This will be addressed in a future release. 27.3.9 Repair After Choice Menu Teardown on Digital UNIX If the application does an immediate explicit regeneration (REDRAW ALL STRUCTURES or UPDATE WORKSTATION) following a se- lection of the choice device, the repair of a region vacated by a pop-up choice device may not be done correctly. This problem occurs only on Digital UNIX systems. 48 Digital PHIGS Version 5.1 Release Notes 28 ISO Fortran Binding Restrictions The following are restrictions in the Digital PHIGS ISO Fortran binding. Most of these restrictions are planned to be removed for the next release. 28.1 Transparency coefficient The transparency coefficient is part of the front and back face reflectance property data record. When packing a reflectance property data record, you can set the Digital specific trans- parency coefficient by adding an extra floating point number to the REAL array. If you are using the indirect color model for the specular color, then you can put the transparency coef- ficient in the fifth real (RA(5)) or if you are using the RGB color model then you can put the transparency coefficient in the eighth real (RA(8)). Also when unpacking the reflectance property data record, the transparency coefficient will be returned in the fifth and the eighth real, for indirect and RGB color models, respectively. 28.2 Edge Data Ignored on Quadrilateral Mesh 3, Triangle Strip 3 With Data Digital PHIGS does not currently support edges for Quadrilateral Mesh 3 and Triangle Strip 3 With Data primitives. All edge data passed in the call will be ignored and will not be returned by an element content inquiry. 28.3 Data Mapping Data Ignored on All Surface Primitives Digital PHIGS does not currently support data mapping data for any surface primitives. All data mapping data passed in the surface primitive calls will be ignored and will not be returned by an element content inquiry. 28.4 Digital Extensions to Curve Approximation Criteria The only supported curve approximation types are Digital spe- cific. Below are the Digital specific constants defined in phigs_for_bnd_consts.f/phigs_for_bnd_consts.for o DCSDCA - constant subdivision (non-PEX only) takes one inte- ger which is "count" o DIDCA - implementation dependent (PEX and OpenGL only) takes one float which is "approximation value" 49 Digital PHIGS Version 5.1 Release Notes 28.5 Digital Extensions to Surface Approximation Criteria The only supported surface approximation types are Digital specific. Below are the Digital specific constants defined in phigs_for_bnd_consts.f/phigs_for_bnd_consts.for. o DCSDSA - constant subdivision (non-PEX only) takes two inte- gers which are "u count" and "v count" o DIDSA - implementation dependent (PEX and OpenGL only) takes two floats which are "u approximation value" and "v approxi- mation value" 50 Digital PHIGS Version 5.1 Release Notes 29 ISO C Binding Restrictions The following are restrictions in the Digital PHIGS ISO C bind- ing. Most of these restrictions are planned to be removed for the next release. 29.1 Edge Data Ignored on Quadrilateral Mesh 3, Triangle Strip 3 With Data Digital PHIGS does not currently support edges for Quadrilateral Mesh 3 and Triangle Strip 3 With Data primitives. All edge data passed in the call will be ignored and will not be returned by an element content inquiry. 29.2 Data Mapping Data Ignored on All Surface Primitives Digital PHIGS does not currently support data mapping data for any surface primitives. All data mapping data passed in the surface primitive calls will be ignored and will not be returned by an element content inquiry. 29.3 NURBS Surface Not Implemented The NURBS Surface primitive is not yet available through the ISO C binding. 30 Known Restrictions This section describes the known restrictions for this release of Digital PHIGS. 30.1 General Restrictions This section lists the general restrictions for this release of Digital PHIGS. 30.1.1 Escape Restrictions Some of the Motif-, OpenGL- and PEX-specific escapes use long and pointer data types. On OpenVMS and Digital UNIX systems, Digital PHIGS passes this information as integers, because integers, longs, and pointers are all 32-bits wide. On Digital UNIX systems, longs and pointers have been defined as 64-bits wide, while integers remain 32-bits wide. To accommodate this difference, the Digital PHIGS escape record used by the PHIGS$ 51 Digital PHIGS Version 5.1 Release Notes and C bindings has been expanded to include arrays of longs and pointers. Unfortunately, there is no way to pass this data through the packed data record used by the Fortran binding while maintain- ing the order of the data. Customers who want to call these escapes from Fortran must use the PHIGS$ binding entry point "phigs$escape" instead of the Fortran "pesc" function. Be sure to use the DEC Fortran SIZEOF() function when determin- ing the size of the escape data record. There may be padding in the data structure that is not obvious when looking at the structure. The affected escapes are as follows: -304 Inquire Window Identifiers -307 Inquire Pasteboard Identifier -308 Inquire Menu Bar Identifier -309 Inquire Shell Identifier -501 Set Background Pixmap -502 Inquire Double Buffer Pixmap -503 Inquire Background Pixmap -511 Set Plane Mask -512 Set Marker Pattern -513 Inquire Double Buffer Buffers -516 Inquire Closest Color 30.1.2 Default Workstations Do not specify workstation types 232, 233, 242, 243, 272, or 273 as the default workstation type using the logical name PHIGS$WSTYPE or the environment variable PHIGSwstype on the command line. When the application calls OPEN PHIGS, Digital PHIGS opens a workstation of the default type. If the value of the logical name PHIGS$WSTYPE or the environment variable PHIGSwstype is 232, 242 or 272, the value of the PHIGS$CONID logical name or PHIGSconid environment variable must be a valid window or pixmap identifier. If PHIGS$WSTYPE or PHIGSwstype is 233, 243 or 273, PHIGS$CONID or PHIGSconid must specify a valid toolkit widget. If the connection identifier is not a valid window, pixmap, or widget, an ACCVIO or Segfault will occur. The only way to guarantee that the connection identifier is valid for worksta- tion types 232, 233, 242, 243, 272, or 273 is to set it in your application using the putenv or LIB$SET_LOGICAL calls. 52 Digital PHIGS Version 5.1 Release Notes See the Device Specifics Reference Manual for DEC GKS and DEC PHIGS for more information on the connection identifier re- quirements for these workstation types. 30.1.3 NURBS Curves and Surfaces for Quick Update Mode You cannot use quick update methods for NURBS curves and sur- faces. 30.1.4 Trim Curve Approximation Criteria Digital PHIGS uses the curve approximation criteria to control tessellation of trim curves. Trim curve approximation criteria in interior bundles are ignored. 30.1.5 Using Direct Colors in Quick Update Mode When running on any device other than device type 24x or 27x, if lighting or depth cueing is being used, and you need a new color in quick update mode, the primitive that needs the new color will be drawn with color 1. The problem is that Digital PHIGS has used up all available color map entries to provide as much color resolution as pos- sible for the lighted and depth-cued objects. There is no room left in the color map to add the new color, so Digital PHIGS draws the object needing the new color in color 1. There are two suggested workarounds for this problem. The first workaround is to perform an UPDATE WORKSTATION. Digital PHIGS then allocates the needed colors. A second workaround is to force Digital PHIGS to put all colors that will be needed in the future into the color table. You can do this by drawing something (for example, a dot) in each required color. You can position these objects off the visible portion of the screen. 30.1.6 Direct Color and Shading Attributes in Immediate Mode In immediate mode with device types 23x, Digital PHIGS ignores shading and direct color attributes. However, Digital PHIGS processes structure mode attributes correctly. Non-PEX Motif workstation types cannot use direct color or shading attributes in immediate mode because Digital PHIGS can- not do a pretraversal of structures to determine color ramps. 53 Digital PHIGS Version 5.1 Release Notes 30.1.7 Highlighting in Immediate Mode Digital PHIGS does not support highlighting in immediate mode for non-PEX workstation types. 30.1.8 Indexed Colors and Lookup Tables When an application calls the functions SET DEPTH CUE REPRESENTATION and SET LIGHT REPRESENTATION, Digital PHIGS copies the RGB values associated with the color index into the bundle table instead of the color index. A later change to RGB values of the color index does not affect these two functions. 30.1.9 Ada Language Restrictions Floating-point output parameters to Digital PHIGS inquiry func- tions should be initialized to some value before making the function call. This prevents a possible reserved operand fault if Digital PHIGS reports an error in the error parameter of the function. If the inquiry call fails, the other parameters might have values that are not initialized and are left undefined. Ada copies these invalid values back to the original variable, causing a reserved operand fault. Applications using Ada tasks should make sure that all Digital PHIGS calls are performed from the same Ada task or that proper synchronization is done. 30.1.10 POST TO VIEW and Changing View Representations When using the POST TO VIEW function, some view representation changes automatically force all views to be marked "dirty". If a view is marked dirty, it will be regenerated on the next display update. The changes that force views to be marked dirty are as follows: o Changing the clip state from ON to OFF o Changing the shield indicator from ON to OFF (PEX worksta- tions only) o Changing the clipping limits of the view o If the display updates are deferred (for example, the dis- play update state is WAIT, NIVE), changing the view active status from ACTIVE to INACTIVE Note that if the display updates are not deferred (the display update state is ASAP, *), changing the view status from ACTIVE to INACTIVE forces an immediate regeneration of the deactivated view region. Digital PHIGS does not regenerate any structures outside the deactivated view region. 54 Digital PHIGS Version 5.1 Release Notes When a structure is posted to view 0 (the view used when POST STRUCTURE is called), all views will be marked dirty dur- ing any call to SET VIEW REPRESENTATION or SET EXTENDED VIEW REPRESENTATION. 30.1.11 Calling PHIGS$OPEN_PHIGS from Fortran When using the PHIGS$ binding OPEN PHIGS call (PHIGS$OPEN_ PHIGS) from Fortran, Digital PHIGS does not accept 0 in the error file argument. You must use a non zero length string for the argument. 30.2 General Device Restrictions This section lists the general device restrictions in this release of Digital PHIGS. 30.2.1 Bundle Tables and CGM Workstations Bundle tables are not currently supported for CGM device types. Digital PHIGS ignores all SET INDIVIDUAL ASF elements in struc- tures posted to CGM workstations. 30.2.2 Planes Orthogonal to the View Plane For Motif, OpenGL and PEX workstation types, lines and planes that are oriented 90 degrees to the view plane will not be visible. This is a restriction of these device types. If your application would like to pick lines and planes oriented in this way, you might be able to work around this problem by us- ing an extent highlight for Motif devices, or using perspective instead of parallel projection. 30.3 PEX Device Restrictions This section lists the PEX device restrictions in this release of Digital PHIGS. 30.3.1 PEX Workstation NURB Approximation and Trimming Methods PEX workstations support the following NURB approximation and trimming methods: o PPSURF_IMP_DEP o PPCURV_IMP_DEP o PPTRIM_IMP_DEP 55 Digital PHIGS Version 5.1 Release Notes For each of these methods, the approximation value is a floating-point value that specifies the smoothness of the curve or surface. The lower the value, the smoother the curve or sur- face. Extremely low values may seriously degrade performance or crash the server. A typical value is 0.3. 30.3.2 PEX Highlight Methods PEX workstations support only forced color highlighting. 30.3.3 Quadrilateral Mesh Edges in Quick Update Mode If quadrilateral mesh edges are enabled on workstation type 24x while in quick update mode, those edges might not be completely erased when the primitive is deleted or redrawn. 30.3.4 Trimming Curves For NURB surfaces on PEX workstations, the outermost trimming curve must be oriented counterclockwise in uv-parameter space. If you want to view a surface with a hole in it, currently you must have one trim loop, oriented counterclockwise, that cor- responds to the entire uv-parameter space boundary. You then specify a second trim loop with a clockwise orientation that delineates the hole. Note that in this case, the outermost trim loop can lie outside a surface's domain, provided that the re- gion interior to the trim loop wholly contains the domain. The current trim loop processor will perform the proper clipping to a surface's domain. 30.4 Motif Device Restrictions This section lists the Motif device restrictions in this re- lease of Digital PHIGS. 30.4.1 Pick Echo Areas and RESIZE ZOOM Set to 1 When you change the size of the PHIGS workstation window and RESIZE ZOOM is set to 1 ("rubber sheet" behavior), the sizes of the echo areas for all pick devices are unaffected. This means that echo areas set for the original window may not be appropriate for the newly sized window. Applications that use workstation types 2x3 can work around this problem by reini- tializing their pick devices after each resize event. 56 Digital PHIGS Version 5.1 Release Notes 30.4.2 Menu Bar, Border Size, and Title Size Warnings If you are using the Motif workstation types, you may see the following messages when running applications: Digital PHIGS - 'MENU BAR SIZE' attribute incorrect: use "DEFINE PHIGS$DECW_MENU_BAR_SIZE 30" and restart application." Digital PHIGS -'BORDER SIZE' attribute incorrect: use "DEFINE PHIGS$DECW_BORDER_SIZE 16" and restart application." Digital PHIGS -'TITLE SIZE' attribute incorrect: use "DEFINE PHIGS$DECW_TITLE_SIZE 17" and restart application." Digital PHIGS makes some assumptions about the size of the window manager borders, the title bar, and the application menu bar, based on which window manager is running and the screen resolution. Digital PHIGS uses these values to calculate the maximum display space remaining for the application to use. If for some reason these assumptions are not correct, Digital PHIGS displays the messages listed. Digital suggests that you follow the instructions and restart the application. Failure to do so can result in the following types of problems: o The default positioning will not be correct. o The application window may not fill the screen (if re- quested). o The RESET button may not properly reset the window to the correct location and size. o Scroll bars may be displayed when using the default window size. o Resizing the window may result in parts of the graphic out- put being clipped. Digital does not consider these messages and the user actions required to correct them to be a long term solution. We are continuing to work with the Open Software Foundation (OSF) to develop a better solution. 30.4.3 Environment Option Font Path Currently, the environment option FONT PATH (for string preci- sion text) is not supported on Motif workstation types. 57 Digital PHIGS Version 5.1 Release Notes 30.4.4 PHIGS Window Appears in Deiconified State For the PEX/Motif input and output workstation type (241), when the PHIGS window first appears on the screen, it appears in a deiconified state. This was done to work around some in- teraction problems between Digital PHIGS and the Motif window manager. In future versions, Digital PHIGS may change so that when the PHIGS window first appears, it appears in an iconified state. 30.4.5 No Support for Non-Digital Keyboard KEYSYMs There is currently no support for non-Digital keyboard KEYSYMs. 30.4.6 Correct Behavior on Window Resize and Reset For workstation types 230, 231, 241, and 271, you must set the title, border, and menu bar so no warnings are issued by Digital PHIGS during program startup. This is important if you resize the PHIGS window or activate the reset button on the PHIGS window. See Section 30.4.2 for more information. 58 Digital PHIGS Version 5.1 Release Notes 31 Documentation Notes The following sections describe changes in the documentation that occurred after the manuals were printed. 31.1 General Notes This section describes information missing from two or more of the manuals, NURBS It is important to note that PEX specifies 2D arrays as C ar- rays (row-major). When you need a non-rational curve or surface, you specify the control points using Euclidean (i.e. real world) coordi- nates. However, when a rational curve or surface is required, PHIGS expects the control points to be specified in homogeneous coordinates. You must convert the Euclidean (x, y, z) coordinates to homoge- neous coordinates before passing them to PHIGS. You should use some code similar to the following: PPpoint4 ctl_pts4[NUM_PTS]; /* Homogeneous coordinates */ Ppoint3 ctl_pts_euc[NUM_PTS]; /* Euclidean coordinates */ . . . for( i = 0; i < NUM_PTS; i++ ) { ctl_pts4[i].x = ctl_pts_euc[i].x; ctl_pts4[i].y = ctl_pts_euc[i].y; ctl_pts4[i].z = ctl_pts_euc[i].z; ctl_pts4[i].w = 1.0F; } Quick Updates When you use UQUM modification mode, if you insert any of the following structure elements, the state of visual representa- tion is changed to DEFERRED: o Nonuniform B-spline Curve o Nonuniform B-spline Surface o Set HLHSR Mode o Set Edge Representation o Set Extended Edge Representation 59 Digital PHIGS Version 5.1 Release Notes o Set Extended Interior Representation o Set Extended Polyline Representation o Set Extended Polymarker Representation o Set Extended Text Representation o Set Extended View Representation o Set Extended View Representation 3 o Set Interior Representation o Set Polyline Representation o Set Polymarker Representation o Set Text Representation o Set View Representation o Set View Representation 3 o Set Workstation Viewport o Set Workstation Viewport 3 o Set Workstation Window o Set Workstation Window 3 Inserting, deleting, and replacing the following attributes cause quick update traversal of the structure: o Set Edge Colour o Set Edge Colour Index o Set Interior Colour o Set Interior Colour Index o Set Polyline Colour o Set Polyline Colour Index o Set Polymarker Colour o Set Polymarker Colour Index o Set Text Colour o Add Names to Set o Remove Names from Set Color PHIGS allocates 3 pools of colors on PEX workstations, called fixed, true, and pseudo. The fixed colors are used for window- ing system items, such as borders. PHIGS generally allocates 6 color cells for use with the window system. You should not have to change this. The true colors are used to create a color cube. You can con- trol the number of reds, greens, and blues that PHIGS allocates for each side of the color cube. To figure out the total number of colors allocated for the true colors, multiply the values 60 Digital PHIGS Version 5.1 Release Notes together. For example, the default color cube used by PHIGS is 8 reds, 4 greens, and 4 blues, or 8 * 4 * 4 = 128 color cells. The pseudo colors are used to create color ramps and direct colors. They are described in some detail in Chapter 13 of the binding manuals. 32 Trademarks The following are trademarks of Digital Equipment Corporation: AXP, DDIF, DECwindows, DECwrite, DEC Ada, DEC PHIGS, LA324, LJ250, ReGIS, VAXstation, VT125, VT240, VT330, VT340, and the Digital logo. The following are third-party trademarks: Denali is a trade- mark of Kubota Pacific Computer, Inc. Hewlett-Packard, HP-GL, PCL, and LaserJet are registered trademarks of Hewlett-Packard Company. Motif and OSF/Motif are registered trademarks of Open Software Foundation, Inc. MPS-2000 is a trademark of LaserGraphics, Inc. PostScript is a registered trademark of Adobe Systems, Incorporated. TEKTRONIX is a registered trade- mark of Tektronix, Inc. 61