Release Notes for DIGITAL GKS[TM] 6.5 on DIGITAL UNIX[TM] Platforms 15-March-1997 Copyright © 1997 by Digital Equipment Corporation DIGITAL Digital Equipment Corporation Maynard, Massachusetts CONTENTS Preface............................................... v 1 Product Summary...................................... 1 1.1 Release Description............................... 1 1.2 Release History................................... 2 1.3 Operating System Support.......................... 2 1.4 Motif Version 1.2 Support......................... 2 2 Changes for Alpha AXP Systems........................ 3 2.1 Changes to Escapes................................ 3 2.1.1 Affected Escapes............................... 4 2.1.2 How to Use the New Format...................... 13 2.1.3 Documentation Changes.......................... 13 3 Installation Notes................................... 14 4 Enhancements......................................... 15 4.1 Metafile Header Format Change..................... 15 4.2 NIST Certification................................ 15 4.3 Operating System Specific documentation updated... 16 4.4 New Locator PET: -14, Device Coordinates in Raster Units............................................. 16 4.5 New Escape: Set Fill Simplification Method........ 17 4.6 New Escape: Hit Test.............................. 18 4.7 X11R5 Scalable Font Support....................... 20 4.8 Inquire DBuffer Pixmap & Inquire Background Pixmap supported......................................... 20 4.9 New Environmental Controls........................ 20 4.9.1 GKSfill_simplify_method / GKScomplex_fill_method......................... 20 4.9.2 GKShatch_simulation............................ 20 4.9.3 GKSvisual_class................................ 20 4.9.4 GKSx_input_model............................... 21 4.10 Metafile Logging................................. 22 4.11 Unification of GKS and GKS/Japanese.............. 22 4.12 Sample User-Written Device Handler............... 23 4.13 New Escape: Inquire Version...................... 24 4.14 HP LaserJet[R] II Support........................ 26 4.15 Full Device Support on Alpha Platforms........... 26 4.16 New Entrypoints in GKS$/GKS3D$ Bindings.......... 26 4.17 Ada Support...................................... 28 4.18 Pascal Support................................... 29 4.19 PEX Support...................................... 29 4.20 Encapsulated PostScript.......................... 30 4.21 ISO-Latin1 Character Support..................... 30 iii 4.22 Motif Support.................................... 30 4.22.1 Using Motif Window Manager Resources.......... 30 4.22.2 GKS Motif Problems............................ 31 4.22.3 Avoiding Window Problems...................... 31 5 Areas of Nonconformance.............................. 33 5.1 Initial Input Prompt Position for STROKE and LOCATOR........................................... 33 6 Restrictions......................................... 34 6.1 General Restrictions.............................. 34 6.1.1 Output Drawing Performance Degradation......... 34 6.1.2 Line Cap Style................................. 34 6.1.3 Limitation with STRING Precision Text Strings.. 34 6.1.4 Fill Area Set.................................. 34 6.1.5 Fill Area and Fill Area Set.................... 34 6.1.6 Fill Area Interior Style Pattern............... 34 6.1.7 GDP Restricted Text............................ 35 6.1.8 Widget Callback Procedure Name and Motif....... 35 6.1.9 Motif Workstation Types........................ 35 6.1.10 Fill Areas-SIZE RESTRICTION REMOVED........... 35 6.1.11 Copying DDIF Files from DIGITAL UNIX or ULTRIX to OpenVMS.................................... 35 6.1.12 Writing To VT330 or VT340 Devices............. 36 6.1.13 Text Path LEFT on Tektronix-4207 Terminals.... 36 6.1.14 Ada[TM] Language Restrictions................. 36 6.1.15 Multitasking.................................. 36 6.2 UNIX-Specific Restrictions........................ 36 6.2.1 Using the Debugger............................. 36 6.2.1.1 dbx command line option -noproc............. 36 6.2.1.2 dbx command "ignore" may be required........ 37 7 Fixed Problems....................................... 38 7.1 Problems fixed since V6.4......................... 38 7.1.1 Crash when Clipping Complex Fill Area.......... 38 7.1.2 String Input from Keypad....................... 38 7.1.3 Dot Polymarkers on HPGL Devices................ 38 7.1.4 UNIX-Specific Problems Fixed................... 38 7.1.4.1 Hang with Input on Dual-CPU UNIX 4.0 Systems 38 7.1.4.2 Hang if Mouse Button 2 Clicked on Pushbutton 38 7.1.4.3 Path to System-Wide .GKSdefaults File....... 38 7.1.4.4 Memory Leak on Error Path................... 39 7.1.4.5 Warnings during Compilation of gks3d_defs.ada, gksdefs.ada................. 39 7.1.5 Metafile Read Item with Maximum Record Length = Zero........................................... 39 iv 7.2 Problems fixed since V6.3......................... 39 7.2.1 Picking DOT Polymarkers........................ 39 7.2.2 String and Choice Devices simultaneously active in Event Mode.................................. 39 7.2.3 Choice Device 3 and Widget Workstations (233, 243)........................................... 39 7.2.4 GQHRF (Inquire HLHSR Facilities)............... 39 7.2.5 Set Segment Detectability on Small Segment..... 39 7.2.6 Small Text..................................... 40 7.3 Problems fixed since V6.2......................... 40 7.3.1 Fill Area Size Restriction Lifted on Motif Workstations................................... 40 7.3.2 Hit Test with Stroke Precision Text or Polylines...................................... 40 7.4 Problems fixed since V6.1......................... 40 7.4.1 Complex Fill Areas............................. 40 7.4.2 String Input on Tektronix Terminals............ 40 7.5 Problems fixed since V6.0......................... 41 7.5.1 Degenerate thick lines......................... 41 7.5.2 Status from Get Pick in Dynamic Environment.... 41 7.5.3 String Precision Text on Regis Terminals....... 41 7.5.4 Input on Regis Terminals....................... 41 7.5.5 Crash with Small Text.......................... 41 7.5.6 Choice/Keyboard Input Sometimes Not Recognized. 41 7.5.7 Deleting Segments on Regis Terminals........... 41 7.5.8 Fortran Binding / Open Workstation............. 41 7.6 Problems fixed since V5.3......................... 41 7.6.1 Metafile Changes............................... 42 7.6.2 Color PostScript Cell Array.................... 42 7.6.3 Text Extents with PostScript Courier Fonts..... 42 7.6.4 CGM Polylines/markers Broken up into Multiple "Line"/"Marker" Commands....................... 42 7.6.5 CGM and DDIF Text Always Stroked............... 42 7.6.6 Out of Memory When Drawing GDPs in High-Precision CGM............................. 42 7.7 Problems fixed since V5.2......................... 43 7.7.1 Three-Point Arc GDPs Sometimes Not Drawn Correctly...................................... 43 7.7.2 Graphics Not Redrawn on Terminals After Choice Menu Erased.................................... 43 7.7.3 144 DPI Now Works on Sixel Devices............. 43 7.7.4 WISS Device Lost ASFs.......................... 43 7.7.5 Line Style / Line Join Problem on LJ250........ 43 7.7.6 License Invalid................................ 43 7.7.7 View Input Priority and Locator 3/String 3 Input.......................................... 43 7.7.8 PostScript and ISO Encoding.................... 43 v 7.7.8.1 Crash with Font -101 and Characters with Eighth Bit Set.............................. 43 7.7.8.2 Bad Text Extents with Font -103............. 43 7.7.9 Crash with Soft Clipping, Stroke Precision Text followed by Polyline........................... 44 7.7.10 Inquire Shell/Pasteboard/Menu Bar ID Escapes.. 44 7.7.11 Font Memory Not Freed......................... 44 7.7.12 Reading and Writing 2-D Metafiles............. 44 7.7.13 Text Extents on workstation 23x............... 44 7.7.14 Error File specified in Open GKS.............. 44 7.7.15 Coordinate Display with Locator PET -11....... 44 7.8 Problems fixed since V5.1......................... 44 7.8.1 Workstation Size and Position on workstation 23x............................................ 44 7.8.2 Workstation Viewport Positioning on workstation 23x............................................ 44 7.8.3 Clipping on workstation 23x.................... 45 7.8.4 Incorrect Error Return from Set Pattern Representation................................. 45 7.8.5 Metafile Output of Segments under Non-Identity Transform...................................... 45 7.8.6 Floating Overflow in Select Transform.......... 45 7.8.7 Infinite Loop after Calls to Set Color Representation................................. 45 7.8.8 Metafile Output of Text in Segments under Non-Identity Transform......................... 45 7.8.9 PostScript Cell Array File Size................ 45 7.8.10 Inquire GDP Extent Escape..................... 45 7.8.11 Center-Point-Angle Arc GDPs................... 45 7.8.12 UNIX-Specific Problems Fixed.................. 45 7.8.12.1 Fatal Loader Error......................... 46 7.8.12.2 Memory Deallocation Error.................. 46 7.9 Problems fixed since V5.0......................... 46 7.9.1 Font Set Incorrectly in Encapsulated PostScript with ISO Encoding.............................. 46 7.9.2 Superfluous Events Seen on DIGITAL UNIX........ 46 7.9.3 Workstation Failed to Deiconify................ 46 7.9.4 Crash in Inquire Default Choice Data........... 46 7.9.5 Crash after Metafile Interpretation............ 46 7.9.6 Fill Area Set GDP Did Not Work Correctly....... 46 7.9.7 Inquire Default Locator Data PET list.......... 46 7.9.8 Performance Problem with Locator Cursor Segment 47 7.9.9 Output Drawing Performance Degradation while Input Active................................... 47 7.9.10 DEC GKS V4.x FORTRAN Binding Compatibility.... 47 7.9.11 DEC GKS V4.x GKS$ Binding Compatibility....... 47 7.9.12 Cell Array Primitive in CGM files............. 47 vi 7.9.13 Text Attribute Lost on Insert Segment......... 47 7.9.14 Corrections to Segment Highlighting and Pick Echo.......................................... 47 7.9.15 Resize for Workstations 233, 243.............. 47 7.9.16 Blank Pages in DDIF file...................... 47 7.9.17 Memory Allocation Error....................... 47 7.9.18 Escape Function and the FORTRAN Binding....... 48 7.9.19 Segment Highlighting Using the Color Method... 48 7.9.20 STRING Precision Text on PostScript Device.... 48 7.9.21 Patterns Unsupported on PostScript Workstation 62............................................ 48 7.9.22 PostScript Cell Array Output.................. 48 7.9.23 CGM Clear Text Encoding....................... 48 7.9.24 Metafile Input Workstation and FORTRAN Binding 48 7.9.25 Text Clipping on DECwindows Device............ 48 7.9.26 FORTRAN Data Records.......................... 48 7.9.27 FORTRAN Binding and GQEGDP.................... 48 7.9.28 Segment Highlighting.......................... 49 7.9.29 Fill Area Primitive on PostScript Device...... 49 7.9.30 Input Device Prompt and Echo Graphics......... 49 7.9.31 Text Primitives and the Normalization Transformation................................ 49 7.9.32 Leading Blank Pages on PostScript Device...... 49 7.9.33 Inquire List of Escapes....................... 49 7.9.34 Multiple Redraws When HLHSR is ON............. 49 7.9.35 Text Primitive on PostScript Device........... 49 7.9.36 String Input Focus for Motif Fixed............ 49 7.9.37 PostScript Fixed Problems..................... 50 7.9.37.1 Color PostScript and Portrait Mode......... 50 7.9.37.2 Color PostScript Color Table............... 50 7.9.37.3 Color PostScript Background Color.......... 50 7.9.37.4 Hatched Interior Style and Portrait Mode... 50 8 Known Problems....................................... 51 8.1 General Known Problems............................ 51 8.1.1 PEX Device Problems and Limitations............ 51 8.1.2 DDIF and Pattern Interior Style................ 52 8.1.3 DDIF Files and DECwrite........................ 52 8.1.4 Hardware Clipping on Motif Devices............. 52 8.1.5 Spikes Appear for Some Characters.............. 52 8.1.6 Clipping of Borders............................ 52 8.1.7 Inquiry Workstation Functions.................. 52 8.1.8 PostScript Workstations 61 and 62 Leading Blank Pages.......................................... 52 vii 8.2 UNIX-Specific Problems............................ 53 8.2.1 Push and Pop Escape Functions.................. 53 8.2.2 Workstation Viewport Updates and Output Synchronization................................ 53 9 Compatibility........................................ 54 9.1 DEC GKS Version 4.x to DIGITAL GKS Version 6.5 Compatibility..................................... 54 9.1.1 Value of Constants in Include Files............ 54 9.1.2 Connection Identifier for Motif Workstation Types.......................................... 54 9.1.3 GDPs........................................... 54 9.1.4 Metafile Output Format......................... 54 9.1.5 READ ITEM FROM GKSM............................ 55 9.1.6 FORTRAN Binding................................ 55 9.1.6.1 Linking with the Fortran Binding on DIGITAL UNIX........................................ 55 9.1.7 C Binding...................................... 55 9.1.7.1 Linking with the C Binding on DIGITAL UNIX.. 56 9.1.8 GKS$ Binding................................... 56 9.1.8.1 Linking with the GKS$ Binding on DIGITAL UNIX........................................ 56 9.2 DEC GKS-3D Version 1.x to DIGITAL GKS Version 6.5 Compatibility..................................... 56 9.2.1 General Compatibility.......................... 57 9.2.2 FORTRAN Binding................................ 57 9.2.3 C Binding...................................... 57 9.2.4 GKS3D$ Binding................................. 57 9.2.4.1 Linking with the GKS3D$ Binding on DIGITAL UNIX........................................ 58 9.3 Workstation Support............................... 58 9.3.1 Implementation-Specific Features............... 58 10 DIGITAL GKS Documentation........................... 59 10.1 General Problems................................. 59 10.1.1 Number of Escapes............................. 59 10.1.2 Initial Cursor Position for the String Device. 59 10.1.3 INQUIRE MAXIMUM NORMALIZATION TRANSFORMATION NUMBER........................................ 59 10.1.4 Locator PET -13............................... 59 10.1.5 Changing the Title String..................... 60 10.2 Building a Device Handler System for DEC GKS and DEC PHIGS........................................ 60 10.3 DEC GKS User's Guide............................. 60 viii 10.4 DEC GKS GKS$ Binding Reference Manual............ 60 10.4.1 Choice Class.................................. 61 10.4.2 Locator Class................................. 62 10.4.3 Pick Class.................................... 66 10.4.4 String Class.................................. 67 10.4.5 Stroke Class.................................. 67 10.4.6 Valuator Class................................ 70 10.5 Device Specifics Reference Manual for DEC GKS and DEC PHIGS........................................ 71 10.5.1 GKS_PREDEF Program Example.................... 71 10.6 DEC GKS GKS3D$ Binding Reference Manual.......... 72 10.6.1 INQUIRE STROKE DEVICE STATE................... 72 10.6.2 INQUIRE STROKE DEVICE STATE 3................. 72 11 Trademarks.......................................... 73 TABLES 1 DIGITAL GKS Release Notes......................... v 2 Release History................................... 2 3 Changed Escapes................................... 5 4 Descriptor Creation Entrypoints................... 26 5 Parameters........................................ 27 ix Preface This document is the release notes for DIGITAL GKS Version 6.5 on DIGITAL UNIX[TM] platforms. This document is supplied in both PostScript[TM] and text form. You can find the release notes in the following locations: ________________________________________________________________ Table_1:__DIGITAL_GKS_Release_Notes_____________________________ Text /usr/lib/GKS/decaxpgks650.release_ notes PostScript /usr/lib/GKS/decaxpgks650_release_ _____________________________notes.ps___________________________ Associated Documents o Installing DIGITAL GKS for DIGITAL UNIX Systems o DEC GKS User's Guide o DEC GKS C Binding Reference Manual o DEC GKS FORTRAN Binding Reference Manual o DEC GKS GKS3D$ Binding Reference Manual o DEC GKS GKS$ Binding Reference Manual o Device Specifics Reference Manual for DEC GKS and DEC PHIGS Preface v DIGITAL GKS Version 6.5 Release Notes 1 Product Summary DIGITAL GKS is a library of graphic functions to be included in application programs. DIGITAL GKS Version 6.5 complies with the international standard for three-dimensional graphics (GKS-3D International Standard (ISO 8805(E) 1988)), and is an upwardly compatible extension to the ISO GKS standard (ISO 7942-1985). DIGITAL GKS is complementary to the PHIGS graphics system; GKS is suitable for unstructured, fixed images, while PHIGS is used for structured, editable graphics data. In this document, DIGITAL GKS refers to Version 6.5. 1.1 Release Description DIGITAL GKS Version 6.5 is a unified release of GKS on the following platforms: o DIGITAL UNIX o OpenVMS Alpha o OpenVMS VAX It contains support for HP LaserJet[R] II printers and com- patible HP PCL devices. In addition, the full set of graphics devices supported on VAX and ULTRIX platforms is now supported on Alpha AXP platforms. Only the DECwindows/XUI and VWS graphics devices are not supported. This document describes completed bug fixes, and highlights changes and corrections to the DIGITAL GKS documentation set. At present, DIGITAL GKS Version 6.5 for DIGITAL UNIX supports the following Device types. o Motif[TM] o Motif/PEX o PostScript[TM] o HP-GL o LaserJet[R] (HP PCL) o ReGIS o Tektronix 4014 o Tektronix 4107, 4128, 4129, and 4207 o Color Sixel (LJ250, LA324) o Black & White Sixel (LN03, LA34, LA50, LA100, DEClaser 2100 & 2200) o DDIF o CGM 1 DIGITAL GKS Version 6.5 Release Notes 1.2 Release History For those familiar with previous releases of DIGITAL GKS on other platforms, DIGITAL GKS Version 6.5 is the latest in the DIGITAL GKS Version 6.x line, which is the successor to the DEC GKS Version 5.x line. The DEC GKS Version 5.x line was the successor to both the DEC GKS-3D line and the DEC GKS Version 4.x line. The following table summarizes important milestones in DIGITAL GKS history: ________________________________________________________________ Table_2:__Release_History_______________________________________ Version_______Year______Major_changes___________________________ 6.0A 1994 NIST Certification release 5.3 1994 Full device support on Alpha; LaserJet support 5.2 1993 First unified release on Alpha and VAX 5.1 1993 First release on Alpha architecture (Alpha-only release) 5.0 1992 Merger of DEC GKS-3D V1.2 and DEC GKS ________________________V4.2____________________________________ 1.3 Operating System Support DIGITAL GKS Version 6.5 for DIGITAL UNIX supports DEC OSF/1 AXP Version 2.0 and higher, and DIGITAL UNIX Version 3.2C and higher. NOTE Version 6.5 is the last version of DIGITAL GKS that will support DEC OSF/1 AXP V2.0. Future versions of DIGITAL GKS will require DIGITAL UNIX Version 3.2C or higher. Applications built with earlier versions of the operating system may need to be relinked. 1.4 Motif Version 1.2 Support This release of DIGITAL GKS supports Motif Version 1.2 and higher. Applications built with earlier versions of Motif may need to be relinked. 2 DIGITAL GKS Version 6.5 Release Notes 2 Changes for Alpha AXP Systems This section describes the changes necessary to use DIGITAL GKS Version 6.5. The escape, input initialization, and input inquiry functions have been changed to expect a structure for the data record argument. The data record format was modified because of the 64-bit addresses and 64-bit long integers on the DIGITAL UNIX (formerly known as DEC OSF/1 AXP) system. Old applications may not have to be recoded at this time for the OpenVMS and ULTRIX platforms. However, Digital recommends that you recode the affected functions to the new format to gain maximum portability between supported platforms. Applications must be recoded for the UNIX platform. 2.1 Changes to Escapes The addition of 64-bit addresses and data types required changes to the escape data record. In previous versions of DIGITAL GKS, pointers were returned in the integer array, as were some data objects (such as XIDs), which were declared long in C. On OpenVMS VAX, OpenVMS Alpha, and MIPS/ULTRIX, an integer, an address, and a C long are all 32-bit quantities. On DIGITAL UNIX, only the integer is a 32-bit quantity; the address and the C long are both 64-bit quantities. This made it necessary to change the escape data record. Its previous form (in a C description) was as follows: typedef struct { Gint nints; /* Number of integers */ Gint nfloats; /* Number of floats */ Gint nstrings; /* Number of strings */ Gint *int_array; /* Pointer to integer array */ Gfloat *float_array; /* Pointer to float array */ Gint *str_len_array; /* Pointer to string length array */ Gchar **str_ptr_array; /* Pointer to string pointer array */ } Gescaperecord; The data structure now contains four new items: o A count of generic pointers o An array of generic pointers o A count of longs o An array of longs The new data structure is as follows: 3 DIGITAL GKS Version 6.5 Release Notes typedef struct { Gint nints; /* Number of integers */ Gint nfloats; /* Number of floats */ Gint nstrings; /* Number of strings */ Gint *int_array; /* Pointer to integer array */ Gfloat *float_array; /* Pointer to float array */ Gint *str_len_array; /* Pointer to string length array */ Gchar **str_ptr_array; /* Pointer to string pointer array */ Gint npointers; /* Number of generic pointers */ Gchar **ptr_ptr_array; /* Pointer to generic pointer array */ Gint nlongs; /* Number of longs */ Glong *long_array; /* Pointer to long array */ } Gescaperecord; 2.1.1 Affected Escapes DIGITAL UNIX supports only the new escape record format. OpenVMS Alpha, OpenVMS VAX, and MIPS/ULTRIX still support the old escape record format, but the newer format is preferred. Escapes that previously passed pointers or objects (such as XIDs) declared long in C will require require the most changes. These escapes are as follows: o Inquire Window Identifiers (-304) o Inquire Pasteboard Identifier (-307) o Inquire Menu Bar Identifier (-308) o Inquire Shell Identifier (-309) o Inquire GDP Extent (-404) o Set Background Pixmap (-501) o Inquire Double Buffer Pixmap (-502) o Inquire Background Pixmap (-503) Table 3 describes the new escape data records. 4 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_3:__Changed_Escapes_______________________________________ Argument______Required_Value____________________________________ -304_Inquire_Window_Identifiers_________________________________ in_data Number of integers (1) Number of reals (0) Number of strings (0) Address of integer array (ws_id) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (0) Address of long array (NULL) out_data Number of integers (0) Number of reals (0) Number of strings (0) Address of integer array (NULL) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (1) Address of generic pointer array (X_display_id) Number of longs (1) Address of long array (X_window_id) 5 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_3_(Cont.):__Changed_Escapes_______________________________ ________________________________________________________________ -307_Inquire_Pasteboard_Identifier______________________________ in_data Number of integers (1) Number of reals (0) Number of strings (0) Address of integer array (ws_id) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (0) Address of long array (NULL) out_data Number of integers (0) Number of reals (0) Number of strings (0) Address of integer array (NULL) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (1) Address of generic pointer array (Pasteboard_ widget_id) Number of longs (0) Address of long array (NULL) 6 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_3_(Cont.):__Changed_Escapes_______________________________ ________________________________________________________________ -308_Inquire_Menu_Bar_Identifier________________________________ in_data Number of integers (1) Number of reals (0) Number of strings (0) Address of integer array (ws_id) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (0) Address of long array (NULL) out_data Number of integers (0) Number of reals (0) Number of strings (0) Address of integer array (NULL) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (1) Address of generic pointer array (Menu_bar_widget_ id) Number of longs (0) Address of long array (NULL) 7 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_3_(Cont.):__Changed_Escapes_______________________________ ________________________________________________________________ -309_Inquire_Shell_Identifier___________________________________ in_data Number of integers (1) Number of reals (0) Number of strings (0) Address of integer array (ws_id) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (0) Address of long array (NULL) out_data Number of integers (0) Number of reals (0) Number of strings (0) Address of integer array (NULL) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (1) Address of generic pointer array (Shell_widget_id) Number of longs (0) Address of long array (NULL) 8 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_3_(Cont.):__Changed_Escapes_______________________________ ________________________________________________________________ -404_Inquire_GDP_Extent_________________________________________ in_data Number of integers (4) Number of reals (0) Number of strings (0) Address of integer array (ws_id, number_of_points, GDP_id, sizeof(GDP_data_record)) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (3) Address of generic pointer array (address of array of X values, address of array of Y values, address of GDP data record) Number of longs (0) Address of long array (NULL) out_data Number of integers (1) Number of reals (4) Number of strings (0) Address of integer array (status) Address of real array (minimum X, maximum X, minimum Y, maximum Y) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (0) Address of long array (NULL) 9 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_3_(Cont.):__Changed_Escapes_______________________________ ________________________________________________________________ -501_Set_Background_Pixmap______________________________________ in_data Number of integers (1) Number of reals (0) Number of strings (0) Address of integer array (ws_id) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (1) Address of long array (Pixmap_id) out_data Number of integers (0) Number of reals (0) Number of strings (0) Address of integer array (NULL) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (0) Address of long array (NULL) 10 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_3_(Cont.):__Changed_Escapes_______________________________ ________________________________________________________________ -502_Inquire_Double_Buffer_Pixmap_______________________________ in_data Number of integers (1) Number of reals (0) Number of strings (0) Address of integer array (ws_id) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (0) Address of long array (NULL) out_data Number of integers (0) Number of reals (0) Number of strings (0) Address of integer array (NULL) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (1) Address of long array (Pixmap_id) 11 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_3_(Cont.):__Changed_Escapes_______________________________ ________________________________________________________________ -503_Inquire_Background_Pixmap__________________________________ in_data Number of integers (1) Number of reals (0) Number of strings (0) Address of integer array (ws_id) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (0) Address of long array (NULL) out_data Number of integers (0) Number of reals (0) Number of strings (0) Address of integer array (NULL) Address of real array (NULL) Address of string lengths array (NULL) Address of string pointer array (NULL) Number of pointers (0) Address of generic pointer array (NULL) Number of longs (1) ______________Address_of_long_array_(Pixmap_id)_________________ 12 DIGITAL GKS Version 6.5 Release Notes 2.1.2 How to Use the New Format To use the new data record format, do the following: 1. Convert your arrays of integers to data records. The include files contain language-specific escape data records. 2. Make sure you are passing both an input and an output record. In previous versions of DIGITAL GKS, you could have a zero size output data record when no data was to be returned. 3. Load the appropriate sections of the data record for the escape to be performed. Make sure to enter 0 in all counts that are not used, and make sure unused pointers are a safe invalid value (such as NULL in C). This holds true for both the input and output data records, even if they are not used. If the escape is one of the escapes listed in Section 2.1, you must rearrange some of the data. 4. Make sure the sizes passed for the data records are cor- rect. This is especially true if your sizes were previously hardcoded. Use a compiler or language feature (such as the C sizeof() operator) to get the size in bytes, because the size will vary depending on the architecture and operating system. 2.1.3 Documentation Changes The main documentation changes are listed in Section 2.1. An- other major problem is that the current documentation explicitly states sizes in bytes. These are only correct for the older style of record. The stated sizes are not valid in the Alpha environment, due to the addition of data in the escape and input records and the change in the size of some of the data objects. 13 DIGITAL GKS Version 6.5 Release Notes 3 Installation Notes If you were a Field Test user of DEC GKS on DEC OSF/1 AXP, please note that the subset names have changed from GKO* to GKD*. Please remove the GKO subsets with the following command: # setld -d GKOBASE510 GKOMAN510 GKOEXA510 You must be root to execute this command. 14 DIGITAL GKS Version 6.5 Release Notes 4 Enhancements This section describes the enhancements included in DIGITAL GKS Version 6.5. 4.1 Metafile Header Format Change The format of the metafile header line has been updated to include a four-digit year field and to be uniform across all platforms. The new format is designated Version 3. Old-format (Version 2) metafiles can still be read by DIGITAL GKS. The new format is as follows: 0 1 2 3 4 5 6 7 1234567890123456789012345678901234567890123456789012345678901234567890 GKS3 username /DEC GKS Version 6.4 1996/07/25 3 4 3 81214 1 1 ^ ^author designation (39 bytes) ^date ^ ^ ^ ^ ^ ^ ^item header format version^ ^ ^ ^ ^ ^ . item header size^ ^ ^ ^ ^ . item type size^ ^ ^ ^ . data length size^ ^ ^ . integer field size^ ^ . floating-point field size^ 4.2 NIST Certification DIGITAL GKS has been certified on Alpha AXP platforms by the U.S. National Institute of Standards and Technology, starting with GKS V6.0 on OpenVMS Alpha and GKS V6.0A on DIGITAL UNIX (formerly known as DEC OSF/1 AXP). GKS was certified on and for a restricted subset of all supported workstations: ________________________________________________________________ WS_type____________Description__________________________________ 231 Motif output/input 61_________________Black_&_white_PostScript_____________________ Certain changes in the behavior of DIGITAL GKS were necessary for certification; all these changes are enabled by defining the environment variable GKSnist_certified to be any non-empty value: o Valid workstations are restricted to the list above; this change affects Open Workstation, Inquire List of Workstation Types, and the WDT inquiry functions. o The error returned in certain error conditions is different: - Normalization transformation number invalid in Initialize Locator or Initialize Stroke; 15 DIGITAL GKS Version 6.5 Release Notes - Initial point(s) invalid in Initialize Locator or Initial- ize Stroke; - Number of points less than zero in Initialize Stroke; - Initial string larger than buffer in Initialize String; - Initial segment name less than or equal to zero, or ini- tial pick identifier less than zero, in Initialize Pick or Initialize Pick 3; - GKS not in proper state in any of the Initialize Input routines. o The Motif workstation is mapped at Open Workstation time. o The number of marker types is restricted to 18. o Separate viewport data for both current and requested view- ports is maintained for inquiries. o IRGs are not allowed to be optimized. o Deferral functionality is changed: previously, output primi- tives were deferred (i.e. not sent to the workstation) if an IRG was pending. If GKSnist_certified is in effect, output primitives are not deferred. 4.3 Operating System Specific documentation updated The operating system specific information files, /usr/lib/GKS/doc/ decgks_cbind_op_spec.ps decgks_cbind_op_spec.txt decgks_fbind_op_spec.ps decgks_fbind_op_spec.txt decgks_g3dbind_op_spec.ps decgks_g3dbind_op_spec.txt decgks_gbind_op_spec.ps decgks_gbind_op_spec.txt have been updated and are current as of DIGITAL GKS Version 6.5. 4.4 New Locator PET: -14, Device Coordinates in Raster Units Digital GKS Version 6.4 introduces a new locator prompt and echo type, -14. This PET is identical to PET's 6 and -11, except that the position is reported in raster units. 16 DIGITAL GKS Version 6.5 Release Notes 4.5 New Escape: Set Fill Simplification Method Digital GKS Version 6.3 introduces a new escape, Set Fill Sim- plification Method, to provide an application-level method of choosing the fill simplification method. The syntax of the Set Fill Simplification Method escape is: -140 Set Fill Simplification Method Arguments: ________________________________________________________________ Argument___________Required_Value_______________________________ in_data number of integers (2) number of reals (0) number of strings (0) address of integer array (ws_id, fill_ simplification_method) address of real array (NULL) address of string lengths array (NULL) address of string pointer array (NULL) number of pointers (0) address of generic pointer array (NULL) number of longs (0) address of long array (NULL) out_data number of integers (0) number of reals (0) number of strings (0) address of integer array (NULL) address of real array (NULL) address of string lengths array (NULL) address of string pointer array (NULL) number of pointers (0) address of generic pointer array (NULL) number of longs (0) ___________________address_of_long_array_(NULL)_________________ The input data record contains the following elements: ________________________________________________________________ Component_______________________Description_____________________ ws_id The workstation ID fill_simplification_method 0 = default ________________________________1_=_MapKernel___________________ 17 DIGITAL GKS Version 6.5 Release Notes 4.6 New Escape: Hit Test Digital GKS Version 6.2 introduces a new escape, Hit Test, to provide programs with an alternative asynchronous method (other than Get Pick) for determining whether a segment is picked. For example, you can input a position asynchronously via Get Locator, then use Hit Test to detect a segment hit. You specify a workstation, a transformation, a location, and an optional aperture as input. The location may be either a two- dimensional or a three-dimensional point in world coordinates. However, if you wish to specify an aperture (in device coordi- nates, as for Initialize Pick), you must specify a Z-value for the location. For two-dimensional applications, specify 0.0 as the Z-value. The syntax of the Hit Test escape is: -390 Hit Test Arguments: ________________________________________________________________ Argument___________Required_Value_______________________________ in_data number of integers (2) number of reals (2-4) number of strings (0) address of integer array (ws_id, transform) address of real array (x, y, z (optional), aperture(optional)) address of string lengths array (NULL) address of string pointer array (NULL) number of pointers (0) address of generic pointer array (NULL) number of longs (0) address of long array (NULL) out_data number of integers (3) number of reals (0) number of strings (0) address of integer array (status, segment, pick_id) address of real array (NULL) address of string lengths array (NULL) address of string pointer array (NULL) number of pointers (0) address of generic pointer array (NULL) number of longs (0) ___________________address_of_long_array_(NULL)_________________ The input data record contains the following elements: 18 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Component__________Description__________________________________ ws_id The workstation ID transform The normalization transformation number x, y, z The point in world coordinates aperture___________The_pick_aperture____________________________ The output data record contains the following elements: ________________________________________________________________ Component__________Description__________________________________ status The error status; 0 = no error segment The segment number pick_id____________The_pick_ID__________________________________ 19 DIGITAL GKS Version 6.5 Release Notes 4.7 X11R5 Scalable Font Support X11R5 Scalable Fonts are now supported. Support is enabled by setting the GKSuse_scalable_fonts environment variable to the value 1. Any other value results in scalable font support not being enabled. 4.8 Inquire DBuffer Pixmap & Inquire Background Pixmap supported The Inquire Double Buffer Pixmap (-502) and Inquire Background Pixmap (-503) escapes are now supported. 4.9 New Environmental Controls 4.9.1 GKSfill_simplify_method / GKScomplex_fill_method The GKSfill_simplify_method / GKScomplex_fill_method environ- ment variables have been added to control fill simplification. Defining either of these environment variables to be one (1) enables the MapKernel fill simplification method. MapKernel is currently supported only for two-dimensional geometry. MapKer- nel is intended for applications (like mapping) which involve extremely complex fill areas with holes, "bridges," and self- intersections. In general, MapKernel simplification is slower than the default method, but it will generate correct output in cases where the default method will not (see "Complex Fill Areas" in the "Problems Fixed" section). 4.9.2 GKShatch_simulation The GKShatch_simulation environment variable has been added to control hatch simulation. GKS interior hatch styles may be simulated in a device-independent way, or they may be drawn by the output device (if the output device supports hatch styles). Setting the GKShatch_simulation environment variable to any non-null value forces GKS to do the device-independent hatch simulation regardless of whether the output device supports hatch styles. 4.9.3 GKSvisual_class The GKSvisual_class environment variable has been added to con- trol the class of visual selected for the Motif and Motif/PEX workstation types (230, 231, 240, 241). Normally, GKS selects the "default" visual provided by the display node's X server. However, sometimes it is desirable to override the X server's choice of visual and use a visual with different characteris- tics. For example, you may have an application which depends 20 DIGITAL GKS Version 6.5 Release Notes on rapid color changes. This is easily achieved without screen regeneration, via the GKS Set Color Representation call, on PseudoColor visuals. However, on displays with advanced graphics options, e.g. the ZLX(p)-E, ZLX-M, and ZLX(p)-L cards, the de- fault is usually a TrueColor visual. TrueColor visuals do *not* support dynamic color redefinition, so each Set Color Represen- tation call results in an implicit regeneration, dramatically impacting your application's performance. In this case, you can maximize performance by defining GKSvisual_class to have any of the values "P," "Pseudo," or "PseudoColor." GKSvisual_class takes on string values as shown in the following table. Case is ignored. ________________________________________________________________ Value___________________Visual_Class_Selected___________________ TrueColor TrueColor True T PseudoColor PseudoColor Pseudo P DirectColor DirectColor Direct D GrayScale GrayScale Gray G StaticColor StaticColor SC StaticGray StaticGray SG______________________________________________________________ 4.9.4 GKSx_input_model The GKSx_input_model environment variable has been added to control the X input model selected for the Motif and Motif/PEX workstation types (230, 231, 240, 241). The X input models (No Input, Passive, Locally Active, and Globally Active) are described in the Inter-Client Communication Conventions Manual, section 4.1.7. An application's input model determines how the application handles input focus. GKSx_input_model takes on string values as shown in the follow- ing table. Case is ignored. 21 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Value___________________X_Input_Model_Selected__________________ None No Input No_Input N Passive Passive Input P Local Locally Active Locally_Active L Global Globally Active Globally_Active G_______________________________________________________________ The default input model in GKS is Globally Active. However, in some circumstances it is useful to use simpler input models. For example, some low-end graphics options (e.g. ZLX-E1) do not support multiple simultaneous colormaps. So, if your GKS application creates a new, different colormap, the application may not display in the correct colors unless you change the X input model to Passive or Locally Active *and* set focus to your application's window via clicking or moving the mouse pointer into it. 4.10 Metafile Logging The metafile logging feature present in DEC GKS Version 4.x was reintroduced in DIGITAL GKS Version 6.0, with improvements. To use the metafile logging feature, define the environment variable GKSmetalog to be the filename of the file to which you wish to send metafile logging output, then run your GKS application. GKS calls will be logged to the output file as if it were a normal metafile output workstation (wstype 2) with additional data reflecting changes in deferral state and input- related transactions. 4.11 Unification of GKS and GKS/Japanese DIGITAL GKS/Japanese is now integrated into DIGITAL GKS and is no longer a separate product. Japanese-specific components are included in extra subsets in each kit: GKDBASEJP650 and GKDMANJP650 in the Development kit; GKRBASEJP650 and GKRMANJP650 in the Runtime-Only kit. There are also some Japanese-specific example programs included in the examples subset. 22 DIGITAL GKS Version 6.5 Release Notes 4.12 Sample User-Written Device Handler The sample device handler is now included in the DIGITAL UNIX offering. For instructions on building the sample device handler and running the sample application, please read the readme.first file in /usr/lib/GKS/user_device_handler. 23 DIGITAL GKS Version 6.5 Release Notes 4.13 New Escape: Inquire Version DEC GKS Version 6.0 introduces a new escape, Inquire Version, to enable programs to find out certain information about the version of GKS with which they are running. The syntax of the Inquire Version escape is: -399 Inquire Version Arguments: ________________________________________________________________ Argument___________Required_Value_______________________________ in_data number of integers (0) number of reals (0) number of strings (0) address of integer array (NULL) address of real array (NULL) address of string lengths array (NULL) address of string pointer array (NULL) number of pointers (0) address of generic pointer array (NULL) number of longs (0) address of long array (NULL) out_data number of integers (5) number of reals (1) number of strings (1) address of integer array (error_status, IEEE /VAXfloat indicator, version_number:major, version_number:minor, version_number:ECO/MUP level) address of real array (always_1.0) address of string lengths array (length of version_string) address of string pointer array (version_ string) number of pointers (0) address of generic pointer array (NULL) number of longs (0) ___________________address_of_long_array_(NULL)_________________ The output data record contains the following elements: 24 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Component__________Description__________________________________ error_status The error status; 0 = no error IEEE/VAXfloat 1 = IEEE, 2 = VAXfloat version:major The number to the left of the decimal point in the version number version:minor The number to the right of the decimal point in the version number version:ECO/MUP (If present) trailing letter; 1 = A, 2 = B, etc.; otherwise zero always_1.0 Used to verify linking consistency on OpenVMS Alpha version_string_____"DIGITAL_GKS_V6.5"___________________________ 25 DIGITAL GKS Version 6.5 Release Notes 4.14 HP LaserJet[R] II Support The Hewlett-Packard LaserJet II printer, and other devices uti- lizing HP PCL Printer Language, are now supported. Workstation type 261 indicates a PCL device. Type man gks for more informa- tion. 4.15 Full Device Support on Alpha Platforms Most devices supported on OpenVMS VAX and RISC platforms are now supported on OpenVMS Alpha and DIGITAL UNIX platforms. De- vices newly supported on Alpha platforms include: HP LaserJet (HP PCL), HPGL plotters, ReGIS terminals, Color Sixel print- ers, Black and White Sixel printers, and Tektronix terminals /displays. The only devices not supported on Alpha platforms are DECwindows (superseded by Motif) and VWS. 4.16 New Entrypoints in GKS$/GKS3D$ Bindings Several new entrypoints are provided in DIGITAL GKS Version 5.2 to facilitate the creation of descriptors in C, Fortran, or Ada programs using the GKS$ or GKS3D$ binding. ________________________________________________________________ Table_4:__Descriptor_Creation_Entrypoints_______________________ Entrypoint_Name_____________________Description_________________ gks$init_1d_int_desc Initialize 1D integer array descriptor gks$init_1d_real_desc Initialize 1D float array descriptor gks$init_2d_int_desc Initialize 2D integer array descriptor gks$init_2d_real_desc Initialize 2D float array descriptor gks$init_fort_2d_int_desc Initialize Fortran 2D inte- ger array descriptor gks$init_fort_2d_real_desc Initialize Fortran 2D float array descriptor gks$init_string_desc Initialize character string descriptor gks3d$init_1d_int_desc Initialize 1D integer array descriptor gks3d$init_1d_real_desc Initialize 1D float array descriptor gks3d$init_2d_int_desc Initialize 2D integer array descriptor 26 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_4_(Cont.):__Descriptor_Creation_Entrypoints_______________ Entrypoint_Name_____________________Description_________________ gks3d$init_2d_real_desc Initialize 2D float array descriptor gks3d$init_fort_2d_int_desc Initialize Fortran 2D inte- ger array descriptor gks3d$init_fort_2d_real_desc Initialize Fortran 2D float array descriptor gks3d$init_string_desc Initialize character string ____________________________________descriptor__________________ The interface is as follows (in C terms); parameters are de- scribed in the following table. gks$init_1d_int_desc( iarray, lbound, ubound, desc ); gks$init_1d_real_desc( rarray, lbound, ubound, desc ); gks$init_2d_int_desc( i2array, lbound1, ubound1, lbound2, ubound2, desc2d); gks$init_2d_real_desc( r2array, lbound1, ubound1, lbound2, ubound2, desc2d); gks$init_fort_2d_int_desc( i2array, lbound1, ubound1, lbound2, ubound2, desc2d); gks$init_fort_2d_real_desc( r2array, lbound1, ubound1, lbound2, ubound2, desc2d); gks$init_string_desc( string, length, desc ); gks3d$init_1d_int_desc( iarray, lbound, ubound, desc ); gks3d$init_1d_real_desc( rarray, lbound, ubound, desc ); gks3d$init_2d_int_desc( i2array, lbound1, ubound1, lbound2, ubound2, desc2d); gks3d$init_2d_real_desc( r2array, lbound1, ubound1, lbound2, ubound2, desc2d); gks3d$init_fort_2d_int_desc( i2array, lbound1, ubound1, lbound2, ubound2, desc2d); gks3d$init_fort_2d_real_desc( r2array, lbound1, ubound1, lbound2, ubound2, desc2d); gks3d$init_string_desc( string, length, desc ); ________________________________________________________________ Table_5:__Parameters____________________________________________ Data_Type_______________Name__________In/Out______Description___ int *iarray In 1-D Array of integers float *rarray In 1-D Array of reals int *i2array In 2-D Array of integers float *r2array In 2-D Array of reals int *lbound In Lower bound int *ubound In Upper bound int *lbound1 In Row lower bound int *ubound1 In Row upper bound 27 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Table_5_(Cont.):__Parameters____________________________________ Data_Type_______________Name__________In/Out______Description___ int *lbound2 In Column lower bound int *ubound2 In Column upper bound int *length In Length of character string gks3d_1darray_desc *desc Out 1-D Array Descriptor gks3d_2darray_desc *desc2d Out 2-D Array __________________________________________________Descriptor____ NOTE On alignment-sensitive platforms (Alpha, RISC), these routines check the alignment of the descriptor (output) argument. The user is responsible for providing a suit- ably aligned (and sized) array or data structure for the descriptor argument. A 72-byte array will suffice, if correctly aligned. Correct alignment in Fortran for all platforms can be achieved as follows: C Fragment of Cell Array Example REAL*4 CORN1(3) REAL*4 CORN2(3) REAL*4 CORN3(3) INTEGER*4 DESC(18) REAL*8 ALIGNME EQUIVALENCE (ALIGNME, DESC(1)) INTEGER*4 COLORS(100,200) ... CALL GKS3D$INIT_FORT_2D_INT_DESC( COLORS, 1, 100, 1, 200, DESC ) CALL GKS3D$CELL_ARRAY3( CORN1, CORN2, CORN3, * 1, 1, 100, 200, DESC ) 4.17 Ada Support Development of Ada programs using an Ada interface to the GKS$ and GKS3D$ bindings is supported on all platforms. See the gks3d_defs.ada and gksdefs.ada files provided with the DIGITAL GKS kit. NOTE Passing arguments by descriptor is not supported on all platforms. On DIGITAL UNIX and ULTRIX platforms, use the alternative subprogram declarations containing 'GKS3D_ DESCRIPTOR' or 'GKS_DESCRIPTOR' parameters. Use the INIT_*_DESC routines to aid in constructing the GKS3D_ DESCRIPTOR or GKS_DESCRIPTOR records. 28 DIGITAL GKS Version 6.5 Release Notes For maximum portability, use the GKS*DESCRIPTOR alterna- tives on all platforms. NOTE The gks3d_defs.ada and gksdefs.ada files are now edited before being placed on the DIGITAL GKS for DIGITAL UNIX kit. The numerous warnings about the DESCRIPTOR mecha- nism not being supported on DIGITAL UNIX are no longer generated when either of these files is compiled. 4.18 Pascal Support The environment files /usr/lib/GKS/gks3d_defs.pen and /usr/lib/GKS/gksdefs.pen are now provided with the DIGITAL GKS kit. The gks3d_defs.pas and gksdefs.pas source files are provided as well. Should it become necessary to rebuild the gks3d_defs.pen or gksdefs.pen file, proceed as follows: 1. Create a file named gks3d_defs_module_init or gksdefs_module_ init containing (at least) the following: TO BEGIN DO BEGIN GKS3D$$ASSERT_PASCAL; (* Same for GKS3D_DEFS or GKSDEFS *) END; 2. Compile gks3d_defs.pas or gksdefs.pas, creating both a .o file and a .pen file: # pc -c -env /usr/lib/GKS/gks3d_defs.pen gks3d_defs.pas # cp gks3d_defs.o /usr/lib/GKS When linking a Pascal program on DIGITAL UNIX, you must include either /usr/lib/GKS/gks3d_defs.o or /usr/lib/GKS/gksdefs.o in the link. See the GKS man page for more information. 4.19 PEX Support DIGITAL GKS Version 6.5 supports graphic devices that sup- port PEX servers, such as the DECstation 5000[TM] , VAXsta- tion 3520[TM] , VAXstation 3540[TM] , and VAXstation 4000[TM] . See the list of supported GKS workstation types in the De- vice Specifics Reference Manual for DEC GKS and DEC PHIGS. There are known problems related to using the PEX functionality. See Section 8 for more information. The PEX workstation types are as follows: o 240-Output only o 241-Output and input o 242-X drawable o 243-Motif widget 29 DIGITAL GKS Version 6.5 Release Notes 4.20 Encapsulated PostScript DIGITAL GKS Version 6.5 supports encapsulated PostScript[TM]. Use either workstation type 65 (black and white) or 66 (color). 4.21 ISO-Latin1 Character Support The PostScript device handler supports ISO-Latin1 characters. To enable this feature on UNIX systems, set the environment vari- able GKSiso_encode to 1. By default, this feature is disabled (0). Font IDs -101 to -129 are supported for ISO-Latin1. Spacing and positioning errors may occur if you use the other font IDs. On UNIX queues, provide the switch -x on the lpr command line. 4.22 Motif Support This release supports DECwindows Motif. All the functionality provided by the DECwindows workstation types (21x) is provided by the Motif workstation types (23x). The Motif workstation types are as follows: o 230-Output only o 231-Output and input o 232-X drawable o 233-Motif widget o 330-Japanese Output only o 331-Japanese Output and input o 332-Japanese X drawable o 333-Japanese Motif widget 4.22.1 Using Motif Window Manager Resources The following resources for the Motif window manager are useful for controlling the focus of windows created by DIGITAL GKS: o Mwm*keyboardFocusPolicy (Explicit, Pointer)-Set this resource to Explicit to determine window focus by clicking on the window or border. Set it to Pointer to determine window focus by the location of the pointer. o Mwm*autoKeyFocus (True, False)-If keyboardFocusPolicy is set to Explicit, set this resource to True to return focus to the window originally in focus. Set it to False to avoid giving focus to any window when the window currently with focus is iconified or removed. 30 DIGITAL GKS Version 6.5 Release Notes o Mwm*deiconifyKeyFocus (True, False)-If the keyboardFocus- Policy is set to Explicit, set this resource to True to give a window focus when it is restored from an icon. Set it to False to retain the current focus when a window is deiconi- fied. Because GKS iconifies a window when it is created and then deiconifies it, use the deiconifyKeyFocus resource to control the initial focus of the application window. o Mwm*focusAutoRaise (True, False)-Set this resource to True to raise a window to the top of the stack when it is given focus. Set it to False to retain the current stacking order when a window is given focus. o Mwm*startupKeyfocus (True, False)-If the keyboardFocusPolicy is set to Explicit, set this resource to True to give input focus to a window when it is mapped. Set it to False to avoid giving focus to a window when it is mapped. 4.22.2 GKS Motif Problems The following problems exist with the DIGITAL GKS Motif device handler: o On OpenVMS systems, using the "CLOSE" option on the title bar kills the application. There is no method to disable this behavior. o String input device number 3 (ASCII) with echoing ON does not trigger on each character (as it does in NOECHO mode). o Choice devices 2, 3, 4, and 5 with echoing ON respond to their respective keyboard and mouse buttons, as well as se- lection of the menu with the mouse. They should only respond to the keyboard. o Choice device 9 with NOECHO appears to have no possible trigger. o Choice device 9 with echo ON triggers with any mouse movement over the window region. o The RESET button is an item in the menu bar. This is incor- rect 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. 4.22.3 Avoiding Window Problems If you are using the Motif workstation types , you may see the following messages when running applications: DIGITAL GKS - 'MENU BAR SIZE' attribute incorrect: use "setenv GKSdecw_menu_bar_size 30" and restart application. DIGITAL GKS -'BORDER SIZE' attribute incorrect: use "setenv GKSdecw_border_size 16" and restart application. DIGITAL GKS -'TITLE SIZE' attribute incorrect: use "setenv GKSdecw_title_size 17" and restart application. 31 DIGITAL GKS Version 6.5 Release Notes If you see these messages, DIGITAL GKS is making assumptions about the size of the window manager borders, title bar, and the application menu bar, based on the window manager and the reso- lution of the screen. DIGITAL GKS 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 GKS displays these error messages. Digital suggests that you follow the error message instructions and restart the applica- tion. If you do not follow the instructions, you may have the following 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 you use the default window size. o Resizing the window may result in parts of the graphic output being clipped. Digital does not consider these messages and the user-actions required to be a long term solution. Digital is continuing to work with OSF to develop a better solution. Digital also recommends that you use the Motif device handler only with a Motif window manager. 32 DIGITAL GKS Version 6.5 Release Notes 5 Areas of Nonconformance This section describes areas of nonconformance in DIGITAL GKS Version 6.5. 5.1 Initial Input Prompt Position for STROKE and LOCATOR DIGITAL GKS implements PETs in a windowing environment using a pointer device (a mouse). It is against the philosophy of a windowing system to position the mouse from the application. In DIGITAL GKS, the initial locator and stroke positions are not prompted at the initial position, as required by the GKS standard. 33 DIGITAL GKS Version 6.5 Release Notes 6 Restrictions This section describes the DIGITAL GKS Version 6.5 restrictions. 6.1 General Restrictions This section describes the general restrictions to DIGITAL GKS. 6.1.1 Output Drawing Performance Degradation When input is active (SAMPLE or EVENT mode) and the active PETs have to be simulated by DIGITAL GKS, output drawing performance is slow. Digital recommends that you turn off input before you call a group of GKS output primitives. 6.1.2 Line Cap Style The line cap style attribute is applied only to lines that have the SOLID linestyle attribute. 6.1.3 Limitation with STRING Precision Text Strings If text of precision STRING contains invalid character codes, the text is drawn with the default stroke font number (1). 6.1.4 Fill Area Set The fill area interior style is always simulated if the fill area set includes more than one fill area. This results in reduced performance. Also, the fill area interior style PATTERN is not supported with the function FILL AREA SET if there is more than one fill area defined in the set. 6.1.5 Fill Area and Fill Area Set FILL AREA and FILL AREA SET calls not defining planar fill areas can result in an unexpected failure of DIGITAL GKS. DIGITAL GKS only provides support for planar fill areas and fill area sets (as required by the standard). 6.1.6 Fill Area Interior Style Pattern The following pattern functions are provided, but have no effect on output: o SET PATTERN SIZE o SET PATTERN REFERENCE POINT AND VECTORS o SET PATTERN REFERENCE POINT The fill area interior style PATTERN is not supported with the function FILL AREA SET if there is more than one fill area defined in the set. 34 DIGITAL GKS Version 6.5 Release Notes 6.1.7 GDP Restricted Text The Restricted Text GDP function is not supported by DIGITAL GKS Version 6.5. 6.1.8 Widget Callback Procedure Name and Motif When using widget callback procedures for the Motif workstation type, avoid using the name "gfx_create_proc". This is already used by the Motif UIL files and a name collision will occur. 6.1.9 Motif Workstation Types The workstation description table inquiry functions for the Motif workstation types require operating states WSOP, WSAC, and SGOP. To call these inquiries while not in these states, use escape -110, Associate Workstation Type Connection ID. 6.1.10 Fill Areas-SIZE RESTRICTION REMOVED NOTE THIS RESTRICTION HAS BEEN REMOVED beginning with Digital GKS Version 6.3: Formerly, fill areas on Motif workstations were required to fit in one Xbuffer. Typically, a fill area of less than 2048 points complied with this requirement. NOTE This restriction did not apply to fill areas with interior style HOLLOW. 6.1.11 Copying DDIF Files from DIGITAL UNIX or ULTRIX to OpenVMS On OpenVMS, files containing DDIF information are expected to have the DDIF semantic attribute set. If they do not have this attribute, they will be ignored by DDIF tools. After copying a DDIF file from DIGITAL UNIX or ULTRIX to Open- VMS, you should check the semantic attribute with the following command: $ DIR/FULL If the file semantic attribute is not DDIF, you must set it with the following command: $ SET FILE/SEMANTIC=DDIF filename.doc 35 DIGITAL GKS Version 6.5 Release Notes 6.1.12 Writing To VT330 or VT340 Devices The most effective use of VT330[TM] and VT340[TM] devices occurs when DIGITAL GKS keeps the devices in ReGIS[TM] graphics mode while the workstation remains open. However, ASCII text sent to the screen using a FORTRAN WRITE (or similar statements in other languages) is interpreted as a ReGIS command that can leave the terminal in an unpredictable state. To avoid this problem, never put text on the screen when the workstation is open unless you are using the GKS TEXT or MES- SAGE function. When using DIGITAL GKS with the VT330 or VT340, Digital recommends that the error file specified in the OPEN GKS function be directed to a file. Digital also recommends that you use the OpenVMS command SET TERMINAL/NOBROADCAST to prevent messages from being sent to the terminal by OpenVMS, which will cause similar problems. 6.1.13 Text Path LEFT on Tektronix-4207 Terminals Due to firmware problems, text path LEFT using font -109 in STRING precision does not work properly on some Tektronix[R] 4207 terminals. If you have this problem, have Tektronix update the firmware in your terminal to Version 12.2 or later. 6.1.14 Ada[TM] Language Restrictions Applications using Ada tasks should make sure that all DIGITAL GKS calls are performed from the same Ada task, or that proper synchronization is done. 6.1.15 Multitasking Applications consisting of multiple tasks or threads, such as OpenVMS ASTs or DIGITAL UNIX or ULTRIX signals, must make sure that GKS calls are all performed from the same code thread, or that proper synchronization is done. 6.2 UNIX-Specific Restrictions The following section describes the UNIX operating system re- strictions for DIGITAL GKS Version 6.5. 6.2.1 Using the Debugger 6.2.1.1 dbx command line option -noproc The dbx command line option -noproc should be used when begin- ning a debugging session with a DIGITAL GKS program on DIGITAL UNIX (formerly DEC OSF/1 AXP). 36 DIGITAL GKS Version 6.5 Release Notes The -noproc option causes dbx to use the ptrace interface in- stead of the proc interface. The proc interface is a newer, more elaborate, and more capable interface than the ptrace interface, but it suffers from some incompatibilities with the fork sys- tem call in DEC OSF/1 AXP and versions of DIGITAL UNIX prior to Version 4.0. Because DIGITAL GKS uses fork to start up a child process to handle input for OUTIN workstations, you should use the -noproc option for debugging any GKS program which might open an OUTIN workstation. 6.2.1.2 dbx command "ignore" may be required When debugging a DIGITAL GKS program, you can get the following message "I/O possible in select.select at 0x...." and your pro- gram stops execution. To avoid the message and prevent program execution failure, enter the dbx command "ignore 23" (or "ignore IO") before you run the program. If you forget to enter this command, you can continue after the message with the dbx command "cont 23". 37 DIGITAL GKS Version 6.5 Release Notes 7 Fixed Problems This section describes problems fixed since the last release. 7.1 Problems fixed since V6.4 7.1.1 Crash when Clipping Complex Fill Area A crash sometimes occurred when certain vertices of complex fill areas coincided with one of the clipping planes. 7.1.2 String Input from Keypad During String input in NOECHO mode on workstation type 231, characters input from the numeric keypad were not recognized. 7.1.3 Dot Polymarkers on HPGL Devices Dot polymarkers are actually simulated on HPGL devices: they are drawn as short lines. However, the lines drawn were too long, resulting in markers appearing as slashes. The length of the line drawn to represent a dot on HPGL devices has now been limited to 3.0 times the device increment in the X direction. 7.1.4 UNIX-Specific Problems Fixed 7.1.4.1 Hang with Input on Dual-CPU UNIX 4.0 Systems Programs using the Motif input/output workstation (231/331) were sometimes observed to hang with the gfx_motif_server_v2 process looping infinitely. This problem occurred primarily on systems running DIGITAL UNIX V4.0 or later. 7.1.4.2 Hang if Mouse Button 2 Clicked on Pushbutton On systems running Motif 1.2 or higher, clicking Mouse Button 2 on a Pushbutton widget (e.g. the Cancel button in a Choice box, or any of the Enter, Reset, or Cancel buttons in a String input box) caused the process (and the X server) to hang with the pointer set to the "drag and drop" cursor. The only way to reset the pointer (and unfreeze the screen) was to kill the GKS program and the gfx_motif_server_v2 process from another process (e.g. a terminal window displayed on a different system). The fix was to disable Drag-and-Drop to/from a GKS program's subsidiary widgets. 7.1.4.3 Path to System-Wide .GKSdefaults File GKS was searching for the system-wide defaults file, /usr/lib/GKS/.GKSdefaults, in the wrong location. 38 DIGITAL GKS Version 6.5 Release Notes 7.1.4.4 Memory Leak on Error Path Repeated errors led to increasing virtual memory usage. 7.1.4.5 Warnings during Compilation of gks3d_defs.ada, gksdefs.ada The gks3d_defs.ada and gksdefs.ada files are now edited before being placed on the DIGITAL GKS for DIGITAL UNIX kit. The numer- ous warnings about the DESCRIPTOR mechanism not being supported on DIGITAL UNIX are no longer generated when either of these files is compiled. 7.1.5 Metafile Read Item with Maximum Record Length = Zero The GKS Standard specifies that a maximum record length of zero may be passed to the metafile Read Item function in order to skip an item. DIGITAL GKS was inappropriately returning error 166 (Maximum item data record length is invalid). 7.2 Problems fixed since V6.3 7.2.1 Picking DOT Polymarkers If a dot-type polymarker primitive in a segment contained multi- ple markers, only the first dot could be detected by pick input or hit test. 7.2.2 String and Choice Devices simultaneously active in Event Mode If a string device and a choice device 3 (keyboard choice input) were both active in event mode at the same time, the string device sometimes returned garbage. 7.2.3 Choice Device 3 and Widget Workstations (233, 243) Choice device 3 (keyboard input) on widget workstation types (233, 243) caused a crash. 7.2.4 GQHRF (Inquire HLHSR Facilities) The Fortran binding Inquire HLHSR Facilities function GQHRF did not return correct data or a correct error code. 7.2.5 Set Segment Detectability on Small Segment A Set Segment Detectability operation on a segment with very small extents (e.g. a segment consisting of a single dot poly- marker) could cause a crash. 39 DIGITAL GKS Version 6.5 Release Notes 7.2.6 Small Text A cluster of problems involving small text have been fixed. These problems resulted in characters being drawn as horizontal lines or not being drawn at all. The problems could occur in any of the following situations: o Output to workstation from WISS via Associate Segment with Workstation or Copy Segment to Workstation; o Metafile output; o Metafile interpretation. 7.3 Problems fixed since V6.2 7.3.1 Fill Area Size Restriction Lifted on Motif Workstations 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 UNIX / OSF/1 or ULTRIX systems. Any fill area larger than the limit was simplified by removing points while attempting to minimize the impact on the appearance of the fill area. In case you desire the old fill area reduction behavior for performance (or other) reasons, Digital GKS Version 6.3 (and higher) recognizes a new environment variable GKSmax_fill_ points. Set it to the maximum number of points you wish to allow before reduction takes place. (However, if you set it below the pre-Version 6.3 limit, the effect will be as if you had set it to that limit.) 7.3.2 Hit Test with Stroke Precision Text or Polylines The hit test escape had problems with stroke precision text or polyline primitives. 7.4 Problems fixed since V6.1 7.4.1 Complex Fill Areas Extremely complex fill areas (with holes, "bridges," and self- intersections) were sometimes not filled correctly when clipped. This problem is fixed, in the case of two-dimensional geometry only, by the introduction of the MapKernel fill simplification method. MapKernel fill simplification is enabled by defining the environment variable GKSfill_simplify_method or GKScomplex_fill_ method to be one (1). 7.4.2 String Input on Tektronix Terminals On Tektronix 41xx and 42xx terminals, string input characters were not echoed until ENTER was pressed. 40 DIGITAL GKS Version 6.5 Release Notes 7.5 Problems fixed since V6.0 7.5.1 Degenerate thick lines Degenerate thick lines (i.e. only one point specified) caused a crash. 7.5.2 Status from Get Pick in Dynamic Environment In a dynamic environment in which the display is constantly changing (e.g. segments being repeatedly created, deleted, and re-created), a Get Pick operation might be attempted at a time at which the display is locked because the picture is incom- plete. Get Pick will now return a status of NO PICK (GKS(3D)$ bindings: GKS(3D)$K_STATUS_NOPICK, C binding: GP_NOPICK, Fortran binding: GNPICK) when this situation occurs. 7.5.3 String Precision Text on Regis Terminals String-precision text drawn with multiple Text calls was some- times drawn with incorrect width. 7.5.4 Input on Regis Terminals Input on Regis devices caused hangs or crashes. Request mode input is now working. 7.5.5 Crash with Small Text A crash occurred when extremely small text was drawn on some wstypes, e.g. Tektronix 41xx/42xx (80, 82-88). 7.5.6 Choice/Keyboard Input Sometimes Not Recognized Choice/keyboard input was sometimes not recognized on wstype 231; for example, choice device 3 with echoing off only re- sponded to keyboard input when the pointer was over a visible portion of the GKS window. 7.5.7 Deleting Segments on Regis Terminals Deleting a segment on a Regis terminal did not erase the screen. 7.5.8 Fortran Binding / Open Workstation When the Fortran Binding Open Workstation function (gopwk) was called with a non-default connection identifier, some values of the connection identifier were not interpreted correctly. 7.6 Problems fixed since V5.3 41 DIGITAL GKS Version 6.5 Release Notes 7.6.1 Metafile Changes The following changes/fixes pertaining to metafile input/output were made: o Attribute settings in the GKS state list cannot be deferred when a metafile output workstation is active. o The clip flag and NDC viewport must be handled differently when writing a GKSM metafile. o Ensured that Inquire Character Up Vector returns the user- specified character up vector except when reading a metafile, in which case only the direction of the vector is meaningful. o Fixed Set Pattern Size in GKSM metafile. o Text primitives coming from metafile input must have their text geometry attributes mapped from World Coordinates to Normalized Device Coordinates. o The Message function must exist for the Metafile Input workstation, and must return ERROR_33 (Specified WS is of category MI). 7.6.2 Color PostScript Cell Array Cell arrays output via the PostScript image primitive sometimes resulted in output not intelligible to PostScript interpreters. 7.6.3 Text Extents with PostScript Courier Fonts Extents were incorrect for text written in Courier fonts -109, -110, -111, and -112 (ISO encoding) and -111 & -112 (non-ISO encoding). 7.6.4 CGM Polylines/markers Broken up into Multiple "Line"/"Marker" Commands Polylines and polymarkers consisting of more than 255 points were broken up into multiple "Line"/"Marker" commands. 7.6.5 CGM and DDIF Text Always Stroked Text output to CGM and DDIF workstations was always stroked in GKS V5.x, regardless of precision. String precision text is now emitted as CGM or DDIF text, respectively, as in GKS V4.x. 7.6.6 Out of Memory When Drawing GDPs in High-Precision CGM Drawing GDPs to the high-precision CGM workstation resulted in an Out-of-Memory error because of the large number of points computed. The number of points computed for GDPs in high- precision CGM is now limited to the same number of points as for low-precision CGM. A new environment variable, GKSmax_gdp_ points, is provided for the purpose of overriding this limit. 42 DIGITAL GKS Version 6.5 Release Notes 7.7 Problems fixed since V5.2 7.7.1 Three-Point Arc GDPs Sometimes Not Drawn Correctly GDPs -107 and -339 (arc and filled arc, respectively, defined by three points on the circumference) were not drawn correctly if the points were specified in clockwise order. 7.7.2 Graphics Not Redrawn on Terminals After Choice Menu Erased Graphics obscured by choice menus on terminals were not getting redrawn once selection was made and the choice menu was erased. 7.7.3 144 DPI Now Works on Sixel Devices Attempting to specify 144 Dots Per Inch for Sixel devices re- sulted instead in graphics being printed at 90 DPI. 7.7.4 WISS Device Lost ASFs Aspect Source Flags were lost when a segment was associated. 7.7.5 Line Style / Line Join Problem on LJ250 Line join problems occurred with non-solid lines drawn on the LJ250 with width other than the default line width. 7.7.6 License Invalid Applications linked -non_shared failed to run, getting the message "License is invalid for this version of the product." 7.7.7 View Input Priority and Locator 3/String 3 Input The Set View Transformation Input Priority function effected no change in the view transformation input priority. Thus, the view with highest input priority by default, view 0, was always used to perform the inverse view mapping of locator 3 and stroke 3 points. 7.7.8 PostScript and ISO Encoding 7.7.8.1 Crash with Font -101 and Characters with Eighth Bit Set With GKSiso_encode set to 1, text in Font -101 containing char- acters with the eighth bit set (e.g. characters with diacritical marks used in European languages) caused GKS to crash. 7.7.8.2 Bad Text Extents with Font -103 With GKSiso_encode set to 1, Inquire Text Extents returned wrong values for text in Font -103. 43 DIGITAL GKS Version 6.5 Release Notes 7.7.9 Crash with Soft Clipping, Stroke Precision Text followed by Polyline A crash occurred when soft clipping was activated, stroke preci- sion text was drawn, and then a polyline was drawn. 7.7.10 Inquire Shell/Pasteboard/Menu Bar ID Escapes The Inquire Shell ID, Inquire Pasteboard ID, and Inquire Menu Bar ID escapes did not function properly. 7.7.11 Font Memory Not Freed Stroke Precision font memory was not deallocated by Close Work- station. 7.7.12 Reading and Writing 2-D Metafiles Some items read from a GKSM (2-D) metafile could not be written to another GKSM metafile. 7.7.13 Text Extents on workstation 23x Text extents were computed incorrectly for some sizes of some string or character precision fonts. 7.7.14 Error File specified in Open GKS The error file specified in the gopengks call (C binding: Open GKS) was ignored on DIGITAL UNIX and ULTRIX systems. 7.7.15 Coordinate Display with Locator PET -11 Locator prompt and echo type -11 displayed the current position in normalized device coordinates. The current position is now displayed correctly in world coordinates. 7.8 Problems fixed since V5.1 7.8.1 Workstation Size and Position on workstation 23x When an application opened two or more workstations on the same screen, the position and/or size of one or more of the windows was incorrect in some instances. 7.8.2 Workstation Viewport Positioning on workstation 23x Under certain circumstances, the workstation viewport was moved when no user action or application Set Workstation Viewport occurred. 44 DIGITAL GKS Version 6.5 Release Notes 7.8.3 Clipping on workstation 23x Clipping was done incorrectly in some cases, causing some or all graphics not to appear. 7.8.4 Incorrect Error Return from Set Pattern Representation When Set Pattern Representation was called from Fortran, an incorrect error return occurred. 7.8.5 Metafile Output of Segments under Non-Identity Transform The Associate Segment, Copy Segment, and Insert Segment oper- ations on a metafile output workstation resulted in incorrect coordinate output for any segments with a non-identity trans- form. 7.8.6 Floating Overflow in Select Transform A Floating Point Overflow occurred in Select Transform when window coordinate ranges were large (e.g. Y = [-1e20, +1e20]). 7.8.7 Infinite Loop after Calls to Set Color Representation Certain sequences of calls to Set Color Representation caused GKS to loop infinitely. 7.8.8 Metafile Output of Text in Segments under Non-Identity Transform If text in a segment was subjected to a non-identity transform, then written to a metafile (workstation type 2), bad direction vector information was written, resulting in the text not being visible on subsequent read/display operations. 7.8.9 PostScript Cell Array File Size Because the CELL ARRAY primitive was simulated by fill areas, PostScript output of large cell arrays took inordinate amounts of time and disk space. 7.8.10 Inquire GDP Extent Escape The Inquire GDP Extent escape returned excessively generous bounds in certain cases. 7.8.11 Center-Point-Angle Arc GDPs The Center-Point-Angle Arc GDPs worked incorrectly. 7.8.12 UNIX-Specific Problems Fixed 45 DIGITAL GKS Version 6.5 Release Notes 7.8.12.1 Fatal Loader Error A fatal loader error occurred if DECnet[TM] was not installed. 7.8.12.2 Memory Deallocation Error A memory deallocation error occurred with certain patterns of allocation, deallocation, and reallocation. 7.9 Problems fixed since V5.0 7.9.1 Font Set Incorrectly in Encapsulated PostScript with ISO Encoding Encapsulated PostScript file header setup was done after ISO- Latin1 setup, causing text to be output using the default font rather than the user-specified font. 7.9.2 Superfluous Events Seen on DIGITAL UNIX On DIGITAL UNIX, mouse motion events were being passed back to the user program despite the fact that the program was only interested in button press events. 7.9.3 Workstation Failed to Deiconify Motif (23x) workstations would sometimes fail to deiconify when displaying to another machine, especially when the server machine was faster than the client. 7.9.4 Crash in Inquire Default Choice Data The INQUIRE DEFAULT CHOICE DATA function sometimes caused a crash. 7.9.5 Crash after Metafile Interpretation A SET WINDOW operation following metafile interpretation caused a crash. 7.9.6 Fill Area Set GDP Did Not Work Correctly The Fill Area Set GDP did not work correctly: when two fill areas were drawn, one inside the other, the inside fill area was not seen. 7.9.7 Inquire Default Locator Data PET list The PET returned by the INQUIRE DEFAULT LOCATOR DATA functions was not complete because it did not include PET -13 (locator cursor segment). 46 DIGITAL GKS Version 6.5 Release Notes 7.9.8 Performance Problem with Locator Cursor Segment The performance problem seen with the locator cursor segment when double buffering is enabled has been improved. 7.9.9 Output Drawing Performance Degradation while Input Active The output drawing performance degradation while input is active (in SAMPLE or EVENT mode) has been improved. The performance degradation is now restricted to the simulated PETs. 7.9.10 DEC GKS V4.x FORTRAN Binding Compatibility The function GQEWK was corrected to allow applications linked with DEC GKS Version 4.x to run on DIGITAL GKS Version 6.5 7.9.11 DEC GKS V4.x GKS$ Binding Compatibility The array and string descriptor data structure check was changed to allow for DEC GKS Version 4.x type NULL descriptor, defined by either a 0 length or NULL pointer element. 7.9.12 Cell Array Primitive in CGM files The color attributes of the cell array primitive were not being entered into the CGM file. 7.9.13 Text Attribute Lost on Insert Segment The character up vector attribute was lost for text primitives that were inserted using the INSERT SEGMENT function. 7.9.14 Corrections to Segment Highlighting and Pick Echo Graphics problems with segment highlighting and pick echo have been corrected for Motif devices. 7.9.15 Resize for Workstations 233, 243 Resize did not occur at all widget levels for the widget work- station type. 7.9.16 Blank Pages in DDIF file DDIF files used to start off with 2 blank pages. 7.9.17 Memory Allocation Error The CLOSE WORKSTATION function occasionally reported error - 3502. This error occurred if the application explicitly deleted all remaining segments before the workstation was closed. 47 DIGITAL GKS Version 6.5 Release Notes 7.9.18 Escape Function and the FORTRAN Binding A number of problems involving the FORTRAN binding escape func- tion were fixed. The errors occurred when DIGITAL GKS overwrote the output data record with invalid data. 7.9.19 Segment Highlighting Using the Color Method Using the COLOR method of segment highlighting could result in GKS using an invalid clip region for display list redraws. It appeared as though some segments were not being redrawn. 7.9.20 STRING Precision Text on PostScript Device Some text characters were not displayed when using STRING preci- sion text on PostScript devices. 7.9.21 Patterns Unsupported on PostScript Workstation 62 Patterns for PostScript workstation type 62 (color PostScript) are not supported. 7.9.22 PostScript Cell Array Output Color output of the CELL ARRAY function now works correctly. 7.9.23 CGM Clear Text Encoding Negative numbers occurring in the CGM element "RealPrec" had invalid CGM syntax (a space between the minus sign and the numerals is invalid CGM syntax). 7.9.24 Metafile Input Workstation and FORTRAN Binding The FORTRAN binding call GCLWK (CLOSE WORKSTATION) used to open the metafile with APPEND mode. This caused an "Attempted File Access" security alarm, if the file had read-only access. The problem was fixed by using read-only mode to open the file. 7.9.25 Text Clipping on DECwindows Device There was an incompatibility between DEC GKS-3D and DIGITAL GKS in the way string precision text was clipped. This incompatibil- ity has been fixed. 7.9.26 FORTRAN Data Records There was a problem with the way GKS manipulated FORTRAN data records. 7.9.27 FORTRAN Binding and GQEGDP The GQEGDP function only returned the first element in the list of GDPs, regardless of the list element requested by the application. 48 DIGITAL GKS Version 6.5 Release Notes 7.9.28 Segment Highlighting Two problems with segment highlighting methods were fixed. One concerned an incorrect change of color when an image was iconified and deiconified. The other problem concerned the size of the extent box which was drawn. 7.9.29 Fill Area Primitive on PostScript Device A problem was fixed concerning fill areas made up of a lot of points (over 500) on the PostScript device. 7.9.30 Input Device Prompt and Echo Graphics There was a problem drawing PETs when an input device was in SAMPLE or EVENT mode. The graphics associated with output primi- tives corrupted the display of the prompt and echo graphics. 7.9.31 Text Primitives and the Normalization Transformation An error could result due to precision problems when the text primitive was used. If the relative scales of the world window and the normalized device coordinate viewport were vastly dif- ferent, it was possible for the associated text vectors to have length zero. In the reported test case, the world window was of size 256,000 units and the NDC viewport was 1 unit. 7.9.32 Leading Blank Pages on PostScript Device It was possible to have 2 leading blank pages on the PostScript device. 7.9.33 Inquire List of Escapes The escape list returned by DEC GKS-3D differed from the list returned by DIGITAL GKS. 7.9.34 Multiple Redraws When HLHSR is ON Multiple redraws of the display list would occur when HLHSR mode was ON, resulting in intermediate frames being generated. This was especially a problem for hardcopy devices such as the PostScript device. 7.9.35 Text Primitive on PostScript Device The line width scale factor attribute was erroneously being applied to text primitives as well as to line primitives. 7.9.36 String Input Focus for Motif Fixed Focus is automatic for string input devices. Clicking in the window before input is no longer necessary. 49 DIGITAL GKS Version 6.5 Release Notes 7.9.37 PostScript Fixed Problems This section lists corrected PostScript problems. 7.9.37.1 Color PostScript and Portrait Mode Color PostScript in portrait mode used to produce unprintable output. 7.9.37.2 Color PostScript Color Table The color PostScript workstation type had an incorrect default color table. 7.9.37.3 Color PostScript Background Color The color PostScript workstation type did not set the background color correctly. 7.9.37.4 Hatched Interior Style and Portrait Mode The hatched interior style produced incorrect hatch styles when portrait mode was used. 50 DIGITAL GKS Version 6.5 Release Notes 8 Known Problems This section describes known technical problems in this release. 8.1 General Known Problems This section describes the known general technical problems with DIGITAL GKS Version 6.5. 8.1.1 PEX Device Problems and Limitations The PEX workstation only supports one method of highlighting segments and one method of highlighting the primitive that is eligible to be picked by a pick input device. This method is forced color. In addition, an application primitive that is decomposed into a series of PEX primitives will illustrate undesirable behavior when the primitive is to be highlighted because it is eligible to be picked. Examples of application primitives that are sometimes decomposed are cell arrays, fill area sets, and generalized drawing primitives. Forced color highlighting of primitives causes undesirable effects when the highlighting is turned off. These effects are apparent when a primitive that is unhighlighted is partially occluded by a primitive. The PEX workstation does not support any hatch or pattern inte- rior styles. The PEX workstation only supports one line width and one edge width. Therefore, the line cap style and line join style func- tions have no apparent effect. There is a problem when the edge of a fill area set primitive is drawn. Sometimes the last segment of the edge is not drawn. All text primitives are rendered as stroked text. Use the ASAP deferral mode minimally. When the PEX workstation is in ASAP deferral mode, an entire screen regeneration is performed after each new primitive is defined. The list of supported escape functions in the Device Specifics Reference Manual for DEC GKS and DEC PHIGS for the PEX work- station is incorrect. Use the INQUIRE LIST OF AVAILABLE ESCAPES function to obtain the correct list. Also, the manual incor- rectly states that PEX workstation types may be masked to obtain certain capabilities. Workstation masks have no effect on the behavior of PEX workstations. PEX workstation performance is optimal when there is no normal- ization transformation clipping. Note that the default clipping state is to clip to the normalization viewport. Therefore, ap- plications should disable clipping using the SET NORMALIZATION TRANSFORMATION CLIPPING function, or by setting the appropriate environment option. 51 DIGITAL GKS Version 6.5 Release Notes Note that most PEX workstations have 256 color table entries. GKS sets the first 8 values to different color values, and sets the remaining entries to the same value as that of color index 1. 8.1.2 DDIF and Pattern Interior Style The same pattern appears visually different on OpenVMS and DIGITAL UNIX or ULTRIX systems. 8.1.3 DDIF Files and DECwrite When a DDIF file is imported into the DECwrite product, the image is redrawn 3 times. 8.1.4 Hardware Clipping on Motif Devices There is a known problem with the hardware clipping of GDPs against the workstation viewport on Motif devices. The workaround is to use software clipping. Software clipping is the default for DIGITAL GKS Version 6.5. 8.1.5 Spikes Appear for Some Characters It is possible for spikes to appear when drawing STROKE and CHARACTER precision text strings. The characters A, M, and W have this problem. The problem occurs on OpenVMS systems containing the SPX graphics processor, and on all DIGITAL UNIX and ULTRIX systems. The output window must be partially obscured for the problem to occur. The problem lies in the Xcfb server. The server has problems when drawing zero-width capped lines. 8.1.6 Clipping of Borders Depending on the current workstation transformation or whether double buffering is on, the border pixels may be clipped. If clipping occurs, a line drawn along the workstation window border may not appear on the output device. 8.1.7 Inquiry Workstation Functions If you call inquiry workstation functions before workstation types 232 or 233 are open, the program ends unexpectedly. 8.1.8 PostScript Workstations 61 and 62 Leading Blank Pages The PostScript workstations 61 and 62 generate leading blank pages if the workstation transformation is changed prior to output. 52 DIGITAL GKS Version 6.5 Release Notes 8.2 UNIX-Specific Problems The following sections describe the known technical problems with DIGITAL GKS Version 6.5 on the UNIX operating system. 8.2.1 Push and Pop Escape Functions There is a known problem with the Push and Pop escapes on UNIX systems with the Motif device handler. If the application is full screen, the application loses focus. 8.2.2 Workstation Viewport Updates and Output Synchronization For the Motif workstations ( 230, 231, 240, and 241), there is a synchronization problem on UNIX platforms. If you make rapid, multiple changes to the workstation viewport with output, DIGITAL GKS may redraw the picture incorrectly. You can see this problem with example program 4-1 in the DEC GKS User Manual (for DEC GKS Version 4.2). To avoid this problem, do not make rapid changes to the workstation viewport dimensions. 53 DIGITAL GKS Version 6.5 Release Notes 9 Compatibility This section describes compatibility issues. 9.1 DEC GKS Version 4.x to DIGITAL GKS Version 6.5 Compatibility 9.1.1 Value of Constants in Include Files The values of the line join style constants were incorrect. See the appropriate include file for the new values of the line join constants. 9.1.2 Connection Identifier for Motif Workstation Types The DEC GKS Version 4.2 DECwindows connection ID notation (where you add a character to the server connection to differentiate multiple connections to the same server) is not required and not supported by DIGITAL GKS Version 6.5. DIGITAL GKS Version 6.5 allows multiple workstations to use the same workstation type and connection identifier pairs for Motif workstations. For example, the character a in the server connection string nodename::0.a is no longer supported. 9.1.3 GDPs All the DEC GKS Version 4.2 GDP functions are supported by DIGITAL GKS Version 6.5, except the Restricted Text GDP. 9.1.4 Metafile Output Format DIGITAL GKS Version 6.5 generates three-dimensional (DEC GKS- 3D) metafiles by default. The item headers of three-dimensional metafiles contain the string "GKS3". The geometrical information is stored as x, y, and z coordinates and the following items have a different item number compared to the two-dimensional (DIGITAL GKS) metafile: ASF, CELL_ARRAY, COLOUR_REP, GDP, PAT- TERN_REFPT, and PICK_IDENTIFIER. DIGITAL GKS Version 6.5 can also generate two-dimensional (DEC GKS Version 4.x) metafiles. The item headers of two-dimensional metafiles contain the string "GKSM", and the geometrical in- formation is stored as x and y coordinates. Any attempt to make a three-dimensional call to this metafile output work- station generates an error. The two-dimensional metafile output can be enabled by defining the DIGITAL GKS environment vari- able GKSmetafile_type to "GKSM", and using the metafile output workstation type 2. See the DEC GKS Developer's Guide for more information on metafiles. 54 DIGITAL GKS Version 6.5 Release Notes 9.1.5 READ ITEM FROM GKSM DEC GKS Version 4.2 reversed the two arguments MILDR and MLDR of the function READ ITEM FROM GKSM. This was corrected in DIGITAL GKS (then known as DEC GKS) Version 5.0. 9.1.6 FORTRAN Binding The DEC GKS Version 4.2 FORTRAN binding is upwardly compatible with DIGITAL GKS Version 6.5. The Version 4.2 FORTRAN include file gksdefs.for is provided with Version 6.5 for compatibility. However, Version 6.5 also provides gks.f which defines the enumerated constants as specified by the ISO FORTRAN Binding to GKS-3D. Digital recommends that application developers use gks.f when developing FORTRAN programs which call the FORTRAN binding. Existing Version 4.2 FORTRAN applications are encouraged, but not required, to substitute the corresponding constant names from gks.f for the GKS$xxxx constants from gksdefs.for, and to include gks.f instead of gksdefs.for. Note that the values of the constants for the line join types and the no-choice status are different in the two include files. 9.1.6.1 Linking with the Fortran Binding on DIGITAL UNIX The link command for DIGITAL GKS Version 6.5 is as follows. In particular, note that DIGITAL GKS is supplied as shared libraries on DIGITAL UNIX systems. Also note that GKS V6.0 no longer requires -lGKS when linking with a language binding. $ f77 -o program program.o -lGKSforbnd -lm -lc For further information on linking, see the GKS man page. 9.1.7 C Binding The DIGITAL GKS Version 6.5 and DEC GKS Version 4.x C bindings are source-code compatible, with the exception of the function return codes and a bug fix in the function ginqwsconntype. DIGI- TAL GKS provides run-time compatibility with DEC GKS Version 4.x C binding images. Digital recommends recompiling and relinking the application with DIGITAL GKS Version 6.5. The source-code compatibility exceptions are as follows: o DIGITAL GKS Version 6.5 function return codes are integers based on the ISO standard error numbers and Digital (nega- tive) error numbers. o The DIGITAL GKS Version 6.5 ginqwsconntype function requires that the Gwsct structure element type be a pointer to an object of type Gwstype. The function ginqwsconntype returns the workstation type into this object. This is a change from earlier versions of GKS that returned the element type erroneously in the Gwsct structure element type, instead of to the location pointed to by this element. 55 DIGITAL GKS Version 6.5 Release Notes 9.1.7.1 Linking with the C Binding on DIGITAL UNIX The link command for DIGITAL GKS Version 6.5 is as follows. In particular, note that DIGITAL GKS is supplied as shared libraries on DIGITAL UNIX systems. Also note that GKS V6.0 no longer requires -lGKS when linking with a language binding. $ cc -o program program.o -lGKScbnd -lm -lc For further information on linking, see the GKS man page. 9.1.8 GKS$ Binding The DEC GKS Version 4.2 GKS$ binding is fully upwards compatible with DIGITAL GKS Version 6.5. The GKS$ interface supports C, Fortran, Ada, and Pascal pro- grams. On UNIX platforms, the GKS$ binding can be used with Fortran programs if the following caveats are observed: o Wherever the DEC GKS GKS$ Binding Reference Manual specifies that a character argument must be passed by descriptor, the character data may be passed directly. o Wherever the DEC GKS GKS$ Binding Reference Manual specifies that a NON-character argument must be passed by descriptor (the CELL ARRAY, SET PATTERN REPRESENTATION, GET/REQUEST /SAMPLE STROKE functions and a number of inquiry functions), the programmer must construct descriptors in open code. The new gks$init_*_desc entrypoints (see Section 4.16) are provided for this purpose. o The -assume nounderscore compiler option should not be used. o Code that declares and/or uses escape data records, GDP data records, or input data records should be compiled with the -integer_size 64 or -i8 options. 9.1.8.1 Linking with the GKS$ Binding on DIGITAL UNIX The link command for DIGITAL GKS Version 6.5 is as follows. In particular, note that DIGITAL GKS is supplied as shared libraries on DIGITAL UNIX systems. Also note that GKS V6.0 no longer requires -lGKS when linking with a binding. $ cc -o program program.o -lGKSbnd -lm -lc For further information on linking, see the GKS man page. 9.2 DEC GKS-3D Version 1.x to DIGITAL GKS Version 6.5 Compatibility 56 DIGITAL GKS Version 6.5 Release Notes 9.2.1 General Compatibility The DIGITAL GKS Version 6.5 development environment differs from the one provided with DEC GKS-3D Version 1.2 as follows: o The DIGITAL GKS Version 6.5 link commands are different due to a different file naming and installation schema. See the binding manuals for information on compiling and linking with DIGITAL GKS Version 6.5. o The DIGITAL GKS Version 6.5 environment options are prefixed with GKS$ (OpenVMS) and GKS (DIGITAL UNIX or ULTRIX) rather than GKS3D$ and GKS3D, respectively. 9.2.2 FORTRAN Binding The DIGITAL GKS Version 6.5 FORTRAN binding is backwardly com- patible with DEC GKS-3D Version 1.2, except for the name of the include file. For backwards compatibility, the DEC GKS-3D Version 1.2 include file is also provided. To port a DEC GKS-3D FORTRAN binding program to DIGITAL GKS, modify your source code to include gks.f. Then recompile and link your program with DIGITAL GKS Version 6.5. 9.2.3 C Binding The DIGITAL GKS Version 6.5 C binding is not source-code compat- ible with the DEC GKS-3D Version 1.2 C binding. However, DIGITAL GKS Version 6.5 includes a compatibility mode that provides source code compatibility. Although run-time compatibility is provided, Digital recommends recompiling and relinking your application with DIGITAL GKS Version 6.5. For more information on the compatibility of the DEC GKS-3D Version V1.x C binding, see the DEC GKS C Binding Reference Manual. 9.2.4 GKS3D$ Binding The DIGITAL GKS Version 6.5 GKS3D$ binding is fully backwards compatible with DEC GKS-3D Version 1.2. The GKS3D$ interface supports C, Fortran, Ada, and Pascal pro- grams. On UNIX platforms, the GKS3D$ binding can be used with Fortran programs if the following caveats are observed: o Wherever the DEC GKS GKS3D$ Binding Reference Manual speci- fies that a character argument must be passed by descriptor, the character data may be passed directly. o Wherever the DEC GKS GKS3D$ Binding Reference Manual speci- fies that a NON-character argument must be passed by descrip- tor (the CELL ARRAY, SET PATTERN REPRESENTATION, GET/REQUEST /SAMPLE STROKE functions and a number of inquiry functions), the programmer must construct descriptors in open code. The 57 DIGITAL GKS Version 6.5 Release Notes new gks3d$init_*_desc entrypoints (see Section 4.16) are provided for this purpose. o The -assume nounderscore compiler option should not be used. o Code that declares and/or uses escape data records, GDP data records, or input data records should be compiled with the -integer_size 64 or -i8 options. 9.2.4.1 Linking with the GKS3D$ Binding on DIGITAL UNIX The link command for DIGITAL GKS Version 6.5 is as follows. In particular, note that DIGITAL GKS is supplied as shared libraries on DIGITAL UNIX systems. $ cc -o program program.o -lGKS -lm -lc For further information on linking, see the GKS man page. 9.3 Workstation Support See Section 1.1 for a list of hardware workstations supported by DIGITAL GKS Version 6.5 on Alpha AXP processors. In addition, DIGITAL GKS Version 6.5 supports the DEC GKS Version 4.2 GKSM (two-dimensional) metafile input workstation. 9.3.1 Implementation-Specific Features DEC GKS Version 4.2 implementation-specific behavior may be provided differently with DIGITAL GKS Version 6.5. Applications relying on the implementation-specific behavior may have to be updated to produce the intended output with DIGITAL GKS. 58 DIGITAL GKS Version 6.5 Release Notes 10 DIGITAL GKS Documentation The DIGITAL GKS Version 6.5 documentation set contains the following manuals: o Installing DIGITAL GKS for DIGITAL UNIX Systems o DEC GKS User's Guide o DEC GKS C Binding Reference Manual o DEC GKS FORTRAN Binding Reference Manual, o DEC GKS GKS3D$ Binding Reference Manual o DEC GKS GKS$ Binding Reference Manual o Device Specifics Reference Manual for DEC GKS and DEC PHIGS o Building a Device Handler System for DEC GKS and DEC PHIGS The following section describes changes in the documentation that occurred after the manuals were printed. The information is arranged by manual title. 10.1 General Problems This section lists the changes that affect more than one manual. 10.1.1 Number of Escapes The bindings manuals incorrectly state that there are 61 GKS escapes. There are 65 escapes. 10.1.2 Initial Cursor Position for the String Device The string class input data record contains a component for the initial cursor position. Although most workstations ignore this value, the Motif workstation positions the cursor at the position indicated by this component. 10.1.3 INQUIRE MAXIMUM NORMALIZATION TRANSFORMATION NUMBER The maximum number of normalization transformations is 256, numbered 0 to 255. 10.1.4 Locator PET -13 In the GKS$, C, and FORTRAN bindings, the section describing the locator PETs incorrectly describes PET 13. The PET number should be -13. 59 DIGITAL GKS Version 6.5 Release Notes 10.1.5 Changing the Title String All the choice, string, and valuator PETs, and locator PET 6 allow you to change the title string. The default title is the name of the device class. To change the string, increase the data record size by twice the size of a pointer and add the following components to the end of the data record: Component Description Data Type Used or Ignored Nexttolast Title string address Address U Last Title string length Integer U If you want to have a blank title for a particular device, use a title string of one blank (' ') and a title string length of 1. If you do not specify the title string and title string length, DIGITAL GKS uses the default title. If you set the title string address to NULL and the title string length to zero, DIGITAL GKS uses the default title. Be sure the data record length accurately reflects whether you want to use the title components. 10.2 Building a Device Handler System for DEC GKS and DEC PHIGS After GKS V6.0, the device_number, input_code, and movement fields of the input_event structure were changed to unsigned int (integer*4) on Alpha for improved efficiency. (They were unsigned short int [integer*2], unsigned char [integer*1], and unsigned char respectively.) 10.3 DEC GKS User's Guide The example programs in the DEC GKS User's Guide are included on the DIGITAL GKS kit. The program names are as follows: File name Corresponding manual example user_manual_1_3.c Example 2-1 user_manual_3_1.c Example 6-1 user_manual_4_1.c Example 3-1 user_manual_5_1.c Example 4-1 user_manual_6_1.c Example 5-1 user_manual_7_1.c Example 5-2 10.4 DEC GKS GKS$ Binding Reference Manual The gks3d$sizeof/gks$sizeof utility function, used to determine the size of an input data record, is available with this release of DIGITAL GKS. The language-dependent data structures that de- fine the input data record structures for each of the languages supported by the GKS$ binding are also available with this re- lease. See the gks3d_defs.*/gksdefs.* include files to see what data structures and size macros are available for a particular language. 60 DIGITAL GKS Version 6.5 Release Notes The following sections list all the input data records for the GKS$ binding. The tables within these sections include the order of the component within the input data record, a description of the component, the data type, and whether the workstation uses (U) or ignores (I) the input data record component. When you pass input data records in the INITIALIZE functions, the information order must match the order listed in the tables. NOTE Be sure to observe alignment constraints on 64-bit sys- tems. Note that the size of an input data record on a 64- bit system may not be equal to the sum of the sizes of its components, because of added padding to ensure alignment. 10.4.1 Choice Class This section lists the input data record information required for choice-class prompt and echo types (PETs). Choice-Class PET 2 The input data record size (INITIALIZE function argument rec_ size) is 8 on 32-bit systems (e.g. OpenVMS, ULTRIX), 16 on 64- bit systems (e.g. DIGITAL UNIX). The input data record (INITIAL- IZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Number of choice alternatives Integer U 2 Address of the array of Address U prompts turned off (GKS$K_ CHOICE_PROMPT_OFF) or on ______________(GKS$K_CHOICE_PROMPT_ON)__________________________ Choice-Class PETs -1, 1, and 3 The input data record size (INITIALIZE function argument rec_ size) is 12 on 32-bit systems (e.g. OpenVMS, ULTRIX), 24 on 64-bit systems (e.g. DIGITAL UNIX). The input data record (INI- TIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Number of choice alternatives Integer U 61 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 2 Address of the array of choice Address U string lengths 3 Address of the array of choice Address U ______________string_addresses__________________________________ 10.4.2 Locator Class This section lists the input data record information required for locator-class PETs. Locator-Class PET -1 The input data record size (INITIALIZE function argument rec_ size) is 8. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 X dimension of the box in Real U world coordinate points 2 Y dimension of the box in Real U ______________world_coordinate_points___________________________ Locator-Class PETs -11, 1, 2, 3, and 6 The input data record size (INITIALIZE function argument rec_ size) is 0. The input data record (INITIALIZE function argument data_rec) is a dummy record. Locator-Class PETs -12, -10, -9, -5, -4, and 4 These prompt and echo types require you to use one of two input data records. Which input data record you use depends on the value of the attribute control flag. If the attribute control flag is GKS$K_ACF_CURRENT, the prompt and echo displays the current set of output attributes. If the attribute control flag is GKS$K_ACF_SPECIFIED, the prompt and echo displays the output attributes specified in the input data record. To specify current output attribute values, the input data record size (INITIALIZE function argument rec_size) is 4. The input data record (INITIALIZE function argument data_rec) con- tains the component listed in the following table: 62 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Attribute control flag (GKS$K_ Integer U ______________ACF_CURRENT)______________________________________ To specify new output attribute values, the input data record size (INITIALIZE function argument rec_size) is 32. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Attribute control flag (GKS$K_ Integer U ACF_SPECIFIED) 2 Line type ASF (GKS$K_ Integer I ASF_BUNDLED or GKS$K_ASF_ INDIVIDUAL) 3 Line width scale factor ASF Integer I (GKS$K_ASF_BUNDLED or GKS$K_ ASF_INDIVIDUAL) 4 Polyline color index (GKS$K_ Integer I ASF_BUNDLED or GKS$K_ASF_ INDIVIDUAL) 5 Polyline index Integer I 6 Line type index Integer U 7 Line width scale factor Real U 8_____________Polyline_color_index______________Integer_____I___ Locator-Class PETs -2 and 5 Although four input data records are theoretically possible for these PETs, DIGITAL GKS supports only two. The input data records depend on the values of the polyline-fill-area control flag, and on the attribute control flag. If the polyline-fill- area control flag is GKS$K_ACF_POLYLINE, DIGITAL GKS uses a polyline to draw the prompt and echo rectangle. If the polyline- fill-area control flag is GKS$K_ACF_FILL_AREA, DIGITAL GKS uses a fill area to draw the prompt and echo. DIGITAL GKS currently supports only the polyline rectangle. If the attribute control flag is GKS$K_ACF_CURRENT, the prompt and echo displays the current set of output attributes. If the attribute control flag is GKS$K_ACF_SPECIFIED, the prompt and echo displays the output attributes specified in the input data record. 63 DIGITAL GKS Version 6.5 Release Notes To specify current output attribute values and a polyline rect- angle, the input data record size (INITIALIZE function argument rec_size) is 8. The input data record (INITIALIZE function argu- ment data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Polyline-fill-area control Integer I flag (GKS$K_ACF_POLYLINE) 2 Attribute control flag (GKS$K_ Integer U ______________ACF_CURRENT)______________________________________ To specify new output attribute values and a polyline rectangle, the input data record size (INITIALIZE function argument rec_ size) is 36. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Polyline-fill-area control Integer I flag (GKS$K_ACF_POLYLINE) 2 Attribute control flag (GKS$K_ Integer U ACF_SPECIFIED) 3 Line type ASF (GKS$K_ Integer I ASF_BUNDLED or GKS$K_ASF_ INDIVIDUAL) 4 Line width scale factor ASF Integer I (GKS$K_ASF_BUNDLED or GKS$K_ ASF_INDIVIDUAL) 5 Polyline color index ASF Integer I (GKS$K_ASF_BUNDLED or GKS$K_ASF_INDIVIDUAL) 6 Polyline index Integer I 7 Line type index Integer U 8 Line width scale factor Real U 9_____________Polyline_color_index______________Integer_____I___ Locator-Class PETs -8, -7, -6, and -3 These PETs require you to use one of two input data records. Which input record you use depends on the value of the at- tribute control flag. If the attribute control flag is GKS$K_ ACF_CURRENT, the prompt and echo displays the current set of output attributes. If the attribute control flag is GKS$K_ACF_ 64 DIGITAL GKS Version 6.5 Release Notes SPECIFIED, the prompt and echo displays the output attributes specified in the input data record. To specify the current output attribute values, the input data record size (INITIALIZE function argument rec_size) is 20. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Attribute control flag (GKS$K_ Integer U ACF_CURRENT) 2 X component of the first world Real U coordinate point 3 Y component of the first world Real U coordinate point 4 X component of the second Real U world coordinate point 5 Y component of the second Real U ______________world_coordinate_point____________________________ To specify new output attribute values, the input data record size (INITIALIZE function argument rec_size) is 48. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Attribute control flag (GKS$K_ Integer U ACF_SPECIFIED) 2 Line type ASF (GKS$K_ Integer I ASF_BUNDLED or GKS$K_ASF_ INDIVIDUAL) 3 Line width scale factor ASF Integer I (GKS$K_ASF_BUNDLED or GKS$K_ ASF_INDIVIDUAL) 4 Polyline color ASF (GKS$K_ASF_ Integer I BUNDLED or GKS$K_ASF_INDIVIDUAL) 5 Polyline index Integer I 6 Line type index Integer U 7 Line width scale factor Real U 8 Polyline color index Integer I 65 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 9 X component of the first world Real U coordinate point 10 Y component of the first world Real U coordinate point 11 X component of the second Real U world coordinate point 12 Y component of the second Real U ______________world_coordinate_point____________________________ Locator-Class PET -13 The input data record size (INITIALIZE function argument rec_ size) is 4. The input data record (INITIALIZE function argument data_rec) contains the component listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Segment identifier of the Integer U segment to be used for the ______________cursor_segment____________________________________ 10.4.3 Pick Class This section lists the input data record information required for pick-class PETs. Pick-Class PETs 1, 2, and 3 The input data record size (INITIALIZE function argument rec_ size) is 4. The input data record (INITIALIZE function argument data_rec) contains the component listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Size of the pick aperture Real U (prompt) in device ______________coordinates_______________________________________ 66 DIGITAL GKS Version 6.5 Release Notes 10.4.4 String Class This section lists the input data record information required for string-class PETs. String-Class PET 1 The input data record size (INITIALIZE function argument rec_ size) is 8. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Number of characters in the Integer U input buffer 2 Initial cursor position within Integer I the string, ______________1__position__string_length______________________ 10.4.5 Stroke Class This section lists the input data record information required for stroke-class PETs. Stroke-Class PET 1 The input data record size (INITIALIZE function argument rec_ size) is 20. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Number of stroke points in the Integer U input buffer 2 Editing position expressed as Integer I a stroke point 3 X component of the world Real U coordinate change vector 4 Y component of the world Real U coordinate change vector 5_____________Time_interval,_in_seconds_________Real________I___ Stroke-Class PET 3 his PET requires you to use one of two input data records. Which input data records you use depends on the value of the attribute control flag. If the attribute control flag is GKS$K_ ACF_CURRENT, the prompt and echo displays the current set of 67 DIGITAL GKS Version 6.5 Release Notes output attributes. If the attribute control flag is GKS$K_ACF_ SPECIFIED, the prompt and echo displays the output attributes specified in the input data record. To specify the current output attribute values, the input data record size (INITIALIZE function argument rec_size) is 24. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Number of stroke points in the Integer U input buffer 2 Editing position expressed as Integer I a stroke point 3 X component of the world Real U coordinate change vector 4 Y component of the world Real U coordinate change vector 5 Time interval, in seconds Real I 6 Attribute control flag (GKS$K_ Integer U ______________ACF_CURRENT)______________________________________ To specify new output attribute values, the input data record size (INITIALIZE function argument rec_size) is 52. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Number of stroke points in the Integer U input buffer 2 Editing position expressed as Integer I a stroke point 3 X component of the world Real U coordinate change vector 4 Y component of the world Real U coordinate change vector 5 Time interval, in seconds Real I 6 Attribute control flag (GKS$K_ Integer U ACF_CURRENT) 68 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 7 Polymarker type ASF (GKS$K_ Integer I ASF_BUNDLED or GKS$K_ASF_ INDIVIDUAL) 8 Polymarker scale factor ASF Integer I (GKS$K_ASF_BUNDLED or GKS$K_ ASF_INDIVIDUAL) 9 Polymarker color ASF (GKS$K_ Integer I ASF_BUNDLED or GKS$K_ASF_INDIVIDUAL) 10 Polymarker index Integer I 11 Polymarker type index Integer U 12 Polymarker scale factor Real U 13____________Polymarker_color_index____________Integer_____I___ Stroke-Class PET 4 This PET requires you to use one of two input data records. Which input record you use depends on the value of the at- tribute control flag. If the attribute control flag is GKS$K_ ACF_CURRENT, the prompt and echo displays the current set of output attributes. If the attribute control flag is GKS$K_ACF_ SPECIFIED, the prompt and echo displays the output attributes specified in the input data record. To specify the current output attribute values, the input data record size (INITIALIZE function argument rec_size) is 24. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Number of stroke points in the Integer U input buffer 2 Editing position expressed as Integer I a stroke point 3 X component of the world Real U coordinate change vector 4 Y component of the world Real U coordinate change vector 5 Time interval, in seconds Real I 6 Attribute control flag (GKS$K_ Integer U ______________ACF_CURRENT)______________________________________ 69 DIGITAL GKS Version 6.5 Release Notes To specify new output attribute values, the input data record size (INITIALIZE function argument rec_size) is 52. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Number of stroke points in the Integer U input buffer 2 Editing position expressed as Integer I a stroke point 3 X component of the world Real U coordinate change vector 4 Y component of the world Real U coordinate change vector 5 Time interval, in seconds Real I 6 Attribute control flag (GKS$K_ Integer U ACF_CURRENT) 7 Line type ASF (GKS$K_ Integer I ASF_BUNDLED or GKS$K_ASF_ INDIVIDUAL) 8 Line width scale factor ASF Integer I (GKS$K_ASF_BUNDLED or GKS$K_ ASF_INDIVIDUAL) 9 Polyline color ASF (GKS$K_ASF_ Integer I BUNDLED or GKS$K_ASF_INDIVIDUAL) 10 Polyline index Integer I 11 Line type index Integer U 12 Line width scale factor Real U 13____________Polyline_color_index______________Integer_____I___ 10.4.6 Valuator Class This section lists the input data record information required for valuator-class PETs. Valuator-Class PETs -3, -2, -1, 1, 2, and 3 The input data record size (INITIALIZE function argument rec_ size) is 8. The input data record (INITIALIZE function argument data_rec) contains the components listed in the following table: 70 DIGITAL GKS Version 6.5 Release Notes ________________________________________________________________ Used or Data Ig- Component_____Description_______________________Type________nored 1 Low value of the numeric range Real U 2 High value of the numeric Real U ______________range_____________________________________________ 10.5 Device Specifics Reference Manual for DEC GKS and DEC PHIGS This section lists the changes in the Device Specifics Reference Manual for DEC GKS and DEC PHIGS manual that occurred after the manual was printed in 1994. 10.5.1 GKS_PREDEF Program Example The GKS_PREDEF program example on page 1-7 is incorrect. The output should be as follows: Color Information for Digital LCP01 or LCG01 printer (15) devices Default color model: RGB (1) Number of color models: 4 Color models: 1 - RGB 2 - CIE 3 - HSV 4 - HLS Number of colors: 8 Color availability: Color Number of predefined colors: 8 Predefined color table: ============================================== Index Red Green Blue ============================================== 0 1.000 1.000 1.000 1 0.000 1.000 0.000 2 1.000 0.000 0.000 3 0.000 0.000 1.000 4 0.000 1.000 1.000 5 1.000 0.000 1.000 6 1.000 1.000 0.000 7 0.000 0.000 0.000 ============================================== 71 DIGITAL GKS Version 6.5 Release Notes 10.6 DEC GKS GKS3D$ Binding Reference Manual The input data record information described in Section 10.4 is also true for the GKS3D$ binding, with the following exceptions: o The GKS3D$ include files are gks3d_defs.*. o All the constants begin with GKS3D$ instead of GKS$ (for example, GKS3D$K_ACF_CURRENT). o The INITIALIZE function parameter rec_size is called data_len in the GKS3D$ binding. 10.6.1 INQUIRE STROKE DEVICE STATE The syntax lists stroke_x and stroke_y as separate arguments. In fact, these values are included in a single argument, wc_ stroke2. 10.6.2 INQUIRE STROKE DEVICE STATE 3 There are a few errors in the description of the INQUIRE STROKE DEVICE STATE 3 function. In the syntax section, the argument should be ret_pts, not ret_points. The syntax also lists stroke_x, stroke_y, and stroke_z as sepa- rate arguments. In fact, these values are included in a single argument, wc_stroke3. Further, in the description of this argu- ment, it should read "The points are ordered . . . , for each of the ret_pts. 72 DIGITAL GKS Version 6.5 Release Notes 11 Trademarks The following are trademarks of Digital Equipment Corporation: AXP, DDIF, DEC GKS, DEClaser 2100, DEClaser 2200, DECstation 5000, DECwindows, Digital GKS, DIGITAL GKS, Digital UNIX, DIGI- TAL UNIX, LA324, OpenVMS, ReGIS, ULTRIX, VAX, VAXstation 3520, VAXstation 3540, VAXstation 4000, VMS, VT330, VT340, and the Digital logo. The following are third-party trademarks: Ada is a trademark of the U.S. Government (Ada Joint Program Office). LaserJet is a registered trademark of Hewlett-Packard Company. Motif, OSF/Motif, and OSF/1 are registered trademarks of Open Software Foundation, Inc. PostScript is a trademark of Adobe Systems, Incorporated. Tektronix is a registered trademark of Tektronix, Inc. 73