Harlequin RIP SDK

Read/write structure used during the DeviceIOCtl_RasterRequirements, DeviceIOCtl_RenderingReady, DeviceIOCtl_RenderingPass and DeviceIOCtl_RenderingSheet IOCTL calls. More...

#include "swraster.h"

Data Fields

int32 eraseno
 
uint32 minimum_bands
 
int32 have_framebuffer
 
int32 interleavingStyle
 
size_t scratch_size
 
void * scratch_band
 
HqBool handled
 
HqBool no_partial
 
int32 band_order
 
HqBool bands_handled_by_caller
 
int32 store_partial
 
HqBool copies_handled_by_output
 
int32 write_empty_bands
 
int32 render_type
 
struct sw_datumraster_params
 
RASTER_LAYOUTraster_layout
 
int32 raster_sheet_index
 

Detailed Description

Field Documentation

◆ band_order

int32 RASTER_REQUIREMENTS::band_order

Band order indication. This is initialized by the RIP to BAND_ORDER_INCREASING. If the callee sets this to BAND_ORDER_ANY, it is indicating that it can handle band data writes out of order within a page. This may be changed in DeviceIOCtl_RenderingPass. The same value should be set in the DeviceIOCtl_RenderingSheet call as was set in the DeviceIOCtl_RenderingPass call.

◆ bands_handled_by_caller

HqBool RASTER_REQUIREMENTS::bands_handled_by_caller

By default the callee (the RIP SDK PGB device in the first instance, though it may pass on this responsibility to raster output handlers) is responsible for issuing SWEVT_BANDS_HANDLED events to indicate to the RIP that bands have been copied, output, or otherwise handled. The callee can set this value to TRUE to indicate that the caller (the RIP) should issue the events instead. Failure to issue this event after processing bands will cause deadlock. The value of this field is only used after the DeviceIOCtl_RenderingSheet call, though it is recommended that it is set consistently for all calls. Initialized by the RIP to FALSE.

◆ copies_handled_by_output

HqBool RASTER_REQUIREMENTS::copies_handled_by_output

Can the skin handle multiple copies of each page if requested? Initialized by the RIP to FALSE. The callee may change this value to TRUE to indicate that the skin will handle making copies of pages. If set to TRUE and the page device key NumCopies is greater than one, the RIP will render and output the page once but pass the NumCopies value to the output system to handle. If this value is left at FALSE (the default value), the RIP will render and output the page NumCopies times. This value is only used after the DeviceIOCtl_RenderingReady call, though it is recommended that it is set consistently for all calls. The same value should be set in the DeviceIOCtl_RenderingPass and DeviceIOCtl_RenderingSheet calls as was set in the DeviceIOCtl_RenderingReady call.

◆ eraseno

int32 RASTER_REQUIREMENTS::eraseno

Page generation ID. The page generation ID is the same for every call for a particular display list. It can be used to correlate calls from the interpreter (where RASTER_REQUIREMENTS::render_type is REQUIREMENTS_NO_RENDER) with each other and with later calls from renderer threads. Interpreter calls for later display lists may be interleaved with renderer calls to earlier display lists, but all interpreter calls will have the generation ID greater than or equal to previous interpreter calls, and all renderer calls will have the generation ID greater than or equal to previous renderer calls. Not every display list constructed will be rendered. When a renderer call is seen with a particular generation ID, there are guaranteed to be no further interpreter calls with previous generation IDs. Note that there may be more than one display list constructed for a page if partial painting, these display lists will have different generation IDs.

◆ handled

HqBool RASTER_REQUIREMENTS::handled

Flag which is set to FALSE by the caller, and set to TRUE by the callee if it has completed. If not, the caller will keep calling with the same data until either this flag is set to TRUE or the callee returns an error.

◆ have_framebuffer

int32 RASTER_REQUIREMENTS::have_framebuffer

Band allocation mode. This is initialized by the RIP to BAND_ALLOC_RIP. It may be set to BAND_ALLOC_FRAMEBUFFER in DeviceIOCtl_RasterRequirements or DeviceIOCtl_RenderingReady if the raster backend has (or is able to promise by the time DeviceIOCtl_GetBufferForRaster is called) a complete framebuffer. It may be set to BAND_ALLOC_SKIN in the DeviceIOCtl_RasterRequirements or DeviceIOCtl_RenderingReady calls if the skin will be allocating the output band memory, but it cannot promise a full framebuffer. It is an error to change this in the DeviceIOCtl_RenderingPass or DeviceIOCtl_RenderingSheet calls.

