| |
Preface | xiii |
1. Overview | 19 |
| ...Introduction to the XIL Imaging Library | 19 |
| ...Solaris Graphics Architecture | 20 |
| ...Division of Function in the XIL Library | 20 |
| ...XIL API Layer | 21 |
| ......XIL Base Classes | 23 |
| ..........The XilGlobalState Class | 23 |
| ..........The XilObject Class | 23 |
| ..........The XilSystemState Class | 24 |
| ......XIL API Level Classes | 24 |
| ..........The XilCis Class | 25 |
| ..........The XilColorspace Class | 25 |
| ..........The XilColorspaceList Class | 25 |
| ..........The XilDevice Class | 26 |
| |
| ..........The XilDitherMask Class | 26 |
| ..........The XilError Class | 26 |
| ..........The XilHistogram Class | 27 |
| ..........The XilImage Class | 27 |
| ..........The XilImageFormat Class | 27 |
| ..........The XilInterpolationTable Class | 28 |
| ..........The XilKernel Class | 28 |
| ..........The XilLookup Class | 28 |
| ..........The XilRoi Class | 28 |
| ..........The XilSel Class | 29 |
| ..........The XilStorage Class | 29 |
| ...XIL Core Layer | 29 |
| ......Deferred Execution | 30 |
| ..........The XIL Library Method | 30 |
| ..........Graph Evaluation and Molecules | 31 |
| ..........Some Considerations | 32 |
| ..........Unusual Effects of Deferred Execution | 34 |
| ...XIL GPI Layer | 35 |
| ......GPI Layer Device Classes | 36 |
| ..........The XilDeviceManager Class | 36 |
| ......GPI Layer Supporting Classes | 37 |
| ..........The XilBox Class | 37 |
| ..........The XilBoxList Class | 38 |
| ..........The XilCondVar Class | 38 |
| |
| ..........The XilConvexRegionList Class | 38 |
| ..........The XilFunctionInfo Class | 38 |
| ..........The XilMutex Class | 39 |
| ..........The XilOp Class | 39 |
| ..........The XilRectList Class | 40 |
| ..........The XilScanlineList Class | 40 |
| ..........The XilTile Class | 40 |
| ..........The XilTileList Class | 40 |
| ...Writing Device Handlers | 41 |
| ..........I/O Devices | 41 |
| ..........Compute Devices | 41 |
| ..........Compression Devices | 41 |
| ..........Storage Devices | 42 |
2. More on Writing Device Handlers | 43 |
| ...What Does the XIL Library Provide? | 43 |
| ......What Kinds of Ports Are Possible in the XIL Library? | 44 |
| ......What Kinds of Ports Are Not Possible in the XIL Library? | 45 |
| ...The Development Environment | 45 |
| ...Installing XIL Device Handlers | 47 |
| ...Error Reporting for XIL Device Handlers | 47 |
| ...Version Control for XIL Handlers | 48 |
| ...How XIL Device Handlers Work | 49 |
| ...Implementing an XIL Operation | 52 |
| ......Operation Prototype: Atomic Function | 53 |
| |
| ......Basic Structure: Atomic Function | 54 |
| ..........Step 1: Splitting Boxes on Tile Boundaries | 55 |
| ..........Obtaining Necessary Images and XilOp Object |
| ..........Parameters | 55 |
| ..........Step 3: Looping Over Boxes | 56 |
| ..........Step 4: Acquiring Storage | 56 |
| ..........Step 5: Processing the Data | 59 |
| ..........Handling Failure and Return Values | 61 |
| ......Operation Prototype: Molecule | 62 |
| ......Basic Structure: Molecule | 63 |
| ..........Step 1: (Optional) Verifying the Passed-In Molecule . | 64 |
| ..........Step 2: Obtaining the XilOp Objects and Their |
| ..........Parameters | 64 |
| ..........Step 3: Splitting Boxes on Tile Boundaries | 66 |
| ..........Step 4: Obtaining Images and XilOp Object Parameters | 66 |
| ..........Step 5: Looping Over Boxes | 68 |
| ..........Step 6: Acquiring Storage | 68 |
| ..........Step 7: Processing the Data | 69 |
| ......Supporting Re-entrancy | 70 |
| ......Pre-Process and Post-Process Methods | 71 |
| ..........Pre-Process Method | 71 |
| ..........Post-Process Method | 73 |
| ...Registering Operations With the XIL Library | 73 |
| ......Generating describeMembers() | 73 |
| ......XilConfig Syntax Describing an Operation | 74 |
| |
| ......Example of Generating describeMembers() | 75 |
| ...Generic Steps To Writing a Device Handler | 76 |
3. I/O Devices | 79 |
| ...About I/O Devices | 79 |
| ...I/O Device Capabilities | 80 |
| ...Implementing an I/O Device | 81 |
| ......Implementing an I/O Device Manager | 81 |
| ..........Creating a Device Manager | 81 |
| ..........Required Device Manager Functions | 82 |
| ......Implementing a Device | 85 |
| ..........Creating a Device | 86 |
| ..........Required Device Functions | 86 |
| ..........Optional Device functions | 90 |
| ...Adding an I/O Device | 91 |
4. Compute Devices | 93 |
| ...About Compute Devices | 93 |
| ...Implementing an XIL Function | 93 |
| ...Loading Compute Handlers | 94 |
| ......config Entry | 94 |
| ......Formatting Guidelines | 95 |
| ......Using Script Files | 96 |
| ..........Appending An Entry | 96 |
| ..........Removing An Entry | 98 |
| ...Compute Device Handler- Basic Structure Variations | 100 |
| |
| ......Data Collection Operations | 100 |
| ......Area-Based Operations | 101 |
| ..........Convolution, Erode, and Dilate | 101 |
| ..........Fill and Error Diffusion | 108 |
| ......Geometric Operations | 109 |
| ..........Transpose | 110 |
| ..........Affine | 112 |
| ..........Rotate | 115 |
| ..........Scale and Translate | 115 |
| ..........Tablewarp | 116 |
5. Compression/Decompression | 117 |
6. Storage Devices | 119 |
| ...About Storage Devices | 119 |
A. XilOp Object | 121 |
| ...Extracting Images and Parameters | 121 |
| ......Extracting Source Images | 121 |
| ......Extracting Destination Images | 122 |
| ......Extracting Parameters | 122 |
| ...Source Images, Destination Image, and Parameters | 123 |
B. XIL Atomic Functions | 129 |