Harlequin RIP SDK

Header file definition Core raster delivery control and interface. More...

#include "hqatomic.h"

Data Structures

struct  RASTER_COLORANT
 Structure describing raster layout for a single colorant mapped to a channel (data stream). More...
 
struct  RASTER_CHANNEL
 Structure describing raster layout for a single channel (data stream) in a plane. More...
 
struct  RASTER_PLANE
 Structure describing raster layout for a single plane (contiguous block of memory) in a frame. More...
 
struct  RASTER_FRAME
 Structure describing raster layout for a single frame in a separation. More...
 
struct  RASTER_SHEET
 Structure describing raster layout for a single separation in a page. More...
 
struct  RASTER_LAYOUT
 Top-level structure describing raster layout for all separations, frames, planes, channels, and colorants in a page. More...
 
struct  raster_layout_iterator
 Raster layout iterator. More...
 
struct  RASTER_BANDSIZE
 Read/write structure used during the DeviceIOCtl_RasterBandSize IOCTL calls. More...
 
struct  RASTER_REQUIREMENTS
 Read/write structure used during the DeviceIOCtl_RasterRequirements, DeviceIOCtl_RenderingReady, DeviceIOCtl_RenderingPass and DeviceIOCtl_RenderingSheet IOCTL calls. More...
 
struct  RASTER_DESTINATION
 Structure whose values can be set by the raster consumer during a DeviceIOCtl_GetBufferForRaster IOCTL call to provide memory into which the RIP will render directly. More...
 
struct  RASTER_BLANK
 Structure modified by raster consumer during a DeviceIOCtl_BlankPage call to determine how to handle blank pages. Blank pages may be detected because all separations were omitted (in which case the PGB NumSeparations param will be 0), or if there is nothing on the display list. The DeviceIOCtl_BlankPage call will only be made for the final output pass, not for compositing or partial paints. The page number, separations, and all other relevant parameters will have been sent to the PGB device before the IOCtl call. More...
 
struct  SWMSG_BANDS_HANDLED
 

Macros

#define DeviceIOCtl_RasterRequirements   103
 
#define DeviceIOCtl_RenderingSheet   104
 
#define DeviceIOCtl_GetBufferForRaster   105
 
#define DeviceIOCtl_BlankPage   107
 
#define DeviceIOCtl_RenderingReady   108
 
#define DeviceIOCtl_RenderingPass   109
 
#define DeviceIOCtl_RasterBandSize   110
 

Typedefs

typedef int32 sw_pgb_colorant_type
 A type used to hold channel colorant type values.
 
typedef int32 sw_pgb_special_handling
 Special handling options for colorants. More...
 
typedef int raster_format_t
 One of the raster_format_t enumeration values.
 
typedef struct RASTER_COLORANT RASTER_COLORANT
 Structure describing raster layout for a single colorant mapped to a channel (data stream).
 
typedef struct RASTER_CHANNEL RASTER_CHANNEL
 Structure describing raster layout for a single channel (data stream) in a plane.
 
typedef struct RASTER_PLANE RASTER_PLANE
 Structure describing raster layout for a single plane (contiguous block of memory) in a frame.
 
typedef struct RASTER_FRAME RASTER_FRAME
 Structure describing raster layout for a single frame in a separation.
 
typedef struct RASTER_SHEET RASTER_SHEET
 Structure describing raster layout for a single separation in a page.
 
typedef struct RASTER_LAYOUT RASTER_LAYOUT
 Top-level structure describing raster layout for all separations, frames, planes, channels, and colorants in a page.
 
typedef int32 raster_layout_match
 Type definition for holding the raster layout similarity flags (defined in the raster_layout_match_values enumeration).
 
typedef struct raster_layout_iterator raster_layout_iterator
 Raster layout iterator. More...
 
typedef int raster_layout_iterator_flags
 Type definition for holding the raster layout iteration flags.
 
typedef struct RASTER_BANDSIZE RASTER_BANDSIZE
 Read/write structure used during the DeviceIOCtl_RasterBandSize IOCTL calls.
 
