(v13) Render initiation
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP
When the RIP determines that it is about to start rendering a page, or a part thereof such as might be the case during a partial paint, it asks the Screening modules to prepare to perform halftoning.
Memory allocations/deallocations are not permitted during rendering, so the screening modules must allocate any further memory they require now. Shortly after this the RIP will claim its own memory needs prior to rendering. The RIP reserves the right to allocate all remaining memory for its own purposes.
The screening modules must also furnish the RIP with information regarding their needs during rendering. One such need is whether the module must be presented with bands in a particular order; say from the top to the bottom of the page, or vice-versa.
Screening modules should avoid imposing band ordering needs on the RIP wherever possible, so as to maximize the RIP’s opportunity to exploit multiple processors. The other important property a screening module needs to communicate to the RIP is its band latency.
Any screening module not capable of being called via DoHalftone from within multiple separate renderer threads must inform the RIP during render initiation. For such modules, multi-threaded RIPs will arrange to only ever call DoHalftone from within one thread at any one time. Note however that the RIP does not warrant that each call will originate in any particular thread sequential calls may be made from the same or different RIP threads at the RIP’s discretion.