X Server Device Developer's Guide
  Search only this book
Download this book in PDF

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


Preface
xvii

1. DDX Porting Overview
1
...The DDX Interface 2
...The Loadable DDX 3
......Simple Frame Buffer Support 3
......Multiple-Plane Group Support 3
...Performance Enhancements 4
...x86: In-line Assembly Language Note 4
...DPS Extension Graphics Rendering 6
...Test/Verify Recommendation 7

2. The Loadable DDX Interface
9
...How the Server Interfaces With the Loadable DDX Handler 9
......The Initialization Function 11
......Device Self-Identification 12
......DDX Versioning 12

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

4. Cursors
29
...The Basic DDX Interface 29
...Software Cursor 30
......miDC Layer 30
......miPointer Layer 32
......miSprite Layer 33
......miSetZeroLineBias Function 34
...Hardware Cursor 34
......The sunSprite Layer 35
......Examples of miPointerSpriteFuncs 37
......Kernel Cursor Tracking - The sunHWCursor Layer 41

5. Multiple Plane Group Interface
45
...MPG Architectural Overview 45
......Data Structure Initialization 47
...MPG Functional Interface 48
......initPixmap 48
......mpgGetScreenState 49
......mpgInsertPlanegroup 51
......Plane Group Aliasing 53
......mpgScreenInit 57
......getMpgInfoFromVisual 59
......mpgChangeInfo 59
......freeMpgInfo 60
......mpgCursorInitialize 60
......mpgSetCursorValues 61
......mpgSetCursorHasEnable 61
......CopyPlanes and AggregatePlanes 61
......mpgSetScreenFuncs 65

6. Overlay Window Interface
67
...Introduction 67
...Device Setup 68
......Transparent Pixel 69
...Initializing Overlays 72
...Overlay GPI Specification 73
......OvlPairs 73
......ovlScreenInit 73
......ovlWrapDevFuncs 74
......ovlGetPaintType 75
......ovlIsOverlay 75
......XOvlClutInfo 76
......OvlDevFuncs 76

7. Window ID Interface
85
...Hardware Window IDs 85
...Software WID Object 86
......WID Object Attributes 86
...Accessing WID 88
...Using MPG 88
...How to Use WID 88
......DDX Handler 88
......MPG 89
......CMAP 89
...WID Data Types 90
......WidPtr 90
......WidAllocFunc 91
......WidFreeFunc 92
......WidSetColorLutFunc 92
...Window ID Functions 93
......General Routines 93
......Handler-Specific Routines 99
...WID Device-Dependent Allocation and Free Functions
......Implementation 100
......Allocation Function 101
......Free Function 102

8. Colormap Interface
103
...Introduction to CMAP 103
......Sharing Equivalent Colormaps 104
...CMAP Call Summary 104
......General Calls 104
......MHC Calls 104
...Compiling and Linking 105
...MPG and WID Initialization 105
...CMAP Initialization and Utilities 106
......Screen Initialization Routine 106
......Device-Dependent Color LUT Access Routines 107
......Color LUT Pool Description 114
......Initialization Example - Multiple Color LUT 124
......Initialization Example - Single Color LUT 125
......WID Types 125
......Utility Routines 125
......Colormap Private Data 127
...Controlling MHC's WIDs 128
......Overloading WIDs 129
......Overloading Control Routines 130
...Changing a Window's WID 132
......cmapMhcWindowAttachWid 132
......cmapMhcWindowDetachWid 133
...Changing A Window's Colormap 133
......cmapMhcChangeFlavor 134
......Allocating Unique WIDs 136

9. Direct Graphics Access Drawable Client Interface
139
...Overview 139
......Drawable Types 140
......DGA Drawables 140
......Mutual Exclusion 141
......Sites 142
......Backing Store 143
......Zombie Drawables 144
...Compiling and Linking 144
...DGA Drawable Functions 145
......Initialization and Cleanup 145
......Drawable Locking and Change Detection 147
......Ancillary Buffer Management Interface 151
......General Utility Functions 158
......Drawable Sites 161
......Clipping State 166
......Dealing with Cursor Conflicts 170
......Backing Store Routines 172
......DGA Overlays 177
......Colormap Grabber Interface 180
......Miscellaneous Grabbers 184

10. Direct Graphics Access Drawable DDX Interface
189
...Initializing Drawable Grabs 189
...Device-Supplied Routines 191
...Caching Routines 201
...Device Information Routines 203
...DGA and Colormaps 204

11. Input Devices
205
...Extension Input Device Overview 206
...Handling of Extension Input Devices 207
......Extension Device Initialization 207
......Extension Device Open 208
......Reading Input Data 208
......Extension Device Close 210
......Restart and Shutdown 210
...Adding An Extension Input Device 210
......Writing the Device Handler 211
......Adding An OWconfig File Entry 214
......Debugging the Device Handler 214
......Writing The STREAMS Module 215
...Input Library Functions 215
......Public Server Functions 215
......Device Shared Library Functions 234

12. Direct Pixel Access DDX Interface
243
...The Direct Access Cycle 243
...Requirements for Drawables Using DPA 244
...Initialization 245
......sunDPAScreenRec 245
......sunDPAScreenInit 246
...Device-Supplied Routines 247
......sunDPAAccessType 247

13. Debug Server Modules
251

14. MIT Shared Memory Extension
253
...MIT Shared Memory Interface 254
......ShmRegisterFbFuncs 254
......ShmRegisterFuncs 255
......ShmSetPixmapFormat 255

A. The OWconfig File
257
...SPARC: Sample OWconfig File 258
...x86: Sample OWconfig File 260
...File Format Definition 262
...File and Module Search Paths 263
......Multiple OWconfig Files 264
...The XDISPLAY Class 265
...The XSCREENCONFIG Class 266
...The XSCREEN Class 267
...The XINPUT Class 267
......SPARC: Sample XINPUT Class 268
......x86: Sample XINPUT Class 268
...The XEXTENSION Class 269
...OWconfig Access Method 269
......OWconfig Database 269
......OWconfig API 270
......Packaging 272
......Typical Usage 272

B. Packaging and Installation Hints
275
...Installation Hints 275
...Packaging Hints 276

C. Virtual User Input Device Interface
281
...Virtual User Input Device (VUID) 281
...VUID Station Codes 282
...Firm Events 283
...Device Controls 285

D. Dynamically Loadable Extensions
287

Index
289