typedef struct RASTER_REQUIREMENTS RASTER_REQUIREMENTS
 Read/write structure used during the DeviceIOCtl_RasterRequirements, DeviceIOCtl_RenderingReady, DeviceIOCtl_RenderingPass and DeviceIOCtl_RenderingSheet IOCTL calls.
 
typedef struct RASTER_DESTINATION RASTER_DESTINATION
 Structure whose values can be set by the raster consumer during a DeviceIOCtl_GetBufferForRaster IOCTL call to provide memory into which the RIP will render directly.
 
typedef struct RASTER_BLANK RASTER_BLANK
 Structure modified by raster consumer during a DeviceIOCtl_BlankPage call to determine how to handle blank pages. Blank pages may be detected because all separations were omitted (in which case the PGB NumSeparations param will be 0), or if there is nothing on the display list. The DeviceIOCtl_BlankPage call will only be made for the final output pass, not for compositing or partial paints. The page number, separations, and all other relevant parameters will have been sent to the PGB device before the IOCtl call.
 

Enumerations

enum  {
  SW_PGB_COLORANTTYPE_UNKNOWN = 0 , SW_PGB_COLORANTTYPE_PROCESS = 1 , SW_PGB_COLORANTTYPE_SPOT = 3 , SW_PGB_COLORANTTYPE_EXTRASPOT = 4 ,
  SW_PGB_COLORANTTYPE_TYPE = 6
}
 Colorant types. More...
 
enum  SW_PGB_object_flags {
  SW_PGB_USER_OBJECT = (1u << 0u) , SW_PGB_UNUSED = (1u << 1u) , SW_PGB_MARKED = (1u << 2u) , SW_PGB_LW_OBJECT = (1u << 3u) ,
  SW_PGB_TEXT_OBJECT = (1u << 4u) , SW_PGB_SHFILL_OBJECT = (1u << 5u) , SW_PGB_VIGNETTE_OBJECT = SW_PGB_SHFILL_OBJECT , SW_PGB_IMAGE_OBJECT = (1u << 6u) ,
  SW_PGB_COMPOSITED_OBJECT = (1u << 7u)
}
 Type bits in object map rasters. More...
 
enum  SW_PGB_special_handling {
  SW_PGB_SPECIALHANDLING_NONE = 0 , SW_PGB_SPECIALHANDLING_OPAQUE , SW_PGB_SPECIALHANDLING_OPAQUEIGNORE , SW_PGB_SPECIALHANDLING_TRANSPARENT ,
  SW_PGB_SPECIALHANDLING_OBJECTMAP = 6
}
 Special handling values for colorants. More...
 
enum  raster_format_values { RASTER_FORMAT_CONTONE = 0 , RASTER_FORMAT_SCREENED = 1 , RASTER_FORMAT_RLE = 2 }
 Values for raster_format_t. More...
 
enum  raster_layout_copy_flags_values { RASTER_LAYOUT_SRC_SERIALIZED = 1 , RASTER_LAYOUT_DST_SERIALIZED = 2 }
 Flag bits for raster_layout_copy(). More...
 
enum  raster_layout_match_values {
  RASTER_LAYOUT_MATCH_A = 0x1 , RASTER_LAYOUT_MATCH_B = 0x2 , RASTER_LAYOUT_MATCH_M = 0x3 , RASTER_LAYOUT_MIDS = 0x10 ,
  RASTER_LAYOUT_MOMITS = 0x20 , RASTER_LAYOUT_MBYTES = 0x40 , RASTER_LAYOUT_MNAMES = 0x80 , RASTER_LAYOUT_EQUAL = 0xffffff
}
 A bitmask of flags indicating how similar raster layout comparisons are. More...
 
