The routine gSetLineWidthMode() sets the thick line generation mode for lines greater than one device unit wide as set by gSetLineWidth() or gDefineLineStyle().
Where hardware generation mode is selected, GINO only uses hardware line generation facilities available on the current output device. Where hardware thick generation facilities exist, thick broken lines with non-standard line ends may be generated incorrectly and line ends may extend into GINO masks or out of GINO window limits. If the device does not have hardware thick line generation facilities, no thick lines will be generated and all lines will be the default thickness.
The default mode uses a mixture of hardware and software generation depending on the capabilities of the output device and what sort of thick line is being output. That is, where a device can generate hardware thick lines, these are used for all lines except thick broken lines with non-standard line ends. (This is to ensure the line end is placed only on the end of each line rather than on the end of each broken line segment.) Where a device has no hardware thick line facilities all thick lines will be generated by software (see below). The default mode therefore uses the most efficient mode to generate the output requested but which may not be 100% accurate.
Selecting software generation will force thick lines to be generated using an appropriate emulation method for the current device driver. These include drawing lines parallel to the base line (appropriate to pen plotters), generating a series of horizontal/vertical lines (appropriate to raster displays) and using polygon fill where such facilities exist. The method selected by the device driver may be enquired through the routine gEnqDeviceState(). This mode is guaranteed to generate 100% accurate broken and thick lines.