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