enum  raster_layout_iterator_flags_values {
  RASTER_LAYOUT_ITERATE_SHEETS = 1<<0 , RASTER_LAYOUT_ITERATE_IN_SHEET = 1<<1 , RASTER_LAYOUT_ITERATE_FRAMES = 1<<2 , RASTER_LAYOUT_ITERATE_IN_FRAME = 1<<3 ,
  RASTER_LAYOUT_ITERATE_PLANES = 1<<4 , RASTER_LAYOUT_ITERATE_IN_PLANE = 1<<5 , RASTER_LAYOUT_ITERATE_CHANNELS = 1<<6 , RASTER_LAYOUT_ITERATE_IN_CHANNEL = 1<<7 ,
  RASTER_LAYOUT_ITERATE_COLORANTS = 1<<8 , RASTER_LAYOUT_ITERATE_OMITTED = 1<<9
}
 A bitmask of flags used to control raster layout iteration. More...
 
enum  REQUIREMENTS_band_alloc { BAND_ALLOC_RIP = 0 , BAND_ALLOC_FRAMEBUFFER = 1 , BAND_ALLOC_SKIN = 2 }
 Values for the RASTER_REQUIREMENTS::have_framebuffer flag. More...
 
enum  REQUIREMENTS_band_order { BAND_ORDER_INCREASING = 0 , BAND_ORDER_ANY = 1 }
 Values for the RASTER_REQUIREMENTS::band_order flag. More...
 
enum  REQUIREMENTS_store_partial { PARTIAL_WSKIP_RSKIP = 0 , PARTIAL_WSTORE_RSTORE = 1 , PARTIAL_WRAST_RSKIP = 2 , PARTIAL_WRAST_RERASE = 3 }
 Values for the RASTER_REQUIREMENTS::store_partial flag. More...
 
enum  REQUIREMENTS_render_type { REQUIREMENTS_NO_RENDER = -1 , REQUIREMENTS_RENDER_PARTIAL = 0 , REQUIREMENTS_RENDER_COMPOSITE = 1 , REQUIREMENTS_RENDER_FINAL = 2 }
 Values for the RASTER_REQUIREMENTS::render_type field. More...
 
enum  REQUIREMENTS_empty_bands { WRITE_NONEMPTY_OUTPUT = 0 , WRITE_TRIMMED_OUTPUT = 1 , WRITE_ALL_OUTPUT = 2 }
 Values for the RASTER_REQUIREMENTS::write_empty_bands field. More...
 
enum  blank_page_action_t { BLANK_PAGE_REMOVE , BLANK_PAGE_COUNT , BLANK_PAGE_OUTPUT }
 Actions to take for blank pages. More...
 
enum  blank_page_reason_t { BLANK_BECAUSE_NO_CONTENT , BLANK_BECAUSE_SEPARATIONS_OMITTED }
 Reasons for a blank page. More...
 

Functions

RASTER_LAYOUTraster_layout_acquire (RASTER_LAYOUT *layout)
 
void raster_layout_release (RASTER_LAYOUT **playout, void(*free_fn)(RASTER_LAYOUT *layout, void *data), void *data)
 
size_t raster_layout_copy (const RASTER_LAYOUT *layout, void *addr, int flags)
 
HqnResult raster_layout_combine (RASTER_LAYOUT **pdst, const RASTER_LAYOUT *src, int interleaving_style, int separation_style, unsigned int width, unsigned int height, unsigned int bandheight)
 
void raster_layout_bandheight (RASTER_LAYOUT *layout, unsigned int bandheight)
 
raster_layout_match raster_channel_compare (const RASTER_CHANNEL *a, const RASTER_CHANNEL *b, HqnResult *perr)
 
raster_layout_match raster_plane_compare (const RASTER_PLANE *a, const RASTER_PLANE *b, HqnResult *perr)
 
raster_layout_match raster_sheet_compare (const RASTER_SHEET *a, const RASTER_SHEET *b, HqnResult *perr)
 
HqBool raster_layout_iterate (raster_layout_iterator *iterator, raster_layout_iterator_flags flags)
 

Detailed Description

Header file definition Core raster delivery control and interface.

Copyright (C) 2023 Global Graphics Software Ltd. All rights reserved. Global Graphics Software Ltd. Confidential Information.