OpenWindows Server Device Developer's Guide
  Buscar sólo este libro
Descargar este libro en PDF

............................Contents


Preface
xvii

New Features and Changes
xxiii

1. DDX Porting Overview
1
...The DDX Interface 2
...The Loadable DDX 3
......Simple Frame Buffer Support 3
......Multiple-Plane Group Support 3

2. The Loadable DDX Interface
5
...How the Server Interfaces With the Loadable DDX Handler 5
......The Initialization Function 7
......Device Self-Identification 8
......DDX Versioning 8

3. Screen Initialization
11
...Initialization Steps 11
......sunGetDDKVersion 12
......Initialize the ScreenRec Functions 13
......sunScreenAllocate 13
......Device-Dependent Initialization 14
......sunSetPixmapFormat 16
......sunGetMonitorRes 17
......sunGetVisualInfo 18
......Export Supported Visuals 18
......Initialize Utility Layers 19
......Initialize the Banner Code 19
......Supply a SaveScreen Function 20
......Supply a CloseScreen Function 21
...Initializing Visual Gamma 21
......Gamma-Corrected Visuals 21
......The Monitor Intensity Response Property 22
......Initializing a Root Window Property 23

4. Cursors
25
...The Basic DDX Interface 25
...Software Cursor 26
......miDC Layer 26
......The miPointer Layer 28
......The miSprite Layer 29
...Hardware Cursor 30
......The sunSprite Layer 30
......Examples of miPointerSpriteFuncs 32
......Kernel Cursor Tracking - The sunHWCursor Layer 36

5. Multiple Plane Group Interface
41
...MPG Architectural Overview 41
......Data Structure Initialization 43
...MPG Functional Interface 44
......initPixmap 44
......mpgGetScreenState 45
......mpgInsertPlanegroup 47
......Plane Group Aliasing 49
......mpgScreenInit 53
......getMpgInfoFromVisual 55
......mpgChangeInfo 55
......freeMpgInfo 56
......mpgCursorInitialize 56
......mpgSetCursorValues 57
......mpgSetCursorHasEnable 57
......CopyPlanes and AggregatePlanes 57

6. Overlay Window Interface
61
...Introduction 61
...Device Setup 62
......Transparent Pixel 63
...Initializing Overlays 66
...Overlay GPI Specification 67
......OvlPairs 67
......ovlScreenInit 67
......ovlWrapDevFuncs 68
......ovlGetPaintType 69
......ovlIsOverlay 69
......XOvlClutInfo 70
......OvlDevFuncs 70

7. Window ID Interface
79
...Hardware Window IDs 79
...Software WID Object 80
......WID Object Attributes 80
...Accessing WID 82
...Using MPG 82
...How to Use WID 82
......DDX Handler 82
......MPG 83
......CMAP 83
...WID Data Types 84
......WidPtr 84
......WidAllocFunc 85
......WidFreeFunc 86
......WidSetColorLutFunc 86
...Window ID Functions 87
......General Routines 87
......Handler-Specific Routines 93
...WID Device-Dependent Allocation and Free Functions
......Implementation 94
......Allocation Function 95
......Free Function 96

8. Colormap Interface
99
...Introduction to CMAP 99
...CMAP Call Summary 100
......General Calls 100
......MHC Calls 100
...Compiling and Linking 101
...MPG and WID Initialization 101
...CMAP Initialization and Utilities 102
......Screen Initialization Routine 102
......Device-Dependent Color LUT Access Routines 103
......Color LUT Pool Description 110
......Initialization Example - Multiple Color LUT 119
......Initialization Example - Single Color LUT 120
......WID Types 121
......Utility Routines 121
......Colormap Private Data 123
...Controlling MHC's WIDs 124
......Overloading WIDs 125
......Overloading Control Routines 126
...Changing a Window's WID 128
......cmapMhcWindowAttachWid 128
......cmapMhcWindowDetachWid 129
...Changing A Window's Colormap 129
......cmapMhcChangeFlavor 130
......Allocating Unique WIDs 132

9. Multibuffering Extension to X Interface
135
...Multibuffering 135
......Multibuffered Windows and Multibuffer Sets 135
......Multibuffer Flip Modes 136
...HW MBX Functions 137
......MbxScreenInit 137
......MbxDevFuncs 138
......TryMpg 138
......CreateMultibuffer2 140
......DestroyMultibuffer 141
......ResizeMultibuffer 142
......RepositionMultibuffer 143
......DisplayMultibuffer 143
......SetupMultibufferInvisible 144
......SetMultibufferVisible 145
......LastUpdateTime 145

10. Direct Graphics Access Drawable Client Interface
147
...Overview 147
......Drawable Types 148
......DGA Drawables 148
......Mutual Exclusion 149
......Sites 150
......Backing Store 151
...Compiling and Linking 152
...DGA Drawable Functions 153
......Initialization and Cleanup 153
......Drawable Locking and Change Detection 156
......General Utility Functions 160
......Drawable Sites 164
......Clipping State 169
......Dealing with Cursor Conflicts 174
......Backing Store Routines 176
......Colormap Grabber Interface 182
......Multibuffering Grabber Interface 186
......Miscellaneous Grabbers 195
......Zombie Drawables 198

11. Direct Graphics Access Drawable DDX Interface
201
...Initializing Drawable Grabs 201
...Device-Supplied Routines 203
...Server-Supplied Multibuffering Routines 214
...Caching Routines 218
...Device Information Routines 220

12. Input Devices
223
...Extension Input Device Overview 224
...Handling of Extension Input Devices 225
......Extension Device Initialization 225
......Extension Device Open 226
......Reading Input Data 226
......Extension Device Close 228
......Restart and Shutdown 228
...Adding An Extension Input Device 228
......Writing the Device Handler 229
......Adding An Entry to the OWconfig File 232
......Debugging the Device Handler 232
......Writing The STREAMS Module 233
...Input Library Functions 233
......Public Server Functions 233
......Device Shared Library Functions 252

A. The OWconfig File
261
...SPARC Sample OWconfig File 261
...x86 Sample OWconfig File 263
...File Format Definition 266
...File and Module Search Paths 267
...The XDISPLAY Class 268
...The XSCREENCONFIG Class 269
...The XSCREEN Class 270
...The XINPUT Class 271
......SPARC Sample XINPUT Class 271
......x86 Sample XINPUT Class 271
...The XEXTENSION Class 272
...OWconfig Access Method 272
......OWconfig Database 272
......OWconfig API 273
......Packaging 275
......Typical Usage 275

B. Packaging and Installation Hints
277
...Installation Hints 277
...Packaging Hints 278
......Package Delivery Example 279

C. Virtual User Input Device Interface
283
...Virtual User Input Device (vuid) 283
......What Kind of Devices? 283
...Vuid Station Codes 284
......Address Space Layout 284
......Adding a New Segment 284
...Firm Events 285
......The Firm_event Structure 285
...Device Controls 287
......Output Mode 287

D. Dynamically Loadable Extensions
289