ControlPoints.nib
README file for the ControlPoints application. The ControlPoints application looks at seven different approaches to drawing a large number of small objects on the screen. The difference in approaches ranges from taking a little over a second one way to about 40 milliseconds with another. (The first draws each one using moveto, lineto, etc. while the second uses a Type 3 font and xyshow.) The different approaches are: Basic drawing - using moveto, lineto, etc to draw each object. User paths w/cache - drawing each object individually using a user path but caching the path and using translate to take advantage of the cache. User paths (large array of points) - drawing a number of points at once using user paths. Rectangle operators - drawing rectangles using rectfill and rectstroke. Large arrays are sent at a time instead of drawing each rectangle individually. Compositing - compositing the image of a control point. Show - using a Type 3 font and drawing the points with the show operator. The moveto operator is used to move between locations. XYShow - using a Type 3 font and drawing the points with the xyshow operator. The rectangle and xyshow approaches are by far the fastest. They need the least amount of data and they use the fewest operators. These characteristics have a great bearing on the efficiency of any PostScript operation. Below lies an annotated list of the files used in the application. ControlView - A subclass of View. ControlPoint - A subclass of Object. Manages the type of control point to draw. Four shapes are possible (a filled rectangle, a stroked rectangle, an x and a cross). ControlViewWraps.psw - Wraps for drawing with the different approaches. ControlPointWraps.psw - Wraps and PostScript procedures for the control points. Topics of interest from the ControlPoints application: Passing arrays to rectfill and rectstroke (ControlView) Using xyshow (ControlView) Creating a Type 3 font (ControlPointWraps.psw) Using the numstring encoding type (ControlViewWraps.psw)
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.