◆ interleavingStyle

int32 RASTER_REQUIREMENTS::interleavingStyle

Interleaving style. This is one of the interleaving styles defined in the SDK or plugin kit. The values for these are:

1 - Monochrome. Each separation consists of a single frame, with a single plane containing one channel.

2 - Pixel interleaved. Each separation consists of a single frame, with a single plane containing multiple interleaved channels.

3 - Band interleaved. Each separation consists of a single frame, with multiple planes each containing one channel.

4 - Frame interleaved. Each separation consists of multiple frames, each frame containing one plane with one channel in it.

In general, clients should avoid testing this parameter, but should make decisions by examining the raster_layout structure instead. Future versions of the RIP may support more complex layouts that do not conform to the simple classification above.

◆ minimum_bands

uint32 RASTER_REQUIREMENTS::minimum_bands

The minimum number of raster destination bands that the RIP requires.

◆ no_partial

HqBool RASTER_REQUIREMENTS::no_partial

Partial paint flag. This is set to TRUE by the RIP if the page will not have any partial paints. Note that the converse does not hold; if FALSE, the page may have partial paints.

◆ raster_layout

RASTER_LAYOUT* RASTER_REQUIREMENTS::raster_layout

The raster layout for the pagedevice. If the raster backend wishes to access this structure after the call is finished, it should call raster_layout_acquire() to get a pointer that will remain valid, or copy the layout into its own memory using raster_layout_copy(). Pointers acquired using raster_layout_acquire() must be released using raster_layout_release() before the RIP shuts down.

◆ raster_params

struct sw_datum* RASTER_REQUIREMENTS::raster_params

Optional structured data for raster parameters. If the raster backend wishes to access these parameters after the call is finished, it should either unpack them into its own variables, or use the sw_data_api::retain() and sw_data_api::release() functions to preserve the data tree.

◆ raster_sheet_index

int32 RASTER_REQUIREMENTS::raster_sheet_index

The index of the raster sheet being rendered in the raster layout's sheets array. This will be negative for calls that do not reference a sheet, and non-negative only for DeviceIOCtl_RenderingSheet calls.

◆ render_type

int32 RASTER_REQUIREMENTS::render_type

Render type. This will be one of the REQUIREMENTS_render_type enumeration values, indicating whether this call was related to a rendering pass, and if so the type of the pass.

◆ scratch_band

void* RASTER_REQUIREMENTS::scratch_band

Scratch buffer of size RASTER_REQUIREMENTS::band_size handed by the core to the DeviceIOCtl_RenderingPass and DeviceIOCtl_RenderingSheet calls.

◆ scratch_size

size_t RASTER_REQUIREMENTS::scratch_size

The callee should set this in the DeviceIOCtl_RasterRequirements or DeviceIOCtl_RenderingReady calls to the size of a scratch buffer requested from the core. It is an error to change this in the DeviceIOCtl_RenderingPass or DeviceIOCtl_RenderingSheet calls.

◆ store_partial

int32 RASTER_REQUIREMENTS::store_partial

Partial paint and compositing raster store flag. Initialized by the RIP to PARTIAL_WSKIP_RSKIP if a framebuffer has been previously indicated, PARTIAL_WRAST_RSKIP if RLE output is being generated, or PARTIAL_WSTORE_RSTORE otherwise. The callee may change it in the DeviceIOCtl_RasterRequirements or DeviceIOCtl_RenderingReady calls to indicate that the raster backend is taking responsibility for storing and combining partial paints and compositing passes, or to indicate that the PGB's raster store should be used. The same value should be set in the DeviceIOCtl_RenderingPass and DeviceIOCtl_RenderingSheet call as was set in the DeviceIOCtl_RenderingReady call.

◆ write_empty_bands

int32 RASTER_REQUIREMENTS::write_empty_bands

Does the skin require empty bands in the output? Initialized by the RIP to WRITE_TRIMMED_OUTPUT. If this value is set to WRITE_TRIMMED_OUTPUT, the RIP will omit empty bands at the top and the bottom of the raster. If set to WRITE_NONEMPTY_OUTPUT, the RIP will omit empty bands anywhere in the raster. If this value is set to WRITE_ALL_OUTPUT, the RIP will not empty bands anywhere, even at the top and the bottom of the raster. The value of this field is only used after the DeviceIOCtl_RenderingPass call, though it is recommended that it is set consistently for all calls. The same value should be set in the DeviceIOCtl_RenderingSheet call as was set in the DeviceIOCtl_RenderingPass call.


The documentation for this struct was generated from the following file: