Harlequin RIP SDK

Support for raster output of composited external Harlequin VariData elements. More...

#include "skinkit.h"
#include "ripapiversn.h"
#include "rdrapi.h"
#include "swdataapi.h"
#include "swoften.h"
#include "swcopyf.h"
#include "rasthand.h"
#include "hvdevmon.h"
#include "hqmemset.h"
#include "hqspin.h"
#include "skinmon.h"
#include "file.h"
#include "mem.h"
#include "paths.h"
#include "framebuffer.h"
#include "hqstr.h"
#include "hvdblit.h"
#include "hvdoutput.h"
#include "threadapi.h"
#include "monany.h"
#include "monlibhvd.h"

Macros

#define DEFAULT_PURGE   (-HVD_PURGE_LEAST_HITS - HVD_PURGE_NEXT(HVD_PURGE_SMALLEST))
 

Functions

static HqBool HVD_raster_layout_iterate (raster_layout_iterator *diter, HVD_raster_layout *dest, raster_layout_iterator *siter, HVD_raster_layout *src)
 
static RASTER_result hvd_output_sheet (const HVD_page_output *page, hvd_output_page_params *params, RASTER_REQUIREMENTS *req, RasterDescription *rd)
 Output a sheet for an eHVD job, combining the elements. More...
 
int hvd_default_cache_policy (void)
 Get the default cache policy, allowing overriding of default values to avoid having to recompile debug RIPs.
 

Detailed Description

Support for raster output of composited external Harlequin VariData elements.

This file includes a function that can be used to composite eHVD output together, and call the normal raster output callbacks for a raster backend with the composed output.

Macro Definition Documentation

◆ DEFAULT_PURGE

#define DEFAULT_PURGE   (-HVD_PURGE_LEAST_HITS - HVD_PURGE_NEXT(HVD_PURGE_SMALLEST))

Default cache purging strategy is to sort a subset of the cache by least hits, then smallest size, and remove content from elements in that order until enough has been removed.

Function Documentation

◆ hvd_output_sheet()

static RASTER_result hvd_output_sheet ( const HVD_page_output page,
hvd_output_page_params params,
RASTER_REQUIREMENTS req,
RasterDescription rd 
)
static

Output a sheet for an eHVD job, combining the elements.

Parameters
[in]pageThe HVD page output structure containing all elements and rasters for a page.
[in,out]paramsThe raster callback functions and parameters.
[in]reqThe raster requirements for the output sheet
[in]rdThe raster description for the output sheet
Returns
This function should return RASTER_noErr (0) for success; one of the negative RASTER_RESULT codes or a sw_mon_type error code greater than MON_CLASS_ERROR with a valid subclass, PS error type, and UID for an error.

◆ HVD_raster_layout_iterate()

static HqBool HVD_raster_layout_iterate ( raster_layout_iterator diter,
HVD_raster_layout dest,
raster_layout_iterator siter,
HVD_raster_layout src 
)
static

Find the next set of contiguous channels in the intersection of two raster layouts that can be blitted by libHVD.

Parameters
[in,out]diterA raster layout iterator originally initialised to a non-omitted plane of the destination raster layout. On entry to this function, if dest->nchannels is zero, this iterator indicates the next channel that may be output to; if dest->nchannels is non-zero, this iterator indicates the last channel that was output to.
[out]destA libHVD raster layout that will be updated with the contiguous range of destination channels to blit.
[in,out]siterA raster layout iterator originally initialised to a non-omitted plane of the source element raster layout. On entry to this function, if src->nchannels is zero, this iterator indicates the next channel that may be blitted to output; if src->nchannels is non-zero, this iterator indicates the last channel that was blitted to output.
[out]srcA libHVD raster layout that will be updated with the contiguous range of source channels to blit.
Return values
TRUEThere are some channels to blit. The destination and source HVD raster layouts are set up for an HVD_get_blitter() call. The destination and source raster layout iterators are set up so another call to HVD_raster_layout_iterate() will return the next set of intersecting channels.
FALSEThere are no more channels to blit.

On the first entry to this function, dest->nchannels and src->nchannels should be initialised to zero.