----------Output Pipeline----------->
Application --> Application --Output primitives----> SRGP <--> Display
Model <-- Program --Output attributes----> Hardware
--Canvas control------->
--copyPixel------------>
--Input device control->
<-Input device measures-
<----------Input Pipeline------------
The graphics package (SRGP in this case) gives the program a device-independent
interface to the hardware. This is achieved by providing separate versions of
a package for each type of hardware.
Output Pipeline
Primitives are clipped and scan converted by the graphics package. That is, the application programmer doesn't have to worry about it.
Displays with frame buffers and display controllers. A hardware display controller is used in some high-end graphics machines, such as Silicon Graphics workstations.
Displays with frame buffers only. This is the typical situation with personal computers and inexpensive Unix workstations.
Hardcopy devices. Sending images to film recorders or printers is generally problematic. Separate algorithms must generally be used because hard copy devices are usually quite different from video displays in both their resolution and color depth.
In the basic incremental algorithm, we increment x, and pick y based on the slope m and rounding off.
Clip edges: The starting point might have a floating point y value.
Intensity and slope: A line at a 45 degree angle has a lower pixel density.
Shared pixels in polylines: don't draw them twice.