| |
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 |
| |
| ......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 |