Harlequin RIP SDK
hvd_output_page_params Struct Reference

Structure to carry parameters and callback functions for compositing and outputting an eHVD page. More...

#include "hvdoutput.h"

Data Fields

const struct RasterDescription *(* raster_description_fn )(void *elementRaster)
 A callback function to get a packed RasterDescription from a raster handle. More...
 
void *(* element_raster_open )(void *elementRaster, struct RASTER_PLANE *plane, HqnResult *perr)
 A callback function to get a context for mapping buffers from an HVD element raster handle. More...
 
const uint8 *(* element_raster_map )(void *context, void *elementRaster, unsigned int *pstartline, unsigned int *pnlines, HqnResult *perr)
 A callback function to map a range of lines from an HVD element raster handle into memory. More...
 
void(* element_raster_close )(void *context, void *elementRaster)
 A callback function to close a context used for mapping buffers from a raster handle. More...
 
sw_raster_api_20230105raster_api
 
void * pJobContext
 
RASTER_handle raster_handle
 
HqnResult(* start_message_fn )(const RasterDescription *rd, const struct HVD_page_output *page, void *data)
 A function that can be used to log progress messages at the start of compositing and outputting an HVD separation. More...
 
void * start_message_data
 
int progress
 

Detailed Description

Structure to carry parameters and callback functions for compositing and outputting an eHVD page.

Field Documentation

◆ element_raster_close

void(* hvd_output_page_params::element_raster_close) (void *context, void *elementRaster)

A callback function to close a context used for mapping buffers from a raster handle.

Parameters
[in]contextA raster mapping context previously returned by hvd_output_page_params::element_raster_open().
[in]elementRasterA raster handle previously attached to an HVD element using one of libHVD's HVD_tracker_element_add_raster(), HVD_element_add_raster() or HVD_monitor_add_raster() functions.

◆ element_raster_map

const uint8*(* hvd_output_page_params::element_raster_map) (void *context, void *elementRaster, unsigned int *pstartline, unsigned int *pnlines, HqnResult *perr)

A callback function to map a range of lines from an HVD element raster handle into memory.

Parameters
[in]contextA raster mapping context previously returned by element_raster_open().
[in]elementRasterA raster handle previously attached to an HVD element using one of libHVD's HVD_tracker_element_add_raster(), HVD_element_add_raster() or HVD_monitor_add_raster() functions.
[in,out]pstartlineA pointer to the first line of data requested from the element raster. On a successful exit, this is updated to the first line of data represented in the buffer. This may be larger than the first line requested, if the element raster did not store data for the requested start line.
[in,out]pnlinesA pointer to the number of lines of data requested from the element raster. On a successful exit, this is updated to the number of lines of data represented in the buffer. This may be smaller than the number of lines requested, if the element raster did not have data stored for all of the requested lines.
[out]perrA location in which an error code is stored, if the raster context could not be acquired or created.
Returns
A pointer to data representing the lines in the updated pstartline and *pnlines range, or NULL if there was an error getting the data. This data is owned by the element, and must not be modified by the client. This pointer remains valid until the next call to hvd_output_page_params::element_raster_map() using the same raster mapping context, or until hvd_output_page_params::element_raster_close() is called.

If the pointer returned is non-NULL, then *perr is not modified. If the pointer returned is NULL, then *perr is either HQN_RESULT_SUCCESS, indicating there was no data in the range requested; or it is a code greater than MON_CLASS_ERROR indicating the error that occurred. The subclass, PS error type, and UID for the error can be deconstructed using the macros in monevent.h.

If there was no data in the range requested, then NULL is returned, *perr is set to HQN_RESULT_SUCCESS, *pnlines is updated to zero and *pstartline is updated to the end of the requested range.

In all cases the element raster mapping context is still open, and requires closing using hvd_output_page_params::element_raster_close().

◆ element_raster_open

void*(* hvd_output_page_params::element_raster_open) (void *elementRaster, struct RASTER_PLANE *plane, HqnResult *perr)

A callback function to get a context for mapping buffers from an HVD element raster handle.

Parameters
[in]elementRasterA raster handle previously attached to an HVD element using one of libHVD's HVD_tracker_element_add_raster(), HVD_element_add_raster() or HVD_monitor_add_raster() functions.
[in]planeA raster plane to map buffers from.
[out]perrA location in which an error code is stored, if the raster context could not be acquired or created.
Returns
A raster context that will be passed to hvd_output_page_params::element_raster_map(), or NULL on error. If this is non-NULL, a corresponding call to hvd_output_page_params::element_raster_close() will be made after mapping buffers for plane.

If the pointer returned is non-NULL, then *perr is not modified. If the pointer returned is NULL, then *perr is set to a code greater than MON_CLASS_ERROR indicating the error that occurred. The subclass, PS error type, and UID for the error can be deconstructed using the macros in monevent.h.

◆ pJobContext

void* hvd_output_page_params::pJobContext

The job context pointer to pass to the raster_api functions.

◆ progress

int hvd_output_page_params::progress

A bitmask of flags controlling what progress hvd_output_page() should log.

◆ raster_api

sw_raster_api_20230105* hvd_output_page_params::raster_api

The raster API to use to output the combined HVD page.

The raster band size function will be called once for the combined output page layout, before the raster requirements function.

The raster requirements function will be called once as if it were an interpreter call from DeviceIOCtl_RenderingReady, once as if it were a renderer call from DeviceIOCtl_RenderingPass, and then once for each sheet output as if it were from DeviceIOCtl_RenderingSheet.

The raster destination function will be called for the output if bands are not managed by the HVD output function.

The job end function will not be called by the hvd_output_page() function.

◆ raster_description_fn

const struct RasterDescription*(* hvd_output_page_params::raster_description_fn) (void *elementRaster)

A callback function to get a packed RasterDescription from a raster handle.

Parameters
[in]elementRasterA raster handle previously attached to an HVD element using one of libHVD's HVD_tracker_element_add_raster(), HVD_element_add_raster() or HVD_monitor_add_raster() functions.
Returns
A packed raster description associated with the raster handle. The internal pointers (including the raster layout) of a packed raster description are invalid. It may be unpacked using RasterDescriptionUnpack() if the pointers need to be accessed.

◆ raster_handle

RASTER_handle hvd_output_page_params::raster_handle

The raster handle for the raster_api functions. Raster backends may preserve state by keeping the raster handle open until the end of a job, or may create a new raster handle for each page. On exit from hvd_output_page(), this handle will be updated to the value set by the raster_api::raster_finish_fn().

◆ start_message_data

void* hvd_output_page_params::start_message_data

Opaque data pointer for start_message_fn.

◆ start_message_fn

HqnResult(* hvd_output_page_params::start_message_fn) (const RasterDescription *rd, const struct HVD_page_output *page, void *data)

A function that can be used to log progress messages at the start of compositing and outputting an HVD separation.

If NULL, no message callback will be made.

Parameters
[in]rdAn unpacked raster description for the page to be output.
[in]pageAn unpacked raster description for the page to be output.
[in,out]dataAn opaque data pointer initialised from hvd_output_page_params::start_message_data.
Return values
HQN_RESULT_SUCCESSThe message was output successfully.
Returns
Any other return value greater than MON_CLASS_ERROR is an error UID. The error subclass, PS error type, and UID for the error can be deconstructed using the macros in monevent.h.

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