The first set of routines to work on are those called through the nfbWinOps(D4nfb) structure. All of these routines must apply alu and planemask. If your hardware cannot do this, it is unlikely that you will gain much by implementing these NFB capabilities.
The sample routines in the gen directory
implement all of these routines with
By copying and modifying these routines,
you can take better advantage of the hardware capabilities.
The routines to modify are:
|DrawSolidRects(D3nfb)||implement fast fills|
|DrawMonoImage(D3nfb)||used for most text operations. Chips that can do color expansion of mono images give excellent performance for this routine.|
|DrawOpaqueMonoImage(D3nfb)||same as DrawMonoImage( ) except that the background must be drawn as well. One trick is to essentially execute DrawMonoImage( ) twice: once for the foreground and then again for the background.|
|ReadImage(D3nfb)||no need to worry about planemask|
|DrawPoints(D3nfb)||draw a list of points|
|TileRects(D3nfb)||draws a list of rectangles, filling the rectangles with the specified tile. Doing these operations in hardware will help your xbench results.|
|ValidateWindowGC(D3nfb)||examines the window graphics context and the drawable and adjusts the context (or other device dependent) resources to ensure that future graphics operations that include a GC and drawable will function correctly.|
For more information about each of these routines,
see the appropriate manual pages
and the sample code.