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_20230105 * | raster_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 |
Structure to carry parameters and callback functions for compositing and outputting an eHVD page.
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.
[in] | context | A raster mapping context previously returned by hvd_output_page_params::element_raster_open(). |
[in] | elementRaster | A 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. |
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.
[in] | context | A raster mapping context previously returned by element_raster_open(). |
[in] | elementRaster | A 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] | pstartline | A 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] | pnlines | A 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] | perr | A location in which an error code is stored, if the raster context could not be acquired or created. |
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().
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.
[in] | elementRaster | A 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] | plane | A raster plane to map buffers from. |
[out] | perr | A location in which an error code is stored, if the raster context could not be acquired or created. |
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.
void* hvd_output_page_params::pJobContext |
The job context pointer to pass to the raster_api functions.
int hvd_output_page_params::progress |
A bitmask of flags controlling what progress hvd_output_page() should log.
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.
const struct RasterDescription*(* hvd_output_page_params::raster_description_fn) (void *elementRaster) |
A callback function to get a packed RasterDescription from a raster handle.
[in] | elementRaster | A 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. |
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().
void* hvd_output_page_params::start_message_data |
Opaque data pointer for 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.
[in] | rd | An unpacked raster description for the page to be output. |
[in] | page | An unpacked raster description for the page to be output. |
[in,out] | data | An opaque data pointer initialised from hvd_output_page_params::start_message_data. |
HQN_RESULT_SUCCESS | The message was output successfully. |