Mako 7.4.0 API
Loading...
Searching...
No Matches
JawsMako::IJawsRenderer Class Referenceabstract

A renderer that uses the Jaws RIP to create images from arbitrary DOM. More...

#include <jawsmako.h>

Inheritance diagram for JawsMako::IJawsRenderer:

Classes

class  CColorSpotHalftone
 Description of spot halftones, using Jaws's default spot function. Used for color halftoned rendering. Analogous to a PostScript Type 2 Halftone; please refer to section 7.4.6 of the PostScript language reference manual. When rendering to RGB, there must be three angles. (Red, Green and Blue respectively). For CMYK output, there must be four (Cyan, Magenta, Yellow and Black respectively). More...
 
class  CColorThresholdArrayHalftone
 As per CThresholdArrayHalftone, but for use with color rendering. There is a single width and height, but a threshold array for each color being rendering. One threshold array must be specified for each color being rendered. When rendering to RGB, there must be three thresholds (Red, Green and Blue respectively). For CMYK output, there must be four thresholds (Cyan, Magenta, Yellow and Black respectively). More...
 
class  CEDSHalftone
 A halftone representing an error diffusion screen. Allows the production of results containing a variable number of gray levels per channel using a range of error diffusion screens. More...
 
class  CFrameBufferInfo
 Description of a frame buffer for use with renderSeparationsToFrameBuffers. More...
 
class  CSpotHalftone
 Description of a simple spot halftone, at 45 degrees, using Jaws's default spot function. Used for monochrome rendering. More...
 
class  CThresholdArrayHalftone
 Description of a Type 3 8-bit threshold array halftone for use with monochrome rendering. Please refer to section 7.4.5 of the PostScript language reference manual, 3rd edition. More...
 
class  CThresholdHalftone
 A halftone representing a simple threshold. Used for monochrome rendering. More...
 

Public Member Functions

