(v13) The showpage operator
This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP.
While a job is executing, it usually calls the showpage
operator (or very rarely the copypage
operator) from time to time. showpage
is the operator which initiates the rendering phase. (If the system parameter AutoShowpage
is true
, then the RIP automatically inserts a showpage
at the end of a job if there is not one there already and the job has made marks on the page.) This simple action sets in train a complex sequence of events as follows.
- The page device
EndPage
procedure is executed.
This can be set up to do a wide variety of tasks, but it must leave a Boolean on the operand stack. If this is true
the RIP proceeds to render the page; if not, the showpage
is effectively cancelled and only the BeginPage
procedure is then executed (see below) before the action of showpage
is complete.
The default EndPage
procedure simply returns true
under these circumstances.
- Rendering begins.
The StartRender
procedures from the page device, if any, are executed. See (v13) StartRender procedures.
%pagebuffer%
device parameters, which can vary from page to page or differ for each separation, are delivered to the device using the setdevparams
operator. PageBufferSetup
from the page device is called.
A file is then opened on the %pagebuffer%
device.
The rendering sequence is repeated for each separation (or group of separations positioned together) demanded by the page device.
- The page is delivered to the
%pagebuffer%
device file.
The pagebuffer
device type’s implementations for the setfileposition
, writestring
(and possibly readstring
if a partial paint was carried out earlier see below) operators are called repeatedly to pass on the completed raster data. The data is produced in bands: equal size (except possibly the last) horizontal stripes across the page. Bands are usually issued in order the exception concerns parallel (SMP) implementations of the RIP. The format of the data how it is to be interpreted by the receiving device is given by a combination of the device parameters.
In the event of a non-fatal error, the sequence is repeated.
- The
%pagebuffer%
file is closed. - The
initgraphics
anderasepage
operators are executed. This is required by the semantics of theshowpage
operator. - The
BeginPage
procedure of the page device is executed. The defaultBeginPage
procedure simply discards its operands.
showpage
is then complete and execution continues from the calling job.