The following modules are included in the standard distribution and can be loaded at run-time with mod.load() in Fluid or LoadModule() in C/C++.
Use the navigation bar on the right to peruse the available functionality of the selected module.
Beginners should start with the Core module, which includes the bulk of Parasol's functionality.
Copy a pre-generated or custom path to a VectorPath object.
Parameter | Description |
---|---|
Path | The source path to be copied. |
VectorPath | The target VectorPath object. |
Any path originating from GeneratePath(), GenerateEllipse() or GenerateRectangle() can be applied to a VectorPath object by calling ApplyPath(). The source Path can then be deallocated with FreeResource() if it is no longer required.
This method is particularly useful when paths need to be generated or changed in real-time and the alternative of processing the path as a string is detrimental to performance.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Alter a path by setting an arc-to command at the current vertex position.
Parameter | Description |
---|---|
Path | The vector path to modify. |
RX | The horizontal radius of the arc. |
RY | The vertical radius of the arc. |
Angle | The angle of the arc, expressed in radians. |
X | The horizontal end point for the arc command. |
Y | The vertical end point for the arc command. |
Flags | Optional flags. |
This function will set an arc-to command at the current vertex. It then increments the vertex position for the next path command.
Returns the width of a character.
Parameter | Description |
---|---|
FontHandle | The font to use for calculating the character width. |
Char | A 32-bit unicode character. |
KChar | A unicode character to use for calculating the font kerning (optional). |
Kerning | The resulting kerning value (optional). |
This function will return the pixel width of a font character. The character is specified as a unicode value in the Char
parameter. Kerning values can also be returned, which affect the position of the character along the horizontal. The previous character in the word is set in KChar
and the kerning value will be returned in the Kerning
parameter. If kerning information is not required, set the KChar
and Kerning
parameters to zero.
The font's glyph spacing value is not used in calculating the character width.
The pixel width of the character will be returned.
Close the path by connecting the beginning and end points.
Parameter | Description |
---|---|
Path | The vector path to modify. |
This function will set a close-path command at the current vertex. It then increments the vertex position for the next path command.
Note that closing a path does not necessarily terminate the vector. Further paths can be added to the sequence and interesting effects can be created by taking advantage of fill rules.
Alter a path by inserting a quadratic bezier curve command at the current vertex position.
Parameter | Description |
---|---|
Path | The vector path to modify. |
CtrlX | Control point horizontal coordinate. |
CtrlY | Control point vertical coordinate. |
X | The horizontal end point for the curve3 command. |
Y | The vertical end point for the curve3 command. |
This function will set a quadratic bezier curve command at the current vertex. It then increments the vertex position for the next path command.
Alter a path by inserting a curve4 command at the current vertex position.
Parameter | Description |
---|---|
Path | The vector path to modify. |
CtrlX1 | Control point 1 horizontal coordinate. |
CtrlY1 | Control point 1 vertical coordinate. |
CtrlX2 | Control point 2 horizontal coordinate. |
CtrlY2 | Control point 2 vertical coordinate. |
X | The horizontal end point for the curve4 command. |
Y | The vertical end point for the curve4 command. |
This function will set a cubic bezier curve command at the current vertex. It then increments the vertex position for the next path command.
Draws a vector path to a target bitmap.
Parameter | Description |
---|---|
Bitmap | Pointer to a target Bitmap object. |
Path | The vector path to render. |
StrokeWidth | The width of the stroke. Set to 0 if no stroke is required. |
StrokeStyle | Pointer to a valid object for stroke definition, or NULL if none required. |
FillStyle | Pointer to a valid object for fill definition, or NULL if none required. |
Use DrawPath() to draw a generated path to a Bitmap, using customised fill and stroke definitions. This functionality provides an effective alternative to configuring vector scenes for situations where only simple vector shapes are required. However, it is limited in that advanced rendering options and effects are not available to the client.
A StrokeStyle
and/or FillStyle
will be required to render the path. Valid styles are allocated and configured using recognised vector style objects, specifically from the classes VectorImage, VectorPattern and VectorGradient. If a fill or stroke operation is not required, set the relevant parameter to NULL
.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Flushes matrix changes to a vector.
Parameter | Description |
---|---|
Matrix | The matrix to be flushed. |
If the matrices values of a vector have been directly modified by the client, the changes will need to be flushed in order to have those changes reflected on the display. This needs to be done before the next draw cycle.
Note that if the client uses API functions to modify a VectorMatrix, a call to FlushMatrix() is unnecessary as the vector will have already been marked for an update.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Generates an elliptical path.
Parameter | Description |
---|---|
CX | Horizontal center point of the ellipse. |
CY | Vertical center point of the ellipse. |
RX | Horizontal radius of the ellipse. |
RY | Vertical radius of the ellipse. |
Vertices | Optional. If >= 3 , the total number of generated vertices will be limited to the specified value. |
Path | A pointer variable that will receive the resulting path. |
Use GenerateEllipse() to create an elliptical path suitable for passing to vector functions that receive a Path parameter. The path must be manually deallocated with FreeResource() once it is no longer required.
Okay | Operation successful. |
---|---|
AllocMemory | A call to AllocMemory() failed to create a new memory block. |
NullArgs | Function call missing argument value(s) |
Generates a path from an SVG path command sequence, or an empty path for custom configuration.
Parameter | Description |
---|---|
Sequence | The command sequence to process. If no sequence is specified then the path will be empty. |
Path | A pointer variable that will receive the resulting path. |
This function will generate a vector path from a sequence of fixed point coordinates and curve instructions. The resulting path can then be passed to vector functions that receive a Path parameter. The path must be manually deallocated with FreeResource() once it is no longer required.
The Sequence is a string of points and instructions that define the path. It is based on the SVG standard for the path element d
attribute, but also provides some additional features that are present in the vector engine. Commands are case insensitive.
The following commands are supported:
M: Move To L: Line To V: Vertical Line To H: Horizontal Line To Q: Quadratic Curve To T: Quadratic Smooth Curve To C: Curve To S: Smooth Curve To A: Arc Z: Close Path
The use of lower case characters will indicate that the provided coordinates are relative (based on the coordinate of the previous command).
If the Sequence
is NULL
then an empty path resource will be generated. This path will be suitable for passing to path modifying functions such as MoveTo() and LineTo() for custom path generation.
Okay | Operation successful. |
---|---|
AllocMemory | A call to AllocMemory() failed to create a new memory block. |
NullArgs | Function call missing argument value(s) |
Generate a rectangular path at (x,y) with size (width,height).
Parameter | Description |
---|---|
X | The horizontal position of the rectangle. |
Y | The vertical position of the rectangle. |
Width | The width of the rectangle. |
Height | The height of the rectangle. |
Path | A pointer variable that will receive the resulting path. |
Use GenerateRectangle() to create a rectangular path suitable for passing to vector functions that receive a Path parameter. The path must be manually deallocated with FreeResource() once it is no longer required.
Okay | Operation successful. |
---|---|
AllocMemory | A call to AllocMemory() failed to create a new memory block. |
NullArgs | Function call missing argument value(s) |
Returns a handle for a given font family.
Parameter | Description |
---|---|
Family | The name of the font family to access. |
Style | The preferred style to choose from the family. Use Regular or NULL for the default. |
Weight | Equivalent to CSS font-weight; a value of 400 or 0 will equate to normal. |
Size | The font-size, measured in pixels @ 72 DPI. |
Handle | The resulting font handle is returned here. |
For a given font family and size, this function will return a Handle
that can be passed to font querying functions.
The handle is deterministic and permanent, remaining valid for the lifetime of the program.
Okay | Operation successful. |
---|---|
Args | Invalid arguments passed to function. |
NullArgs | Function call missing argument value(s) |
Returns a set of display metric values for a font.
Parameter | Description |
---|---|
Handle | A font handle obtained from GetFontHandle(). |
Info | The font metrics for the Handle will be stored here. |
Call GetFontMetrics() to retrieve a basic set of display metrics measured in pixels (adjusted to the display's DPI) for a given font.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Retrieve the coordinates of the current vertex.
Parameter | Description |
---|---|
Path | The vector path to query. |
X | Pointer to a double that will receive the X coordinate value. |
Y | Pointer to a double that will receive the Y coordinate value. |
The coordinates of the current vertex are returned by this function in the X
and Y
parameters. In addition, the internal command number for that vertex is the return value.
The internal command value for the vertex will be returned.
Alter a path by setting a line-to command at the current vertex position.
Parameter | Description |
---|---|
Path | The vector path to modify. |
X | The line end point on the horizontal plane. |
Y | The line end point on the vertical plane. |
This function alters a path by setting a line-to command at the current vertex position. The index is then advanced by one to the next vertex position.
Alter a path by setting a move-to command at the current vertex position.
Parameter | Description |
---|---|
Path | The vector path to modify. |
X | The horizontal end point for the command. |
Y | The vertical end point for the command. |
This function will set a move-to command at the current vertex. It then increments the vertex position for the next path command.
The move-to command is used to move the pen to a new coordinate without drawing a line.
Combines a matrix with a series of matrix values.
Parameter | Description |
---|---|
Matrix | The target transformation matrix. |
ScaleX | Matrix value A. |
ShearY | Matrix value B. |
ShearX | Matrix value C. |
ScaleY | Matrix value D. |
TranslateX | Matrix value E. |
TranslateY | Matrix value F. |
This function uses matrix multiplication to combine a set of values with a VectorMatrix structure.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Combines a source matrix with a target.
Parameter | Description |
---|---|
Target | The target transformation matrix. |
Source | The source transformation matrix. |
This function uses matrix multiplication to combine a Source
matrix with a Target
.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Parse an SVG transformation string and apply the values to a matrix.
Parameter | Description |
---|---|
Matrix | The target transformation matrix. |
Transform | The transform to apply, expressed as a string instruction. |
This function parses a sequence of transform instructions and applies them to a matrix.
The string must be written using SVG guidelines for the transform attribute. For example, skewX(20) rotate(45 50 50)
would be valid. Transform instructions are applied in reverse, as per the standard.
Note that any existing transforms applied to the matrix will be cancelled as a result of calling this function. If existing matrix values need to be retained, create a fresh matrix and use Multiply() to combine them.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Parses a painter string to its colour, gradient, pattern or image value.
Parameter | Description |
---|---|
Scene | Optional. Required if url() references are to be resolved. |
IRI | The IRI string to be translated. |
Painter | This VectorPainter structure will store the deserialised result. |
Result | Optional pointer for storing the end of the parsed IRI string. NULL is returned if there is no further content to parse or an error occurred. |
This function will parse an SVG style IRI into its equivalent logical values. The results can then be processed for rendering a stroke or fill operation in the chosen style.
Colours can be referenced using one of three methods. Colour names such as orange
and red
are accepted. Hexadecimal RGB values are supported in the format #RRGGBBAA
. Floating point RGB is supported as rgb(r,g,b,a)
whereby the component values range between 0.0
and 255.0
.
A Gradient, Image or Pattern can be referenced using the url(#name)
format, where the 'name' is a definition that has been registered with the provided Scene
object. If Scene
is NULL
then it will not be possible to find the reference. Any failure to lookup a reference will be silently discarded.
To access one of the pre-defined colourmaps, use the format url(#cmap:name)
. The colourmap will be accessible as a linear gradient that belongs to the Scene
. Valid colourmap names are cmap:crest
, cmap:flare
, cmap:icefire
, cmap:inferno
, cmap:magma
, cmap:mako
, cmap:plasma
, cmap:rocket
, cmap:viridis
.
A VectorPainter structure must be provided by the client and will be used to store the final result. All pointers that are returned will remain valid as long as the provided Scene exists with its registered painter definitions. An optional Result
string can store a reference to the character up to which the IRI was parsed.
Okay | Operation successful. |
---|---|
Failed | General failure. |
NullArgs | Function call missing argument value(s) |
Resets a transformation matrix to its default state.
Parameter | Description |
---|---|
Matrix | The target transformation matrix. |
Call ResetMatrix() to reset a transformation matrix to its default state, undoing all former transform operations.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Resets the vertex seek position to zero.
Parameter | Description |
---|---|
Path | The vector path to rewind. |
Rewinding a path will reset the current vertex index to zero. The next call to a vertex modification function such as LineTo() would result in the first vertex being modified.
If the referenced Path
is empty, this function does nothing.
Applies a rotation transformation to a matrix.
Parameter | Description |
---|---|
Matrix | The target transformation matrix. |
Angle | Angle of rotation, in degrees. |
CenterX | Center of rotation on the horizontal axis. |
CenterY | Center of rotation on the vertical axis. |
This function will apply a rotation transformation to a matrix. By default, rotation will occur around point (0, 0)
unless CenterX
and CenterY
values are specified.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Scale the size of the vector by (x,y)
Parameter | Description |
---|---|
Matrix | The target transformation matrix. |
X | The scale factor on the x-axis. |
Y | The scale factor on the y-axis. |
This function will perform a scale operation on a matrix. Values of less than 1.0
will shrink the affected vector path, while values greater than 1.0
will enlarge it.
Scaling is relative to position (0, 0)
. If the width and height of the vector path needs to be transformed without affecting its top-left position, the client must translate the path to (0, 0)
around its center point. The path should then be scaled before being transformed back to its original top-left coordinate.
The scale operation can also be used to flip a vector path if negative values are used. For instance, a value of -1.0
on the x axis would result in a 1:1
flip across the horizontal.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Skews the matrix along the horizontal and/or vertical axis.
Parameter | Description |
---|---|
Matrix | The target transformation matrix. |
X | The angle to skew along the horizontal. |
Y | The angle to skew along the vertical. |
The Skew function applies a skew transformation to the horizontal and/or vertical axis of the matrix. Valid X and Y values are in the range of -90 < Angle < 90
.
Okay | Operation successful. |
---|---|
OutOfRange | At least one of the angles is out of the allowable range. |
NullArgs | Function call missing argument value(s) |
Alter a path by setting a smooth3 command at the current vertex position.
Parameter | Description |
---|---|
Path | The vector path to modify. |
X | The horizontal end point for the smooth3 command. |
Y | The vertical end point for the smooth3 command. |
This function will set a quadratic bezier curve command at the current vertex. It then increments the vertex position for the next path command.
The control point from the previous curve is used as the control point for the new curve, hence the 'smooth'.
Alter a path by setting a smooth4 command at the current vertex position.
Parameter | Description |
---|---|
Path | The vector path to modify. |
CtrlX | Control point horizontal coordinate. |
CtrlY | Control point vertical coordinate. |
X | The horizontal end point for the smooth4 instruction. |
Y | The vertical end point for the smooth4 instruction. |
This function will set a cubic bezier curve command at the current vertex. It then increments the vertex position for the next path command.
The control point from the previous curve will be used in addition to the CtrlX and CtrlY points, hence the name 'smoothed curve'.
Calculate the pixel width of a UTF-8 string, for a given font.
Parameter | Description |
---|---|
FontHandle | A font handle obtained from GetFontHandle(). |
String | Pointer to a null-terminated string. |
Chars | The maximum number of unicode characters to process in calculating the string width. Set to -1 for all chars. |
This function calculates the pixel width of a string, in relation to a known font. The function takes into account any line-feeds that are encountered, so if the String
contains multiple lines, then the width of the longest line will be returned.
The font's kerning specifications will be taken into account when computing the distance between glyphs.
The pixel width of the string is returned.
Returns the coordinates for a vector path, using callbacks.
Parameter | Description |
---|---|
Path | The vector path to trace. |
Callback | A function to call with the path coordinates. |
Scale | Set to 1.0 (recommended) to trace the path at a scale of 1 to 1. |
Any vector that generates a path can be traced by calling this method. Tracing allows the caller to follow the Path
from point-to-point if the path were to be rendered with a stroke. The prototype of the callback function is ERR Function(OBJECTPTR Vector, LONG Index, LONG Command, double X, double Y, APTR Meta)
.
The Index
is an incrementing counter that reflects the currently plotted point. The X
and Y
parameters reflect the coordinate of a point on the path.
If the Callback
returns ERR::Terminate
, then no further coordinates will be processed.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Translates the vector by (X,Y).
Parameter | Description |
---|---|
Matrix | The target transformation matrix. |
X | Translation along the x-axis. |
Y | Translation along the y-axis. |
This function will translate the matrix in the direction of the provided (X,Y) values.
Okay | Operation successful. |
---|---|
NullArgs | Function call missing argument value(s) |
Translates a path by (x,y)
Parameter | Description |
---|---|
Path | Pointer to a generated path. |
X | Translate the path horizontally by the given value. |
Y | Translate the path vertically by the given value. |
This function will translate all vertices of a path by (X,Y).
Options for drawing arcs.
Name | Description |
---|---|
ARC::LARGE | The arc will take the longest available drawing path rather than the shortest. |
ARC::SWEEP | Inverts the default behaviour in generating the arc path (go clockwise). |
Aspect ratios control alignment, scaling and clipping.
Name | Description |
---|---|
ARF::MEET | Aspect ratio is preserved. The entire viewbox will be visible in the viewport. The viewbox is scaled up as much as possible. |
ARF::NONE | Scale the viewbox to match the size of the viewport. Aspect ratio is not preserved. |
ARF::SLICE | Aspect ratio is preserved. The viewbox can extend beyond the viewport's edges on one axis. The viewbox is scaled up as much as possible. |
ARF::X_MAX | Align to the right. |
ARF::X_MID | Align to the horizontal center. |
ARF::X_MIN | Align to the left. |
ARF::Y_MAX | Align to the bottom. |
ARF::Y_MID | Align to the vertical center. |
ARF::Y_MIN | Align to the top. |
Colour modes for ColourFX.
Name | Description |
---|---|
CM::BRIGHTNESS | Adjust brightness using the first parameter to define the intensity. |
CM::COLOURISE | Colourise the input with the first 3 parameters used as RGB multipliers and the fourth parameter controlling intensity from 0 - 1.0. |
CM::CONTRAST | Adjust contrast using the first parameter to define the intensity from -1.0 to 1.0. |
CM::DESATURATE | Desaturate the input completely so that it is rendered in greyscale. |
CM::HUE | Adjust the hue by 0 - 360 degrees using the first parameter. |
CM::HUE_ROTATE | Rotate the hue by 0 - 360 degrees, controlled by the first parameter. |
CM::LUMINANCE_ALPHA | Converts each RGB value to greyscale, which then overrides the alpha channel. |
CM::MATRIX | Process the supplied 5x4 matrix values. |
CM::NONE | Do nothing. |
CM::SATURATE | Adjust colour saturation with the first parameter defining the multiplier. |
Component selection for RemapFX methods.
Name | Description |
---|---|
CMP::ALL | All colour channels. |
CMP::ALPHA | The alpha channel. |
CMP::BLUE | The blue colour channel. |
CMP::GREEN | The green colour channel. |
CMP::RED | The red colour channel. |
Name | Description |
---|---|
DMF::FIXED_CENTER_X | The CenterX field is a fixed size. |
DMF::FIXED_CENTER_Y | The CenterY field is a fixed size. |
DMF::FIXED_DEPTH | The Depth field is a fixed size. |
DMF::FIXED_HEIGHT | The Height field is a fixed size. |
DMF::FIXED_RADIUS_X | The RadiusX field is a fixed size. |
DMF::FIXED_RADIUS_Y | The RadiusY field is a fixed size. |
DMF::FIXED_WIDTH | The Width field is a fixed suze. |
DMF::FIXED_X | The X field is a fixed coordinate. |
DMF::FIXED_X_OFFSET | The XOffset field is a fixed coordinate. |
DMF::FIXED_Y | The Y field is a fixed coordinate. |
DMF::FIXED_Y_OFFSET | The YOffset field is a fixed coordinate. |
DMF::FIXED_Z | The Z field is a fixed coordinate. |
DMF::SCALED_CENTER_X | The CenterX field is scaled to this object's parent. |
DMF::SCALED_CENTER_Y | The CenterY field is scaled to this object's parent. |
DMF::SCALED_DEPTH | The Depth field is scaled to this object's parent. |
DMF::SCALED_HEIGHT | The Height field is scaled to this object's parent. |
DMF::SCALED_RADIUS_X | The RadiusX field is scaled to this object's parent. |
DMF::SCALED_RADIUS_Y | The RadiusY field is a scaled size to this object's parent. |
DMF::SCALED_WIDTH | The Width field is scaled to this object's parent. |
DMF::SCALED_X | The X field is scaled to this object's parent. |
DMF::SCALED_X_OFFSET | The XOffset field is scaled to this object's parent. |
DMF::SCALED_Y | The Y field is scaled to this object's parent. |
DMF::SCALED_Y_OFFSET | The YOffset field is scaled to this object's parent. |
DMF::SCALED_Z | The Z field is a scaled coordinate to this object's parent. |
DMF::STATUS_CHANGE_H | |
DMF::STATUS_CHANGE_V |
Name | Description |
---|---|
EM::DUPLICATE | The input image is extended along its borders by duplicating the color values at its edges. |
EM::NONE | The input image is extended with colour values of zero. |
EM::WRAP | The input image is extended by taking the color values from the opposite edge of the image. |
Mask for controlling feedback events that are received.
Name | Description |
---|---|
FM::CHILD_HAS_FOCUS | A child of the vector has gained the user focus. |
FM::HAS_FOCUS | The vector has gained the user focus. |
FM::LOST_FOCUS | The vector has lost the user focus. |
FM::PATH_CHANGED | The vector path has been modified or affected by a transform. |
Light source identifiers.
Name | Description |
---|---|
LS::DISTANT | Distant light source. |
LS::POINT | Point light source. |
LS::SPOT | Spot light source. |
Lighting algorithm for the LightingFX class.
Name | Description |
---|---|
LT::DIFFUSE | Select diffuse lighting. |
LT::SPECULAR | Select specular lighting. |
MorphologyFX options.
Name | Description |
---|---|
MOP::DILATE | Dilate (fatten) the input source. |
MOP::ERODE | Erode (thin) the input source. |
Operators for CompositionFX.
Name | Description |
---|---|
OP::ARITHMETIC | The SVG 'arithmetic' blending algorithm. |
OP::ATOP | The Porter-Duff 'atop' operator; the mix alpha channel has priority and the input channel does not occlude. |
OP::BURN | |
OP::CONTRAST | |
OP::DARKEN | Use the darker colour components of the mix and input values. |
OP::DIFFERENCE | Output the difference between the input and mix colours. |
OP::DODGE | Gives a brighter result than SCREEN by decreasing the contrast between the input and mix colours. |
OP::EXCLUSION | Produce the difference between the mix and input values around a reference point of mid-grey. |
OP::HARD_LIGHT | |
OP::IN | The Porter-Duff 'in' operator; the input alpha channel has priority and the mix channel is secondary. |
OP::INVERT | |
OP::INVERT_RGB | |
OP::LIGHTEN | Use the lighter colour components of the mix and input values. |
OP::MINUS | The input colour value is subtracted from the mix. |
OP::MULTIPLY | |
OP::OUT | The Porter-Duff 'out' operator; the mix alpha channel is inversed with the input channel. |
OP::OVER | The Porter-Duff 'over' operator, this is the default operation for standard alpha blending. |
OP::OVERLAY | Combines the multiply and screen blend modes, with the mix determining tonal strength. |
OP::PLUS | Add the input and mix colour values together. |
OP::SCREEN | Produces a result brighter than the input. |
OP::SOFT_LIGHT | |
OP::XOR | The Porter-Duff 'xor' operator; blend as normal but occlusion occurs when input and mix alpha channels interact. |
Name | Description |
---|---|
PE::Arc | |
PE::ArcRel | |
PE::ClosePath | |
PE::Curve | |
PE::CurveRel | |
PE::HLine | |
PE::HLineRel | |
PE::Line | |
PE::LineRel | |
PE::Move | |
PE::MoveRel | |
PE::QuadCurve | |
PE::QuadCurveRel | |
PE::QuadSmooth | |
PE::QuadSmoothRel | |
PE::Smooth | |
PE::SmoothRel | |
PE::VLine | |
PE::VLineRel |
Name | Description |
---|---|
RC::ALL | Synonym for FINAL_PATH | BASE_PATH | TRANSFORM |
RC::BASE_PATH | The base path (shape of the vector) must be recalculated. |
RC::FINAL_PATH | The final path will need to be recalculated, so as to take transforms and/or scaled coordinates into account. |
RC::TRANSFORM | The transform matrix must be recalculated. This includes movement, e.g. changing the CX, CY of an ellipse. |
Name | Description |
---|---|
RQ::AUTO | The default option is chosen by the system. |
RQ::BEST | Use the best quality renderer available and without concerns for computational time taken. |
RQ::CRISP | Use a good quality renderer that produces crisp outlines (no anti-aliasing). |
RQ::FAST | Use the fastest renderer available and allow accuracy to be compromised in favour of speed. Recommended for normalised paths that are known to be rectangular. |
RQ::PRECISE | Use a high quality renderer to produce accurate results. Anti-aliasing will be enabled. |
Name | Description |
---|---|
TB::NOISE | Use the fractal noise function. |
TB::TURBULENCE | Use the standard turbulence function. |
Options for vecGetBoundary().
Name | Description |
---|---|
VBF::INCLUSIVE | The result will be inclusive of all paths that belong to children of the queried vector. |
VBF::NO_TRANSFORM | The transformation step will not be applied to the vector's path. |
Options for VectorClip.
Name | Description |
---|---|
VCLF::APPLY_FILLS | Apply fill instructions when drawing the clipping path(s). |
VCLF::APPLY_STROKES | Apply stroke instructions when drawing the clipping path(s). |
Colour space options.
Name | Description |
---|---|
VCS::INHERIT | Inherit the colour space option from the parent vector. |
VCS::LINEAR_RGB | Linear RGB is the default colour space for SVG and produces the best results. |
VCS::SRGB | The default colour-space is sRGB, recommended for its speed. |
Optional flags and indicators for the Vector class.
Name | Description |
---|---|
VF::DISABLED | The vector is disabled and user input should be ignored. |
VF::HAS_FOCUS | The vector holds the user's input focus. |
VF::JOIN_PATHS | When appending a new path, use a join operation to connect the tail end to the head. |
Define the aspect ratio for VectorFilter unit scaling.
Name | Description |
---|---|
VFA::MEET | Scale X/Y values independently and in relation to the width/height of the parent viewport. |
VFA::NONE | Scale X/Y values on a 1:1 basis, in relation to the diagonal of the parent viewport. |
Vector fill rules for the FillRule field in the Vector class.
Name | Description |
---|---|
VFR::EVEN_ODD | This rule determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses. If this number is odd, the point is inside; if even, the point is outside. |
VFR::INHERIT | The rule is inherited from the parent vector(s). |
VFR::NON_ZERO | This is the default. This rule determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a path segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left. After counting the crossings, if the result is zero then the point is outside the path. Otherwise, it is inside. |
Gradient flags
Name | Description |
---|---|
VGF::CONTAIN_FOCAL | Contain the FX,FY point to the base radius. |
VGF::FIXED_CX | CX is fixed |
VGF::FIXED_CY | CY is fixed |
VGF::FIXED_FOCAL_RADIUS | Focal radius is fixed |
VGF::FIXED_FX | FX is fixed |
VGF::FIXED_FY | FY is fixed |
VGF::FIXED_RADIUS | Radius is fixed |
VGF::FIXED_X1 | X1 is fixed |
VGF::FIXED_X2 | X2 is fixed |
VGF::FIXED_Y1 | Y1 is fixed |
VGF::FIXED_Y2 | Y2 is fixed |
VGF::SCALED_CX | CX is scaled |
VGF::SCALED_CY | CY is scaled |
VGF::SCALED_FOCAL_RADIUS | Focal radius is scaled |
VGF::SCALED_FX | FX is scaled |
VGF::SCALED_FY | FY is scaled |
VGF::SCALED_RADIUS | Radius is scaled |
VGF::SCALED_X1 | X1 is scaled |
VGF::SCALED_X2 | X2 is scaled |
VGF::SCALED_Y1 | Y1 is scaled |
VGF::SCALED_Y2 | Y2 is scaled |
VectorGradient options.
Name | Description |
---|---|
VGT::CONIC | The conic gradient is a variant on the radial type, whereby the colour values are drawn as a line that revolves around the cone's center point. |
VGT::CONTOUR | Contoured gradients follow the contours of the vector path in which they are rendered. |
VGT::DIAMOND | A diamond gradient is drawn as a square emanating from the center point. |
VGT::LINEAR | A linear gradient is drawn from (X1, Y1) to (X2, Y2) . |
VGT::RADIAL | A radial gradient is drawn from CenterX, CenterY to Radius . An optional focal point can be expressed with FX and FY . |
Inner join options for angled lines.
Name | Description |
---|---|
VIJ::BEVEL | Blunts the edge of the join. |
VIJ::INHERIT | Inherit the parent's join value. |
VIJ::JAG | A special non-SVG option. |
VIJ::MITER | Forms a sharp point at the join. Typically not the best looking option. |
VIJ::ROUND | Rounds the edge of the join to produce the best looking results. |
Options for the Vector class' Visibility field.
Name | Description |
---|---|
VIS::COLLAPSE | Hide the vector and its children. Do not use - provided for SVG compatibility only. |
VIS::HIDDEN | Hide the vector and its children. |
VIS::INHERIT | Inherit the visibility state from the parent. |
VIS::VISIBLE | The default. Ensures that the vector is visible. |
Line-cap options.
Name | Description |
---|---|
VLC::BUTT | The default. The line is sharply squared off at its exact end point. |
VLC::INHERIT | The cap type is inherited from the parent (defaults to butt if unspecified). |
VLC::ROUND | The line cap is a half-circle and the line's end-point forms the center point. |
VLC::SQUARE | Similar to butt, the line is sharply squared off but will extend past the end point by StrokeWidth / 2 . |
Options for the look of line joins.
Name | Description |
---|---|
VLJ::BEVEL | The join is blunted, eliminating overly sharp edges. |
VLJ::INHERIT | Inherit the join option from the parent. |
VLJ::MITER | The default. A sharp corner is used to join path segments. The corner is formed by extending the outer edges of the stroke at the tangents of the path segments until they intersect. If the ‘stroke-miterlimit’ is exceeded, the line join falls back to BEVEL. |
VLJ::MITER_ROUND | Default to MITER , but switch to ROUND if the miter limit is exceeded. |
VLJ::MITER_SMART | An alternative form of MITER that extends beyond the intersection point, similarly to the miter-clip SVG rules. |
VLJ::ROUND | The join is rounded. |
Morph flags
Name | Description |
---|---|
VMF::AUTO_SPACING | Applicable when used on VectorText, auto-spacing allows the spacing between glyphs to be shrunk or expanded along the target path so that they can produce a better fit. The default is for the glyphs to conform to their original spacing requirements. |
VMF::STRETCH | Applicable when used on VectorText, the stretch option converts glyph outlines into paths, and then all end points and control points will be adjusted to be along the perpendicular vectors from the path, thereby stretching and possibly warping the glyphs. With this approach, connected glyphs, such as in cursive scripts, will maintain their connections. |
VMF::X_MAX | Align the source so that it is morphed along the right of the target path. |
VMF::X_MID | Align the source so that it is morphed along the middle of the target path. |
VMF::X_MIN | Align the source so that it is morphed along the left of the target path. |
VMF::Y_MAX | Align the source so that it is morphed along the bottom of the target path. |
VMF::Y_MID | Align the source so that it is morphed along the middle of the target path. |
VMF::Y_MIN | Align the source so that it is morphed along the top of the target path. |
Viewport overflow options.
Name | Description |
---|---|
VOF::HIDDEN | All content is clipped to within the viewport's boundary. |
VOF::INHERIT | The overflow state is inherited from the parent. |
VOF::SCROLL | All content is clipped to within the viewport's boundary. A mechanism to scroll the viewport's content may be provided to the user (SVG capability not currently implemented). |
VOF::VISIBLE | The content is not clipped to the viewport's boundary. This is the default. |
Optional flags for the VectorScene object.
Name | Description |
---|---|
VPF::BITMAP_SIZED | Automatically adjust the VectorScene.PageWidth and VectorScene.PageHeight to match the target Bitmap.Width and Bitmap.Height. |
VPF::OUTLINE_VIEWPORTS | Draw a green outline around all viewport paths. Extremely useful for debugging layout issues. |
VPF::RENDER_TIME | Compute the drawing frame-rate for the RenderTime field. |
VPF::RESIZE | The vector will be stretched to fit the VectorScene.PageWidth and VectorScene.PageHeight values, if defined by the client. |
Filter source types - these are used internally
Name | Description |
---|---|
VSF::ALPHA | As for GRAPHIC except that only the alpha channel is used. |
VSF::BKGD | An image snapshot of the SVG document under the filter region at the time that the filter element was invoked. |
VSF::BKGD_ALPHA | As for BKGD but only the alpha channel is used. |
VSF::FILL | The value of the fill property on the target element for the filter effect. |
VSF::GRAPHIC | Represents the graphics elements that were the original input into the filter element. |
VSF::IGNORE | The filter does not require an input source. |
VSF::PREVIOUS | Use the previous effect as input, or source graphic if no previous effect. |
VSF::REFERENCE | This value is an assigned name for the filter primitive in the form of a custom-ident. If supplied, then graphics that result from processing this filter primitive can be referenced by an in attribute on a subsequent filter primitive within the same filter element. If no value is provided, the output will only be available for re-use as the implicit input into the next filter primitive if that filter primitive provides no value for its in attribute. |
VSF::STROKE | The value of the stroke property on the target element for the filter effect. |
Name | Description |
---|---|
VSM::AUTO | The default option is chosen by the system. This will typically be BILINEAR , but slow machines may switch to nearest neighbour and high speed machines could use more advanced methods. |
VSM::BESSEL | |
VSM::BICUBIC | Produces a similar result to BILINEAR with a marginally sharper after-effect. |
VSM::BILINEAR | Bilinear is a common algorithm that produces a reasonable quality image quickly. |
VSM::BLACKMAN3 | Five times slower than BILINEAR , the final result will lack sharpness when compared to SINC3. |
VSM::BLACKMAN8 | 15 times slower than BILINEAR , the final result is of excellent quality and sharpness is well balanced. |
VSM::GAUSSIAN | |
VSM::KAISER | |
VSM::LANCZOS3 | This well known algorithm may serve as a point of comparison for evaluating the results of other methods. It shares characteristics with SINC and BLACKMAN . |
VSM::LANCZOS8 | |
VSM::MITCHELL | |
VSM::NEIGHBOUR | Nearest neighbour is the fastest sampler at the cost of poor quality. |
VSM::QUADRIC | |
VSM::SINC3 | Five times slower than BILINEAR , the final result is of very good quality. |
VSM::SINC8 | 15 times slower than BILINEAR , the final result is of excellent quality but may be marginally over-sharpened. |
VSM::SPLINE16 | About half the speed of BILINEAR , this method produces a considerably better result. |
Spread method options define the method to use for tiling filled graphics.
Name | Description |
---|---|
VSPREAD::CLIP | Do not scale the graphic. Clip it if it extends past imposed boundaries. |
VSPREAD::PAD | Scale the graphic to the object bounds. |
VSPREAD::REFLECT | Tile the graphic, reflecting the image alternately on the X and Y axis. |
VSPREAD::REFLECT_X | Tile the graphic, reflecting the image alternately on the X axis only. |
VSPREAD::REFLECT_Y | Tile the graphic, reflecting the image alternately on the Y axis only. |
VSPREAD::REPEAT | Tile the graphic repeatedly. |
VSPREAD::UNDEFINED | Either the default setting will be applied or the setting will be inherited from a parent object. |
Options for stretching text in VectorText.
Name | Description |
---|---|
VTS::CONDENSED | |
VTS::EXPANDED | |
VTS::EXTRA_CONDENSED | |
VTS::EXTRA_EXPANDED | |
VTS::INHERIT | |
VTS::NARROWER | |
VTS::NORMAL | |
VTS::SEMI_CONDENSED | |
VTS::SEMI_EXPANDED | |
VTS::ULTRA_CONDENSED | |
VTS::ULTRA_EXPANDED | |
VTS::WIDER |
VectorText flags.
Name | Description |
---|---|
VTXF::AREA_SELECTED | Automatically set if a region of text has been selected. |
VTXF::BLINK | Enable animated blinking (not supported - exists as SVG dummy option). |
VTXF::EDIT | Allow user editing of the text if the nearest viewport has the focus. |
VTXF::EDITABLE | Allow user editing of the text if the nearest viewport has the focus. |
VTXF::LINE_THROUGH | Enable a strike-through line in the text. |
VTXF::NO_SYS_KEYS | Disables support for system-keys that enable common key combinations such as Ctrl-C, Ctrl-X etc. |
VTXF::OVERLINE | Enable overlining of the text. |
VTXF::OVERWRITE | Turns on overwrite mode (if off, insert mode is enabled). |
VTXF::RASTER | Rasterise glyphs to a texture cache for very fast rendering. This feature is not compatible with scalable graphics conventions. |
VTXF::SECRET | Hide all characters from the UI by using generic symbols in place of glyphs. |
VTXF::UNDERLINE | Enable underlining of the text. |
Name | Description |
---|---|
VUNIT::BOUNDING_BOX | Coordinates are scaled to the object's bounding box. |
VUNIT::UNDEFINED | Either the default setting will be applied or the setting will be inherited from a parent object. |
VUNIT::USERSPACE | Coordinates are scaled to the current viewport. |
Wave options.
Name | Description |
---|---|
WVC::BOTTOM | Close the path across the bottom of its area. |
WVC::NONE | Do not close the path. |
WVC::TOP | Close the path across the top of its area. |
Wave style options.
Name | Description |
---|---|
WVS::ANGLED | Chevron style angles at 45 degrees either side of the peak and bottom edge. |
WVS::CURVED | Standard sine-wave curvature, this is the default. |
WVS::SAWTOOTH | Sawtooth patterns rise at 45 degrees to the peak, then direct 90 degrees to the bottom. |
Font metrics, measured in pixels relative to the display
Field | Type | Description |
---|---|---|
Height | LONG | Capitalised font height |
LineSpacing | LONG | Vertical advance from one line to the next |
Ascent | LONG | Height from the baseline to the top of the font, including accents. |
Descent | LONG | Height from the baseline to the bottom of the font |
Describes a colour stop for the VectorGradient Stops field.
Field | Type | Description |
---|---|---|
Offset | DOUBLE | An offset in the range of 0 - 1.0 |
RGB | struct FRGB | A floating point RGB value. |
Input source declaration for MergeFX
Field | Type | Description |
---|---|---|
SourceType | VSF | The type of the required source. |
Effect | objFilterEffect * | Effect pointer if the SourceType is REFERENCE . |
Base structure for path commands.
Field | Type | Description |
---|---|---|
Type | PE | The command type |
LargeArc | UBYTE | Equivalent to the large-arc-flag in SVG, it ensures that the arc follows the longest drawing path when TRUE . |
Sweep | UBYTE | Equivalent to the sweep-flag in SVG, it inverts the default behaviour in generating arc paths. |
Pad1 | UBYTE | Private |
X | DOUBLE | The targeted X coordinate (absolute or scaled) for the command |
Y | DOUBLE | The targeted Y coordinate (absolute or scaled) for the command |
AbsX | DOUBLE | Private |
AbsY | DOUBLE | Private |
X2 | DOUBLE | The X2 coordinate for curve commands, or RX for arcs |
Y2 | DOUBLE | The Y2 coordinate for curve commands, or RY for arcs |
X3 | DOUBLE | The X3 coordinate for curve-to or smooth-curve-to |
Y3 | DOUBLE | The Y3 coordinate for curve-to or smooth-curve-to |
Angle | DOUBLE | Arc angle |
For VectorTransition definitions
Field | Type | Description |
---|---|---|
Offset | DOUBLE | An offset from 0.0 to 1.0 at which to apply the transform. |
Transform | CSTRING | A transform string, as per SVG guidelines. |
Vector transformation matrix.
Field | Type | Description |
---|---|---|
Next | struct VectorMatrix * | The next transform in the list. |
Vector | objVector * | The vector associated with the transform. |
ScaleX | DOUBLE | Matrix value A |
ShearY | DOUBLE | Matrix value B |
ShearX | DOUBLE | Matrix value C |
ScaleY | DOUBLE | Matrix value D |
TranslateX | DOUBLE | Matrix value E |
TranslateY | DOUBLE | Matrix value F |
Tag | LONG | An optional tag value defined by the client for matrix identification. |
Deserialised painter information; compliant with SVG painter definitions.
Field | Type | Description |
---|---|---|
Pattern | objVectorPattern * | A VectorPattern object, suitable for pattern based fills. |
Image | objVectorImage * | A VectorImage object, suitable for image fills. |
Gradient | objVectorGradient * | A VectorGradient object, suitable for gradient fills. |
Colour | struct FRGB | A single RGB colour definition, suitable for block colour fills. |
Structure for the VectorPolygon PointsArray field.
Field | Type | Description |
---|---|---|
X | DOUBLE | The X coordinate of this point. |
Y | DOUBLE | The Y coordinate of this point. |
XScaled | UBYTE | TRUE if the X value is scaled to its viewport (between 0 and 1.0). |
YScaled | UBYTE | TRUE if the Y value is scaled to its viewport (between 0 and 1.0). |