CONTENTS Title Page Copyright Page Preface 1 Introduction 1.1 Writing Handlers for Your Devices 1.2 Workstation Handlers 2 How GKS Works 2.1 The GKS System 2.1.1 Inquiries 2.1.2 Transformations 2.1.3 Input 2.1.4 Output 2.2 Communication Between the Kernel and Your Handler 2.2.1 DEC GKS Data Types 2.2.2 Parameter Passing 3 Building a Workstation Handler System 3.1 Required Capabilities 3.2 Hardcopy Output Devices 3.3 Workstation Handler Data Structures 3.3.1 Building the Workstation Description Table 3.4 Workstation State List 3.5 Required Functions 3.5.1 Segment Simulation 3.5.2 Message and Constant Files 3.6 Suggested Escape Function 3.6.1 INQUIRE GDP EXTENT 3.7 Developing Your Device Function Table 3.8 Linking Your Handler to DEC GKS 3.9 Defining Workstation Handler Logical Names 3.9.1 Handler Logical Names 3.9.2 Adding Logical Names to GKSTARTUP.COM 3.9.3 Reentrance 4 Workstation Handler Control and Transformation Functions 4.1 Active Attribute Array 4.2 Function Descriptions CLEAR WORKSTATION CLOSE WORKSTATION ESCAPE MESSAGE OPEN WORKSTATION PERFORM DEFERRED OUTPUT REDRAW ALL SEGMENTS ON WORKSTATION SET DEFERRAL MODE SET GLOBAL INTERACTIONS SET NDC TRANSFORMATION SET NORMALIZATION TRANSFORMATION SET WORKSTATION VIEWPORT SET WORKSTATION WINDOW UPDATE WORKSTATION 5 Workstation Handler Input Functions 5.1 Writing Input Functions 5.1.1 INITIALIZE Functions 5.1.2 SET Functions 5.2 REQUEST, SAMPLE, and EVENT Input 5.2.1 Managing SAMPLE and EVENT Input 5.2.2 GKS$STORE_EVENTS 5.3 Function Descriptions INITIALIZE CHOICE INITIALIZE LOCATOR INITIALIZE PICK INITIALIZE STRING INITIALIZE STROKE INITIALIZE VALUATOR REQUEST CHOICE REQUEST LOCATOR REQUEST PICK REQUEST STRING REQUEST STROKE REQUEST VALUATOR SAMPLE CHOICE SAMPLE LOCATOR SAMPLE PICK SAMPLE STRING SAMPLE STROKE SAMPLE VALUATOR SET CHOICE MODE SET LOCATOR MODE SET PICK MODE SET STRING MODE SET STROKE MODE SET VALUATOR MODE 6 Workstation Handler Inquiry Functions INQUIRE CHOICE DEVICE STATE INQUIRE COLOR FACILITIES INQUIRE COLOR REPRESENTATION INQUIRE DEFAULT CHOICE DEVICE DATA INQUIRE DEFAULT DEFERRAL STATE VALUES INQUIRE DEFAULT LOCATOR DEVICE DATA INQUIRE DEFAULT PICK DEVICE DATA INQUIRE DEFAULT STRING DEVICE DATA INQUIRE DEFAULT STROKE DEVICE DATA INQUIRE DEFAULT VALUATOR DEVICE DATA INQUIRE DISPLAY SPACE SIZE INQUIRE DYNAMIC MODIFICATION OF SEGMENT ATTRIBUTES INQUIRE DYNAMIC MODIFICATION OF WORKSTATION ATTRIBUTES INQUIRE FILL AREA FACILITIES INQUIRE FILL AREA REPRESENTATION INQUIRE GDP PRIMITIVES INQUIRE GENERALIZED DRAWING PRIMITIVE INQUIRE LIST OF COLOR INDEXES INQUIRE LIST OF FILL AREA INDEXES INQUIRE LIST OF PATTERN INDEXES INQUIRE LIST OF POLYLINE INDEXES INQUIRE LIST OF POLYMARKER INDEXES INQUIRE LIST OF TEXT INDEXES INQUIRE LOCATOR DEVICE STATE INQUIRE MAXIMUM LENGTH OF WORKSTATION STATE TABLES INQUIRE NUMBER OF AVAILABLE LOGICAL INPUT DEVICES INQUIRE NUMBER OF SEGMENT PRIORITIES SUPPORTED INQUIRE PATTERN FACILITIES INQUIRE PATTERN REPRESENTATION INQUIRE PICK DEVICE STATE INQUIRE PIXEL INQUIRE PIXEL ARRAY INQUIRE PIXEL ARRAY DIMENSIONS INQUIRE POLYLINE FACILITIES INQUIRE POLYLINE REPRESENTATION INQUIRE POLYMARKER FACILITIES INQUIRE POLYMARKER REPRESENTATION INQUIRE PREDEFINED COLOR REPRESENTATION INQUIRE PREDEFINED FILL AREA REPRESENTATION INQUIRE PREDEFINED PATTERN REPRESENTATION INQUIRE PREDEFINED POLYLINE REPRESENTATION INQUIRE PREDEFINED POLYMARKER REPRESENTATION INQUIRE PREDEFINED TEXT REPRESENTATION INQUIRE SEGMENT NAMES ON WORKSTATION INQUIRE SIZE OF HANDLER STORAGE INQUIRE STRING DEVICE STATE INQUIRE STROKE DEVICE STATE INQUIRE TEXT EXTENT INQUIRE TEXT FACILITIES INQUIRE TEXT REPRESENTATION INQUIRE VALUATOR DEVICE STATE INQUIRE WORKSTATION CATEGORY INQUIRE WORKSTATION CLASSIFICATION INQUIRE WORKSTATION DEFERRAL AND UPDATE STATES INQUIRE WORKSTATION TRANSFORMATION 7 Workstation Handler Metafile Functions GET ITEM FROM METAFILE READ ITEM FROM METAFILE WRITE ITEM TO METAFILE 8 Workstation Handler Set Representation Functions 8.1 Function Descriptions SET COLOR REPRESENTATION SET FILL AREA REPRESENTATION SET PATTERN REPRESENTATION SET POLYLINE REPRESENTATION SET POLYMARKER REPRESENTATION SET TEXT REPRESENTATION 9 Workstation Handler Output Functions 9.1 Coordinate Data 9.2 Attributes 9.3 Aspect Source Flags 9.4 Segment Overlap 9.5 Output Function Descriptions CELL ARRAY FILL AREA GDP HIGHLIGHT EXTENT POLYLINE POLYMARKER TEXT 10 Workstation Handler Segment Functions CLOSE SEGMENT CREATE SEGMENT DELETE SEGMENT RENAME SEGMENT SET DETECTABILITY SET HIGHLIGHTING SET SEGMENT PRIORITY SET SEGMENT TRANSFORMATION SET VISIBILITY A Transformations A.1 Concatenating Transformation Matrixes A.2 NDC Transformation and Segment Simulation A.3 NDC Transformation When Your Handler Supports Segments A.4 Algorithms for Transformations A.4.1 Transformations Assuming an Identity NDC Transformation A.4.2 Transformations Assuming the Nonidentity NDC Transformation A.4.2.1 Transforming from NDC to LDC A.4.2.2 Transforming from WC to LDC B Stroke Text Simulation Routines SIMULATE STROKE TEXT SIMULATE STROKE TEXT EXTENT SIMULATE STROKE INQUIRE TEXT FACILITIES C Pick Simulation Functions FIND SEGMENT FIND SEGMENT EXTENT D Workstation Handler Function Examples D.1 Data Structures D.2 Control Functions D.3 Transformation Functions D.4 Output Functions D.5 Output Attribute Functions D.6 Inquiry Functions D.7 DFT Building Macro D.8 Linking Command Procedure EXAMPLES 3-1 Sample DFT-Building Macro FIGURES 1-1 The Application, GKS Kernel, and Handlers 1-2 Workstation Handler Diagram 6-1 Pixel Array Dimensions 6-2 Text Extents 1 6-3 Text Extents 2 6-4 Text Extents 3 6-5 Text Extents 4 6-6 Text Extents 5 A-1 Transformation Pipeline for Segment Simulation A-2 Transformation Pipeline for Handlers That Support Segments TABLES 2-1 GKS State Lists and Description Tables 2-2 GKS Coordinate Systems 2-3 DEC GKS Data Types 2-4 Passing Mechanisms for DEC GKS Data Types 3-1 GKS Level 2c Required Capabilities 3-2 Workstation Handler Workstation Description Table Structure 3-3 WDT Items for All Workstation Types Except MI and MO 3-4 WDT Items for OUTPUT and OUTIN Workstations 3-5 WDT Items for LOCATOR Logical Input Devices 3-6 WDT Items for STROKE Logical Input Devices 3-7 WDT Items for VALUATOR Logical Input Devices 3-8 WDT Items for CHOICE Logical Input Devices 3-9 WDT Items for PICK Logical Input Devices 3-10 WDT Items for STRING Logical Input Devices 3-11 WSL Elements for All Workstation Types 3-12 WSL Elements for OUTIN, OUTPUT, and MO Workstations 3-13 WSL Items for LOCATOR Logical Input Devices 3-14 WSL Items for STROKE Logical Input Devices 3-15 WSL Items for VALUATOR Logical Input Devices 3-16 WSL Items CHOICE Logical Input Devices 3-17 WSL Items PICK Logical Input Devices 3-18 WSL Items for STRING Logical Input Devices 3-19 GKSMSGS and GKSDEFS File Extensions 3-20 Keywords for DFT Macro 3-21 Keywords for DFT_INPUT Macro 3-22 Keywords for DFT_GKS_INQ Macro 3-23 Keywords for DFT_WS_INQ Macro 4-1 Active Attribute Array Structure 4-2 Call Back Table Output Parameter 7-1 Required Metafile Format 7-2 Metafile Format Items Determined by Your Functions 9-1 ASF Bits 9-2 No Change Bits 9-3 GKS Bitmask Constants