virtual IDOMImagePtr render (const IDOMNodePtr &node, uint32 dpi=72, uint8 depth=8, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), bool maskToInterestingNodes=false, const CSpotColorNames &retainedSpotColors=CSpotColorNames(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0
 Render a node to an image.
 
virtual CEDLVector< IDOMImagePtr > renderSeparations (const IDOMNodePtr &node, const uint8 depth=8, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), uint8 antiAliased=0, const FRect &bounds=FRect(), uint32 destWidth=0, uint32 destHeight=0, const CSpotColorNames &retainedSpotColors=CSpotColorNames(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView, const CU8StringVect &processColorNames=CU8StringVect(), bool alphaGeneration=false, uint64 bandMemorySize=0, const CSpotColorNames &ignoreSpotColors=CSpotColorNames())=0
 Render a node to a set of separated images, with optional anti-aliasing. For ease of use, the output is scaled to fit the destination size, described in pixels.
 
virtual void renderSeparationsToFrameBuffers (const IDOMNodePtr &node, uint8 depth, bool hostEndian, uint32 destWidth, uint32 destHeight, const IDOMColorSpacePtr &colorSpace, CFrameBufferInfoVect &frameBuffers, uint8 antiAliased=0, const FRect &bounds=FRect(), const CSpotColorNames &retainedSpotColors=CSpotColorNames(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView, const CU8StringVect &processColorNames=CU8StringVect(), bool alphaGeneration=false, uint64 bandMemorySize=0, const CSpotColorNames &ignoreSpotColors=CSpotColorNames())=0
 As per renderSeparations(), but targeting a set of frame buffers, described by a vector CFrameBufferInfoVect.
 
virtual void renderToFrameBuffer (const IDOMNodePtr &node, void *buffer, uint32 stride, uint32 destWidth, uint32 destHeight, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0
 Render a node to a supplied frame buffer, at 8 bits per component.
 
virtual void renderToFrameBufferPadAndReverse (const IDOMNodePtr &node, void *buffer, uint32 stride, uint32 pixelStride, bool reverseComponents, uint32 destWidth, uint32 destHeight, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0
 As per renderToFrameBuffer, but allowing for pixel byte order and padding control.
 
virtual IDOMImagePtr renderAntiAliased (const IDOMNodePtr &node, uint32 dpi=72, uint8 quality=3, const FRect &bounds=FRect())=0
 Render a node to an antialiased, DeviceRGB image suitable for display, using supersampling.
 
virtual CEDLVector< IDOMImagePtr > renderScreened (const IDOMNodePtr &node, uint32 dpi, const IHalftone *halftone, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const bool useCC=true, const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0
 Render a node to a screened result, in monochrome or CMYK returning one image per colorant.
 
IDOMImagePtr renderMonochrome (const IDOMNodePtr &node, uint32 dpi=72, const IHalftone *halftone=NULL, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const bool useCC=false)
 Convenience - Render a node to a 1-bit monochrome image.
 
virtual void renderScreenedToFrameBuffers (const IDOMNodePtr &node, void **buffers, uint32 *strides, uint32 destWidth, uint32 destHeight, const IHalftone *halftone, const IDOMColorSpacePtr &colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const bool useCC=true, const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)=0
 Render a node to a 1-bit monochrome frame buffer, a series of three 1-bit frame buffers for RGB, or four 1-bit frame buffers representing CMYK.
 
void renderMonochromeToFrameBuffer (const IDOMNodePtr &node, void *buffer, uint32 stride, uint32 destWidth, uint32 destHeight, const IHalftone *halftone, const IDOMColorSpacePtr colorSpace=IDOMColorSpacePtr(), const FRect &bounds=FRect(), const bool useCC=false, const IOptionalContentPtr &optionalContent=IOptionalContentPtr(), eOptionalContentEvent optionalContentUsage=eOCEView)
 Convenience Render a node to a 1-bit monochrome frame buffer.
 
virtual void setEnableTrueTypeNotDef (bool enable)=0
 Enable the use of a True Type font's /.notdef glyph in the output.
 
virtual void setEnableRasterCompression (bool enable)=0
 Enable the use of compression for compressed output.
 
virtual void setBlackPreservation (bool preserveForText, bool preserveForOther)=0
 Enable/control 100% black preservation.
 
virtual void setIgnoreMatchingDeviceIntercept (bool ignoreDeviceIntercept)=0
 Allow intercept color spaces for a matching Device space to be ignored.
 
- Public Member Functions inherited from IRCObject
virtual void addRef () const =0
 Increases the reference count of the actual object pointed to. This would take place during an assignment or copying.
 
virtual bool decRef () const =0
 Decreases the reference count of the actual object pointed to. When the reference count falls to Zero, it deletes the actual object pointed to.
 
virtual int32 getRefCount () const =0
 Retrieve the current reference count of the actual object pointed to.
 

Static Public Member Functions

static JAWSMAKO_API IJawsRendererPtr create (const IJawsMakoPtr &jawsMako, const IProgressMonitorPtr &progressMonitor=IProgressMonitorPtr())
 Create a Jaws renderer instance.
 

Additional Inherited Members

- Protected Member Functions inherited from IRCObject
virtual ~IRCObject ()
 Virtual destructor.
 

Detailed Description

A renderer that uses the Jaws RIP to create images from arbitrary DOM.

Member Function Documentation

◆ create()

static JAWSMAKO_API IJawsRendererPtr JawsMako::IJawsRenderer::create ( const IJawsMakoPtr & jawsMako,
const IProgressMonitorPtr & progressMonitor = IProgressMonitorPtr() )
static

Create a Jaws renderer instance.

Parameters
jawsMakoThe JawsMako instance.
progressMonitorA smart pointer to an IProgressMonitor object or NULL of no object was passed.
Returns
IJawsRendererPtr A jaws renderer instance.

◆ render()

virtual IDOMImagePtr JawsMako::IJawsRenderer::render ( const IDOMNodePtr & node,
uint32 dpi = 72,
uint8 depth = 8,
const IDOMColorSpacePtr & colorSpace = IDOMColorSpacePtr(),
const FRect & bounds = FRect(),
bool maskToInterestingNodes = false,
const CSpotColorNames & retainedSpotColors = CSpotColorNames(),
const IOptionalContentPtr & optionalContent = IOptionalContentPtr(),
eOptionalContentEvent optionalContentUsage = eOCEView )
pure virtual

Render a node to an image.

Parameters
nodeThe node to render.
dpiThe desired resolution.
depthThe desired depth - either 8 or 16 bits per component.
colorSpaceThe desired color space. If NULL, DeviceRGB will be used. If provided, this must be an instance of one of the following colorspace types:
  • DeviceRGB,
  • sRGB,
  • DeviceGray,
  • sGray,
  • DeviceCMYK,
  • ICCBased,
boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
maskToInterestingNodesIf true, a mask channel will be created to render only nodes that are marked as interesting. All other nodes will be masked out. Nodes may be marked as interesting by setting the IDOMNodeFlags::eNodeInteresting flag on the nodes to render.
retainedSpotColorsUsed only if the color space is a three or four channel type (ie some form of RGB or CMYK color space). If provided, the renderer will provide channels in the output image for these spot colors and generate a DeviceN color space for the image as a whole. Note that the generated DeviceN color space is a best guess and is suitable for separated output only.
optionalContentThe optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered.
optionalContentUsageThe desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used.
Returns
IDOMImagePtr the rendered image.

◆ renderAntiAliased()

virtual IDOMImagePtr JawsMako::IJawsRenderer::renderAntiAliased ( const IDOMNodePtr & node,
uint32 dpi = 72,
uint8 quality = 3,
const FRect & bounds = FRect() )
pure virtual

Render a node to an antialiased, DeviceRGB image suitable for display, using supersampling.

Parameters
nodeThe node to render.
dpiThe desired resolution.
qualityThe desired anti-aliasing quality, from 0 (no antialiasing) to 15 (maximum).
Returns
IDOMImagePtr the rendered image.

◆ renderMonochrome()

IDOMImagePtr JawsMako::IJawsRenderer::renderMonochrome ( const IDOMNodePtr & node,
uint32 dpi = 72,
const IHalftone * halftone = NULL,
const IDOMColorSpacePtr & colorSpace = IDOMColorSpacePtr(),
const FRect & bounds = FRect(),
const bool useCC = false )
inline

Convenience - Render a node to a 1-bit monochrome image.

Parameters
nodeThe node to render.
dpiThe desired resolution.
halftoneThe Halftone to use. If NULL, a 60lpi spot function will be used. If provided, this must be either a CSpotHalftone, CThresholdArrayHalftone, or CThresholdHalftone.
colorSpaceThe desired color space. If NULL, DeviceGray will be used. If provided, only DeviceGray sGray, or a single component ICC space may be used.
boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
useCCWhen this parameter is true then color correction is applied during rendering.
Returns
IDOMImagePtr the rendered image.

◆ renderMonochromeToFrameBuffer()

void JawsMako::IJawsRenderer::renderMonochromeToFrameBuffer ( const IDOMNodePtr & node,
void * buffer,
uint32 stride,
uint32 destWidth,
uint32 destHeight,
const IHalftone * halftone,
const IDOMColorSpacePtr colorSpace = IDOMColorSpacePtr(),
const FRect & bounds = FRect(),
const bool useCC = false,
const IOptionalContentPtr & optionalContent = IOptionalContentPtr(),
eOptionalContentEvent optionalContentUsage = eOCEView )
inline

Convenience Render a node to a 1-bit monochrome frame buffer.

Parameters
[in]nodeThe node to render.
[in]bufferThe target frame buffer.
[in]strideThe distance in bytes between the start of one scanline in the buffer to the next scanline in y.
[in]halftoneThe Halftone to use. Must not be NULL. Spot function (CSpotHalftone) and threshold (CThresholdHalftone) supported.
(Adjust the frequency of spot function so that it works in 48 dpi. For example, to achieve 60 lpi at 600dpi, set a frequency of 60 * 48 / 600 = 4.8 lpi).
[in]colorSpaceThe desired color space. If NULL, DeviceGray will be used. If provided, only DeviceGray or sGray may be used.
[in]boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
[in]useCCWhen this parameter is true then color correction is applied during rendering.
[in]optionalContentUsageThe desired usage for optional content. Ignored if optionalContent is NULL. eOCEUnknown must not be used.

◆ renderScreened()

virtual CEDLVector< IDOMImagePtr > JawsMako::IJawsRenderer::renderScreened ( const IDOMNodePtr & node,
uint32 dpi,
const IHalftone * halftone,
const IDOMColorSpacePtr & colorSpace = IDOMColorSpacePtr(),
const FRect & bounds = FRect(),
const bool useCC = true,
const IOptionalContentPtr & optionalContent = IOptionalContentPtr(),
eOptionalContentEvent optionalContentUsage = eOCEView )
pure virtual

Render a node to a screened result, in monochrome or CMYK returning one image per colorant.

Parameters
[in]nodeThe node to render.
[in]dpiThe desired resolution.
[in]halftoneto use. Must be provided. When rendering to a CMYK or RGB result, this must be either a CColorSpotHalftone or a CColorThresholdArrayHalftone. When rendering to a monochrome result this must be either a CSpotHalftone, CThresholdArrayHalftone, or CThresholdHalftone.
[in]colorSpaceThe desired color space. May be one of:
  • DeviceGray
  • sGray
  • DeviceRGB
  • sRGB
  • DeviceCMYK
  • One, three or four-component ICC color space
[in]boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
[in]useCCWhen this parameter is true then color correction is applied during rendering.
[in]optionalContentUsageThe desired usage for optional content. Ignored if optionalContent is NULL. eOCEUnknown must not be used.

◆ renderScreenedToFrameBuffers()

virtual void JawsMako::IJawsRenderer::renderScreenedToFrameBuffers ( const IDOMNodePtr & node,
void ** buffers,
uint32 * strides,
uint32 destWidth,
uint32 destHeight,
const IHalftone * halftone,
const IDOMColorSpacePtr & colorSpace = IDOMColorSpacePtr(),
const FRect & bounds = FRect(),
const bool useCC = true,
const IOptionalContentPtr & optionalContent = IOptionalContentPtr(),
eOptionalContentEvent optionalContentUsage = eOCEView )
pure virtual

Render a node to a 1-bit monochrome frame buffer, a series of three 1-bit frame buffers for RGB, or four 1-bit frame buffers representing CMYK.

Parameters
[in]nodeThe node to render.
[in]buffersThe target frame buffers. Provide one for monochrome, or four for CMYK.
[in]stridesThe distance in bytes between the start of one scanline in each buffer to the next scanline in y, one per frame buffer.
[in]halftoneto use. Must be provided. When rendering to a CMYK or RGB result, this must be either a CColorSpotHalftone or a CColorThresholdArrayHalftone. When rendering to a monochrome result this must be either a CSpotHalftone, CThresholdArrayHalftone, or CThresholdHalftone. For spot functions, adjust the frequency to assume 48 dpi. For example, to achieve 60 lpi at 600dpi, set a frequency of 60 * 48 / 600 = 4.8 lpi.
[in]colorSpaceThe desired color space. May be one of:
  • DeviceGray
  • sGray
  • DeviceRGB
  • sRGB
  • DeviceCMYK
  • One, three or four-component ICC color space If NULL, DeviceGray is used.
[in]boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
[in]useCCWhen this parameter is true then color correction is applied during rendering.
[in]optionalContentUsageThe desired usage for optional content. Ignored if optionalContent is NULL. eOCEUnknown must not be used.

◆ renderSeparations()

virtual CEDLVector< IDOMImagePtr > JawsMako::IJawsRenderer::renderSeparations ( const IDOMNodePtr & node,
const uint8 depth = 8,
const IDOMColorSpacePtr & colorSpace = IDOMColorSpacePtr(),
uint8 antiAliased = 0,
const FRect & bounds = FRect(),
uint32 destWidth = 0,
uint32 destHeight = 0,
const CSpotColorNames & retainedSpotColors = CSpotColorNames(),
const IOptionalContentPtr & optionalContent = IOptionalContentPtr(),
eOptionalContentEvent optionalContentUsage = eOCEView,
const CU8StringVect & processColorNames = CU8StringVect(),
bool alphaGeneration = false,
uint64 bandMemorySize = 0,
const CSpotColorNames & ignoreSpotColors = CSpotColorNames() )
pure virtual

Render a node to a set of separated images, with optional anti-aliasing. For ease of use, the output is scaled to fit the destination size, described in pixels.

Parameters
nodeThe node to render.
depthThe desired depth - either 8 or 16 bits per component.
colorSpaceThe desired color space. If NULL, DeviceRGB will be used. If provided, this must be an instance of one of the following colorspace types:
  • DeviceRGB,
  • sRGB,
  • DeviceGray,
  • sGray,
  • DeviceCMYK,
  • ICCBased Multi-channel ICC based color spaces based on CMYK are supported, such as CMYKOG (Cyan Magenta Yellow Black Orange Green) hifi color profiles and the like. If such a profile is used, then processColorNames must be provided.
antiAliasedAnti-aliasing factor. If zero, anti-aliasing is not performed.
boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
destWidthThe desired output width, in pixels. If zero, the input size is used.
destHeightThe desired output height, in pixels. If zero, the input size is used.
retainedSpotColorsUsed only if the color space is a three or four channel type (ie some form of RGB or CMYK color space). If provided, the renderer will produce separate images for these colorants. A maximum of 4096 total separations are supported (process + spot + alpha).
optionalContentThe optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered.
optionalContentUsageThe desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used.
processColorNamesRequired only if a multi-channel target profile target space is provided, ignored otherwise. The names must be specified in the order that they are generated by the profile. For example, a CMYKOK profile will normally require this to be set to "Cyan", "Magenta", "Yellow", "Black", "Orange", "Green".
alphaGenerationUsed only if the color space is Gray, RGB or CMYK based (including ICC Gray, RGB or CMYK).
bandMemorySizeExplicitly set the amount of memory that should be used for band buffers in the renderer. Useful for some situations where either very large pages or very large numbers of separations. This parameter is ignored on 32-bit platforms.
ignoreSpotColorsIf provided, the renderer will ignore these colorants.
Returns
CEDLVector<IDOMImagePtr> the rendered separations. The main channels (as determined from the target space) will be first, followed by spot components (if requested) in the same order as retainedSpotColors.

◆ renderSeparationsToFrameBuffers()

virtual void JawsMako::IJawsRenderer::renderSeparationsToFrameBuffers ( const IDOMNodePtr & node,
uint8 depth,
bool hostEndian,
uint32 destWidth,
uint32 destHeight,
const IDOMColorSpacePtr & colorSpace,
CFrameBufferInfoVect & frameBuffers,
uint8 antiAliased = 0,
const FRect & bounds = FRect(),
const CSpotColorNames & retainedSpotColors = CSpotColorNames(),
const IOptionalContentPtr & optionalContent = IOptionalContentPtr(),
eOptionalContentEvent optionalContentUsage = eOCEView,
const CU8StringVect & processColorNames = CU8StringVect(),
bool alphaGeneration = false,
uint64 bandMemorySize = 0,
const CSpotColorNames & ignoreSpotColors = CSpotColorNames() )
pure virtual

As per renderSeparations(), but targeting a set of frame buffers, described by a vector CFrameBufferInfoVect.

Parameters
nodeThe node to render.
depthThe desired depth - either 8 or 16 bits per component.
hostEndianWhether or not to use host-endianness for 16 bit components. If false, the PDF format is used (Big endian). If true, the host endianness (typically little endian) is used. Ignored for 8bpc.
destWidthThe desired output width, in pixels.
destHeightThe desired output height, in pixels.
colorSpaceThe desired color space. If provided, this must be an instance of one of the following colorspace types:
  • DeviceRGB,
  • sRGB,
  • DeviceGray,
  • sGray,
  • DeviceCMYK,
  • ICCBased Multi-channel ICC based color spaces based on CMYK are supported, such as CMYKOG (Cyan Magenta Yellow Black Orange Green) hifi color profiles and the like. If such a profile is used, then processColorNames must be provided.
frameBuffersA vector of frame buffers where the results will be written. There must be a CFrameBufferInfo for every channel that will be generated (including alpha if alphaGeneration is true). The row and pixel strides in the CFrameBufferInfo may be negative. The overlapping of buffers is allowed, and therefore it is possible to create a series of CFrameBufferInfo that result in interleaved output to a single block of target memory. Padding and reversal is also possible.
antiAliasedAnti-aliasing factor. If zero, anti-aliasing is not performed.
boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
retainedSpotColorsUsed only if the color space is a three or four channel type (ie some form of RGB or CMYK color space). If provided, the renderer will produce separate images for these colorants. A maximum of 4096 total separations are supported (process + spot + alpha).
optionalContentThe optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered.
optionalContentUsageThe desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used.
processColorNamesRequired only if a multi-channel target profile target space is provided, ignored otherwise. The names must be specified in the order that they are generated by the profile. For example, a CMYKOK profile will normally require this to be set to "Cyan", "Magenta", "Yellow", "Black", "Orange", "Green".
alphaGenerationUsed only if the color space is Gray, RGB or CMYK based (including ICC Gray, RGB or CMYK).
bandMemorySizeExplicitly set the amount of memory that should be used for band buffers in the renderer. Useful for some situations where either very large pages or very large numbers of separations. This parameter is ignored on 32-bit platforms.
ignoreSpotColorsIf provided, the renderer will ignore these colorants.

◆ renderToFrameBuffer()

virtual void JawsMako::IJawsRenderer::renderToFrameBuffer ( const IDOMNodePtr & node,
void * buffer,
uint32 stride,
uint32 destWidth,
uint32 destHeight,
const IDOMColorSpacePtr & colorSpace = IDOMColorSpacePtr(),
const FRect & bounds = FRect(),
const IOptionalContentPtr & optionalContent = IOptionalContentPtr(),
eOptionalContentEvent optionalContentUsage = eOCEView )
pure virtual

Render a node to a supplied frame buffer, at 8 bits per component.

Parameters
nodeThe node to render.
bufferThe target frame buffer.
destWidthThe desired output width in pixels. The input content will be scaled to fit this size.
destHeightThe desired output height in pixels. The input content will be scaled to fit this size.
strideThe distance in bytes between the start of one scanline in the buffer to the next scanline in y.
colorSpaceThe desired color space. If NULL, DeviceRGB will be used. If provided, this must be an instance of one of the following colorspace types:
  • DeviceRGB,
  • sRGB,
  • DeviceGray,
  • sGray,
  • DeviceCMYK,
  • ICCBased,
boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
optionalContentThe optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered.
optionalContentUsageThe desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used.

◆ renderToFrameBufferPadAndReverse()

virtual void JawsMako::IJawsRenderer::renderToFrameBufferPadAndReverse ( const IDOMNodePtr & node,
void * buffer,
uint32 stride,
uint32 pixelStride,
bool reverseComponents,
uint32 destWidth,
uint32 destHeight,
const IDOMColorSpacePtr & colorSpace = IDOMColorSpacePtr(),
const FRect & bounds = FRect(),
const IOptionalContentPtr & optionalContent = IOptionalContentPtr(),
eOptionalContentEvent optionalContentUsage = eOCEView )
pure virtual

As per renderToFrameBuffer, but allowing for pixel byte order and padding control.

Amongst other things this allows the use of XRGB, RGBX, XBGR or BGRX frame buffers. For example, to render to:

  • XRGB: Set pixelStride to 4 and pass the address of the second frame buffer byte
  • RGBX: Set pixelStride to 4 and pass the buffer address as usual
  • XBGR: Set pixelStride to 4, pass the address of the second frame buffer byte, and set reverseComponents to true
  • BGRX: Set pixelStride to 4, pass the buffer address as usual, and set reverseComponents to true

Note that any pad bytes will not be altered during rendering.

Parameters
nodeThe node to render.
bufferThe target frame buffer.
destWidthThe desired output width in pixels. The input content will be scaled to fit this size.
destHeightThe desired output height in pixels. The input content will be scaled to fit this size.
strideThe distance in bytes between the start of one scanline in the buffer to the next scanline in y.
pixelStrideThe distance in bytes between one pixel in x and the next. Must be at least as large as the number of components in the color space.
reverseComponentsIf true, the order of samples within a pixel will be reversed. For example, if you are rendering RGB to a BGR frame buffer, set this to true.
colorSpaceThe desired color space. If NULL, DeviceRGB will be used. If provided, this must be an instance of one of the following colorspace types:
  • DeviceRGB,
  • sRGB,
  • DeviceGray,
  • sGray,
  • DeviceCMYK,
  • ICCBased,
boundsThe desired rendering area. If the rect is empty an appropriate size is chosen based on the input node.
optionalContentThe optional content properties of the document the content is taken from. If provided, the renderer will apply optional content rules to the content during rendering. If not provided, all content will be rendered.
optionalContentUsageThe desired usage for optional content. Ignored if #optionalContent is NULL. eOCEUnknown must not be used.

◆ setBlackPreservation()

virtual void JawsMako::IJawsRenderer::setBlackPreservation ( bool preserveForText,
bool preserveForOther )
pure virtual

Enable/control 100% black preservation.

    100% black preservation preserves a 100% black output when rendering
    when enabled for certain solid colors.

    A 100% black object is an object painted with one of the following
    colors:

    - 0 0 0 1 in any CMYK color space (including ICC)
    - 0 0 0 in any RGB color space (including ICC)
    - 0 in any Gray colorspace (including ICC)
    - 1 in a single channel DeviceN (aka Separation) Black color space
    - 1 in a multi-channel DeviceN colorspace where only the Black channel
      is set.

    If black preservation applies then the resulting color will be either
    (depending on the target color space):

    - c m y 1 in any CMYK colorspace (including ICC)
    - 0 0 0 in any RGB colorspace (including ICC)
    - 0 in any Gray colorspace (including ICC)

    Note that the CMY values in a CMYK result may not be zero if color
    managed white conversion would not produce pure white.

    Note also that where transparency is involved this conversion only
    applies when converting to the blending colorspace, and has no
    further effect for further conversions.

    May be enabled separately for text and vector art. Applies to only
    solid color brushes (IDOMSolidColorBrush) and uncolored tiling
    patterns only.

    The default is set by #IColorManager::setDefaultBlackPreservation(),
    which defaults to false, false. The default is applied at the time
    of renderer creation.
Parameters
preserveForTextWhether or not to apply black preservation for text.
preserveForOtherWhether or not to apply for non-text objects.

◆ setEnableRasterCompression()

virtual void JawsMako::IJawsRenderer::setEnableRasterCompression ( bool enable)
pure virtual

Enable the use of compression for compressed output.

    If true, a fast compression is applied to raster data produced by the renderer.
    If false, the image raster data is stored uncompressed.

    In general, the compression is very fast and does not introduce a large CPU cost
    but reduces the storage requirements. However, it does mean that IImageFrame::readScanline()
    will be slower than if the data was uncompressed.

    The default is true.

◆ setEnableTrueTypeNotDef()

virtual void JawsMako::IJawsRenderer::setEnableTrueTypeNotDef ( bool enable)
pure virtual

Enable the use of a True Type font's /.notdef glyph in the output.

    If true, a character that does not have a glyph or that has been linked to the /.notdef glyph
    will be rendered.

    If false, a character that does not have a glyph or that has been linked to the /.notdef glyph
    will be ignored.

    The default is true.

◆ setIgnoreMatchingDeviceIntercept()

virtual void JawsMako::IJawsRenderer::setIgnoreMatchingDeviceIntercept ( bool ignoreDeviceIntercept)
pure virtual

Allow intercept color spaces for a matching Device space to be ignored.

    In the renderer, when a Device color space (DeviceRGB, DeviceCMYK, or
    DeviceGray) is seen, it is interpreted according to the intercept
    color space set in the IColorManager instance via the setDevice*Intercept()
    routines.

    This may not always be desirable. Consider the case where a CMYK ICC profile
    is used as the the output color space for rendering. If the DeviceCMYK
    intercept does not match that profile, then any DeviceCMYK content would be
    color converted from the intercept color space to the output profile.

    This behaviour is contrary to what would ordinarily be seen in a standalone
    RIP. There, it is expected that if the output is a CMYK profile, then any
    DeviceCMYK content would be passed through without conversion.

    The same result can be achieved in Mako by using
    IColorManager::setDeviceCMYKIntercept() to apply the output ICC profile as
    the DeviceCMYK intercept. However, this is a global setting, and it may not
    always be possible to do so.

    Here, if ignoreDeviceIntercept is set, then the renderer will do the following:

    - If the output is a CMYK color space, then any DeviceCMYK content will be
      interpreted as matching that space.
    - If the output is an RGB color space, then any DeviceRGB content will be
      interpreted as matching that space.
    - If the output is a Gray color space, then any DeviceGray content will be
      interpreted as matching that space.

    The default is false.

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