BLContext Class Reference

Rendering context [C++ API].

Member Functions

Construction & Destruction
Overloaded Operators
Target Information
Context Lifetime and Others
Properties
State Management
Transformations
Rendering Hints
Approximation Options
Composition Options
Style Options
Fill Style & Options
Stroke Style & Options
Clip Operations
Clear Geometry Operations
Fill Geometry Operations
Fill Text & Glyphs Operations
Fill Mask Operations
Stroke Geometry Operations
Stroke Text & Glyphs Operations
Image Blit Operations
- Public Member Functions inherited from BLContextCore

Additional Inherited Members

- Public Attributes inherited from BLObjectCore

Constructor & Destructor Documentation

BLContext::BLContext()[1/6]◆ 

Creates a default constructed rendering context.

Default constructed means that the instance is valid, but uninitialized, which means the rendering context does not have attached any target. Any attempt to use uninitialized context results in BL_ERROR_NOT_INITIALIZED error.

BLContext::BLContext(BLContext&& other)[2/6]◆ 

Move constructor.

Moves the other rendering context into this one and resets the other.

BLContext::BLContext(const BLContext& other)[3/6]◆ 

Copy constructor.

Creates a weak-copy of the other rendering context by increasing it's internal reference counter. This context and other would point to the same data and would be otherwise identical. Any change to other would also affect this context.

This function is mostly provided for C++ users that may keep a global reference to the same rendering context, for example, otherwise sharing is not that useful as they also share a state.

Two weak copies of the same rendering context cannot be used by different threads simultaneously.

BLContext::BLContext(BLImageCore& target)explicit[4/6]◆ 

Creates a new rendering context for rendering to the image target.

BLContext::BLContext(BLImageCore& target, const BLContextCreateInfo& createInfo)[5/6]◆ 

Creates a new rendering context for rendering to the image target.

This overload accepts create options that can be used to change the implementation of the rendering context.

BLContext::BLContext(BLImageCore& target, const BLContextCreateInfo* createInfo)[6/6]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLContext::~BLContext()◆ 

Destroys the rendering context.

Waits for all operations, detaches the target from the rendering context and then destroys it. Does nothing if the context is not initialized.

Member Function Documentation

BLContext::operator bool() constexplicit◆ 

Returns true if the rendering context is initialized (has target attached).

Provided for users that want to use bool idiom in C++ to check for the status of the object.

if (ctx) {
// Rendering context is initialized.
}

bool BLContext::operator==(const BLContext& other) const◆ 

Returns whether this and other point to the same rendering context.

bool BLContext::operator!=(const BLContext& other) const◆ 

Returns whether this and other are different rendering contexts.

BLSize BLContext::targetSize() const◆ 

Returns the target size in abstract units (pixels in case of BLImage).

double BLContext::targetWidth() const◆ 

Returns the target width in abstract units (pixels in case of BLImage).

double BLContext::targetHeight() const◆ 

Returns the target height in abstract units (pixels in case of BLImage).

BLImage* BLContext::targetImage() const◆ 

Returns the target image or null if there is no target image.

Note
The rendering context doesn't own the image, but it increases its writer count, which means that the image will not be destroyed even when user destroys it during the rendering (in such case it will be destroyed after the rendering ends when the writer count goes to zero). This means that the rendering context must hold the image and not the pointer to the BLImage passed to either the constructor or begin() function. So the returned pointer is not the same as the pointer passed to begin(), but it points to the same impl.

BLContextType BLContext::contextType() const◆ 

Returns the type of this context, see BLContextType.

bool BLContext::isValid() const◆ 

Tests whether the context is a valid rendering context that has attached target to it.

bool BLContext::equals(const BLContext& other) const◆ 

Returns whether this and other point to the same rendering context.

BLResult BLContext::reset()◆ 

Resets this rendering context to the default constructed one.

Similar behavior to the destructor, but the rendering context will still be a valid object after the call to reset() and would behave like a default constructed context.

BLResult BLContext::begin(BLImageCore& image)[1/3]◆ 

Begins rendering to the given image.

If this operation succeeds then the rendering context will have exclusive access to the image data. This means that no other renderer can use it during rendering.

BLResult BLContext::begin(BLImageCore& image, const BLContextCreateInfo& createInfo)[2/3]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::begin(BLImageCore& image, const BLContextCreateInfo* createInfo)[3/3]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::end()◆ 

Waits for completion of all render commands and detaches the rendering context from the rendering target. After end() completes the rendering context implementation would be released and replaced by a built-in null instance (no context).

BLResult BLContext::flush(BLContextFlushFlags flags)◆ 

Flushes the context, see BLContextFlushFlags.

BLResult BLContext::getProperty(const char* name, BLVarCore& valueOut) const[1/2]◆ 

Gets a property of the given name and assigns it to an initialized valueOut.

BLResult BLContext::getProperty(BLStringView name, BLVarCore& valueOut) const[2/2]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::setProperty(const char* name, const BLObjectCore& value)[1/2]◆ 

Sets a property of the given name to value.

BLResult BLContext::setProperty(BLStringView name, const BLObjectCore& value)[2/2]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

uint32_t BLContext::threadCount() const◆ 

Queries the number of threads that the rendering context uses.

If the returned value is zero it means that the rendering is synchronous, otherwise it describes the number of threads used for asynchronous rendering which include the user thread. For example if the returned value is 2 it means that the rendering context uses the user thread and one more worker.

BLContextErrorFlags BLContext::accumulatedErrorFlags() const◆ 

Queries accumulated errors as flags, see BLContextErrorFlags.

Errors may accumulate during the lifetime of the rendering context.

uint32_t BLContext::savedStateCount() const◆ 

Returns the number of saved states in the context (0 means no saved states).

BLResult BLContext::save()[1/2]◆ 

Saves the current rendering context state.

Blend2D uses optimizations that make save() a cheap operation. Only core values are actually saved in save(), others will only be saved if they are modified. This means that consecutive calls to save() and restore() do almost nothing.

BLResult BLContext::save(BLContextCookie& cookie)[2/2]◆ 

Saves the current rendering context state and creates a restoration cookie.

If you use a cookie to save a state you have to use the same cookie to restore it otherwise the restore() would fail. Please note that cookies are not a means of security, they are provided for making it easier to guarantee that a code that you may not control won't break your context.

BLResult BLContext::restore()[1/2]◆ 

Restores the top-most saved context-state.

Possible return conditions:

  • BL_SUCCESS - State was restored successfully.
  • BL_ERROR_NO_STATES_TO_RESTORE - There are no saved states to restore.
  • BL_ERROR_NO_MATCHING_COOKIE - Previous state was saved with cookie, which was not provided. You would need the correct cookie to restore such state.

BLResult BLContext::restore(const BLContextCookie& cookie)[2/2]◆ 

Restores to the point that matches the given cookie.

More than one state can be restored in case that the cookie points to some previous state in the list.

Possible return conditions:

  • BL_SUCCESS - Matching state was restored successfully.
  • BL_ERROR_NO_STATES_TO_RESTORE - There are no saved states to restore.
  • BL_ERROR_NO_MATCHING_COOKIE - The cookie did't match any saved state.

const BLMatrix2D& BLContext::metaTransform() const◆ 

Returns meta transformation matrix.

Meta matrix is a core transformation matrix that is normally not changed by transformations applied to the context. Instead it acts as a secondary matrix used to create the final transformation matrix from meta and user matrices.

Meta matrix can be used to scale the whole context for HI-DPI rendering or to change the orientation of the image being rendered, however, the number of use-cases is unlimited.

To change the meta-matrix you must first change user-matrix and then call userToMeta(), which would update meta-matrix and clear user-matrix.

See userTransform() and userToMeta().

const BLMatrix2D& BLContext::userTransform() const◆ 

Returns user transformation matrix.

User matrix contains all transformations that happened to the rendering context unless the context was restored or userToMeta() was called.

const BLMatrix2D& BLContext::finalTransform() const◆ 

Returns final transformation matrix.

Final transformation matrix is a combination of meta and user transformation matrices. It's the final transformation that the rendering context applies to all input coordinates.

BLResult BLContext::setTransform(const BLMatrix2D& transform)◆ 

Sets user transformation matrix to m.

BLResult BLContext::resetTransform()◆ 

Resets user transformation matrix to identity.

BLResult BLContext::userToMeta()◆ 

Store the result of combining the current MetaTransform and UserTransform to MetaTransform and reset UserTransform to identity as shown below:

MetaTransform = MetaTransform x UserTransform
UserTransform = Identity

Please note that this operation is irreversible. The only way to restore both matrices to the state before the call to BLContext::userToMeta() is to use BLContext::save() and BLContext::restore() functions.

const BLContextHints& BLContext::hints() const◆ 

Returns rendering hints.

BLResult BLContext::setHint(BLContextHint hintType, uint32_t value)◆ 

Sets the given rendering hint hintType to the value.

BLResult BLContext::setHints(const BLContextHints& hints)◆ 

Sets all rendering hints of this context to the given hints.

BLRenderingQuality BLContext::renderingQuality() const◆ 

Returns the rendering quality hint.

BLResult BLContext::setRenderingQuality(BLRenderingQuality value)◆ 

Sets rendering quality hint to value.

BLGradientQuality BLContext::gradientQuality() const◆ 

Returns the gradient quality hint.

BLResult BLContext::setGradientQuality(BLGradientQuality value)◆ 

Sets gradient quality hint to value.

BLPatternQuality BLContext::patternQuality() const◆ 

Returns the pattern quality hint.

BLResult BLContext::setPatternQuality(BLPatternQuality value)◆ 

Sets pattern quality hint to value.

const BLApproximationOptions& BLContext::approximationOptions() const◆ 

Returns approximation options.

BLResult BLContext::setApproximationOptions(const BLApproximationOptions& options)◆ 

Sets approximation options to options.

BLFlattenMode BLContext::flattenMode() const◆ 

Returns flatten mode (how curves are flattened).

BLResult BLContext::setFlattenMode(BLFlattenMode mode)◆ 

Sets flatten mode (how curves are flattened).

double BLContext::flattenTolerance() const◆ 

Returns tolerance used for curve flattening.

BLResult BLContext::setFlattenTolerance(double tolerance)◆ 

Sets tolerance used for curve flattening.

BLCompOp BLContext::compOp() const◆ 

Returns composition operator.

BLResult BLContext::setCompOp(BLCompOp compOp)◆ 

Sets composition operator to compOp, see BLCompOp.

double BLContext::globalAlpha() const◆ 

Returns global alpha value.

BLResult BLContext::setGlobalAlpha(double alpha)◆ 

Sets global alpha value.

BLObjectType BLContext::styleType(BLContextStyleSlot slot) const◆ 

Returns the current style type associated with the given style slot.

BLResult BLContext::getStyle(BLContextStyleSlot slot, BLVarCore& styleOut) const◆ 

Reads a style state associated with the given style slot and writes it into styleOut.

Note
This function returns the original style passed to the rendering context with its original transformation matrix if it's not a solid color. Consider using getTransformedStyle() if you want to get a style with the transformation matrix that the rendering context actually uses to render it.

BLResult BLContext::getTransformedStyle(BLContextStyleSlot slot, BLVarCore& styleOut) const◆ 

Reads a style state associated with the given style slot and writes it into styleOut.

The retrieved style uses a transformation matrix that is a combination of style transformation matrix and the rendering context matrix at a time setStyle() was called).

template<typename StyleT>
BLResult BLContext::setStyle(BLContextStyleSlot slot, const StyleT& style)[1/2]◆ 

Sets style to be used with the given style slot operation.

Note
The style argument could be BLRgba, BLRgba32, BLRgba64, BLGradient, BLPattern, and BLVar.

template<typename StyleT>
BLResult BLContext::setStyle(BLContextStyleSlot slot, const StyleT& style, BLContextStyleTransformMode transformMode)[2/2]◆ 

Sets style to be used with the given style slot operation and applied transformMode.

This is a convenience function that allows to control how the given style is transformed. By default, if transformMode is not provided, the rendering context combines the style transformation matrix with user transformation matrix, which is compatible with how it transforms geometry. However, if that' undesired, a transformMode can override the default operation.

Note
The style argument could be BLGradient, BLPattern, and BLVar.

BLResult BLContext::disableStyle(BLContextStyleSlot slot)◆ 

Sets the given style slot to NULL, which disables it.

Styles set to NULL would reject all rendering operations that would otherwise use that style.

double BLContext::styleAlpha(BLContextStyleSlot slot) const◆ 

Returns fill or alpha value associated with the given style slot.

The function behaves like fillAlpha() or strokeAlpha() depending on style slot, see BLContextStyleSlot.

BLResult BLContext::setStyleAlpha(BLContextStyleSlot slot, double alpha)◆ 

Set fill or stroke alpha value associated with the given style slot.

The function behaves like setFillAlpha() or setStrokeAlpha() depending on style slot, see BLContextStyleSlot.

BLResult BLContext::swapStyles(BLContextStyleSwapMode mode)◆ 

Swaps fill and stroke styles, see BLContextStyleSwapMode for options.

BLObjectType BLContext::fillStyleType() const◆ 

Returns the current fill style type.

BLResult BLContext::getFillStyle(BLVarCore& out) const◆ 

Reads a fill style state and writes it into styleOut variant.

Note
This function returns the original style passed to the rendering context with its original transformation matrix if it's not a solid color. Consider using getTransformedFillStyle() if you want to get a fill style with the transformation matrix that the rendering context actually uses to render it.

BLResult BLContext::getTransformedFillStyle(BLVarCore& out) const◆ 

Reads a fill style state and writes it into styleOut variant.

template<typename StyleT>
BLResult BLContext::setFillStyle(const StyleT& style)[1/2]◆ 

Sets fill style.

Note
The style argument could be BLRgba, BLRgba32, BLRgba64, BLGradient, BLPattern, and BLVar.

template<typename StyleT>
BLResult BLContext::setFillStyle(const StyleT& style, BLContextStyleTransformMode transformMode)[2/2]◆ 

Sets fill style to style.

Note
The style argument could be BLGradient, BLPattern, and BLVar.

BLResult BLContext::disableFillStyle()◆ 

Sets fill style to NULL, which disables it.

double BLContext::fillAlpha() const◆ 

Returns fill alpha value.

BLResult BLContext::setFillAlpha(double alpha)◆ 

Sets fill alpha value.

BLFillRule BLContext::fillRule() const◆ 

Returns fill-rule, see BLFillRule.

BLResult BLContext::setFillRule(BLFillRule fillRule)◆ 

Sets fill-rule, see BLFillRule.

BLObjectType BLContext::strokeStyleType() const◆ 

Returns the current stroke style type.

BLResult BLContext::getStrokeStyle(BLVarCore& out) const◆ 

Reads a stroke style state and writes it into styleOut variant.

Note
This function returns the original style passed to the rendering context with its original transformation matrix if it's not a solid color. Consider using getTransformedStrokeStyle() if you want to get a stroke style with the transformation matrix that the rendering context actually uses to render it.

BLResult BLContext::getTransformedStrokeStyle(BLVarCore& out) const◆ 

Reads a stroke style state and writes it into styleOut variant.

template<typename StyleT>
BLResult BLContext::setStrokeStyle(const StyleT& style)[1/2]◆ 

Sets stroke style.

Note
The style argument could be BLRgba, BLRgba32, BLRgba64, BLGradient, BLPattern, and BLVar.

template<typename StyleT>
BLResult BLContext::setStrokeStyle(const StyleT& style, BLContextStyleTransformMode transformMode)[2/2]◆ 

Sets fill style to style.

Note
The style argument could be BLGradient, BLPattern, and BLVar.

BLResult BLContext::disableStrokeStyle()◆ 

Sets stroke style to NULL, which disables it.

double BLContext::strokeWidth() const◆ 

Returns stroke width.

double BLContext::strokeMiterLimit() const◆ 

Returns stroke miter-limit.

BLStrokeJoin BLContext::strokeJoin() const◆ 

Returns stroke join, see BLStrokeJoin.

BLStrokeCap BLContext::strokeStartCap() const◆ 

Returns stroke start-cap, see BLStrokeCap.

BLStrokeCap BLContext::strokeEndCap() const◆ 

Returns stroke end-cap, see BLStrokeCap.

BLStrokeTransformOrder BLContext::strokeTransformOrder() const◆ 

Returns stroke transform order, see BLStrokeTransformOrder.

double BLContext::strokeDashOffset() const◆ 

Returns stroke dash-offset.

const BLArray<double>& BLContext::strokeDashArray() const◆ 

Returns stroke dash-array.

const BLStrokeOptions& BLContext::strokeOptions() const◆ 

Returns stroke options as a reference to BLStrokeOptions.

BLResult BLContext::setStrokeWidth(double width)◆ 

Sets stroke width to width.

BLResult BLContext::setStrokeMiterLimit(double miterLimit)◆ 

Sets miter limit to miterLimit.

BLResult BLContext::setStrokeJoin(BLStrokeJoin strokeJoin)◆ 

Sets stroke join to strokeJoin, see BLStrokeJoin.

BLResult BLContext::setStrokeCap(BLStrokeCapPosition position, BLStrokeCap strokeCap)◆ 

Sets stroke cap of the specified type to strokeCap, see BLStrokeCap.

BLResult BLContext::setStrokeStartCap(BLStrokeCap strokeCap)◆ 

Sets stroke start cap to strokeCap, see BLStrokeCap.

BLResult BLContext::setStrokeEndCap(BLStrokeCap strokeCap)◆ 

Sets stroke end cap to strokeCap, see BLStrokeCap.

BLResult BLContext::setStrokeCaps(BLStrokeCap strokeCap)◆ 

Sets all stroke caps to strokeCap, see BLStrokeCap.

BLResult BLContext::setStrokeTransformOrder(BLStrokeTransformOrder transformOrder)◆ 

Sets stroke transformation order to transformOrder, see BLStrokeTransformOrder.

BLResult BLContext::setStrokeDashOffset(double dashOffset)◆ 

Sets stroke dash-offset to dashOffset.

BLResult BLContext::setStrokeDashArray(const BLArray<double>& dashArray)◆ 

Sets stroke dash-array to dashArray.

BLResult BLContext::setStrokeOptions(const BLStrokeOptions& options)◆ 

Sets all stroke options.

double BLContext::strokeAlpha() const◆ 

Returns stroke alpha value.

BLResult BLContext::setStrokeAlpha(double alpha)◆ 

Sets stroke alpha value to alpha.

BLResult BLContext::restoreClipping()◆ 

Restores clipping to the last saved state or to the context default clipping if there is no saved state.

If there are no saved states then it resets clipping completely to the initial state that was used when the rendering context was created.

BLResult BLContext::clearAll()◆ 

Clear everything.

BLResult BLContext::clearRect(const BLRectI& rect)[1/3]◆ 

Clears a rectangle rect.

BLResult BLContext::clearRect(const BLRect& rect)[2/3]◆ 

Clears a rectangle rect.

BLResult BLContext::clearRect(double x, double y, double w, double h)[3/3]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillAll()[1/2]◆ 

Fills everything.

template<typename StyleT>
BLResult BLContext::fillAll(const StyleT& style)[2/2]◆ 

Fills everything with an explicit style.

BLResult BLContext::fillBox(const BLBox& box)[1/6]◆ 

Fills a box (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillBox(const BLBox& box, const StyleT& style)[2/6]◆ 

Fills a box (floating point coordinates) with an explicit style.

BLResult BLContext::fillBox(const BLBoxI& box)[3/6]◆ 

Fills a box (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillBox(const BLBoxI& box, const StyleT& style)[4/6]◆ 

Fills a box (integer coordinates) with an explicit style.

BLResult BLContext::fillBox(double x0, double y0, double x1, double y1)[5/6]◆ 

Fills a box (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillBox(double x0, double y0, double x1, double y1, const StyleT& style)[6/6]◆ 

Fills a box (floating point coordinates) with an explicit style.

BLResult BLContext::fillRect(const BLRectI& rect)[1/6]◆ 

Fills a rectangle rect (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillRect(const BLRectI& rect, const StyleT& style)[2/6]◆ 

Fills a rectangle rect (integer coordinates) with an explicit style.

BLResult BLContext::fillRect(const BLRect& rect)[3/6]◆ 

Fills a rectangle rect (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillRect(const BLRect& rect, const StyleT& style)[4/6]◆ 

Fills a rectangle rect (floating point coordinates) with an explicit style.

BLResult BLContext::fillRect(double x, double y, double w, double h)[5/6]◆ 

Fills a rectangle [x, y, w, h] (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillRect(double x, double y, double w, double h, const StyleT& style)[6/6]◆ 

Fills a rectangle [x, y, w, h] (floating point coordinates) with an explicit style.

BLResult BLContext::fillCircle(const BLCircle& circle)[1/4]◆ 

Fills a circle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillCircle(const BLCircle& circle, const StyleT& style)[2/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillCircle(double cx, double cy, double r)[3/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillCircle(double cx, double cy, double r, const StyleT& style)[4/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillEllipse(const BLEllipse& ellipse)[1/4]◆ 

Fills an ellipse (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillEllipse(const BLEllipse& ellipse, const StyleT& style)[2/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillEllipse(double cx, double cy, double rx, double ry)[3/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillEllipse(double cx, double cy, double rx, double ry, const StyleT& style)[4/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillRoundRect(const BLRoundRect& rr)[1/8]◆ 

Fills a rounded rectangle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillRoundRect(const BLRoundRect& rr, const StyleT& style)[2/8]◆ 

Fills a rounded rectangle (floating point coordinates) with an explicit style.

BLResult BLContext::fillRoundRect(const BLRect& rect, double r)[3/8]◆ 

Fills a rounded rectangle passed as rect with radius r.

BLResult BLContext::fillRoundRect(const BLRect& rect, double rx, double ry)[4/8]◆ 

Fills a rounded rectangle passed as rect with radius [rx, ry].

template<typename StyleT>
BLResult BLContext::fillRoundRect(const BLRect& rect, double rx, double ry, const StyleT& style)[5/8]◆ 

Fills a rounded rectangle passed as rect with radius [rx, ry] with an explicit style.

BLResult BLContext::fillRoundRect(double x, double y, double w, double h, double r)[6/8]◆ 

Fills a rounded rectangle passed as [x, y, w, h] with radius r.

BLResult BLContext::fillRoundRect(double x, double y, double w, double h, double rx, double ry)[7/8]◆ 

Fills a rounded rectangle passed as [x, y, w, h] with radius [rx, ry].

template<typename StyleT>
BLResult BLContext::fillRoundRect(double x, double y, double w, double h, double rx, double ry, const StyleT& style)[8/8]◆ 

Fills a rounded rectangle passed as [x, y, w, h] with radius [rx, ry] with an explicit style.

BLResult BLContext::fillChord(const BLArc& chord)[1/5]◆ 

Fills a chord (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillChord(const BLArc& chord, const StyleT& style)[2/5]◆ 

Fills a chord (floating point coordinates) with an explicit style.

BLResult BLContext::fillChord(double cx, double cy, double r, double start, double sweep)[3/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillChord(double cx, double cy, double rx, double ry, double start, double sweep)[4/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillChord(double cx, double cy, double rx, double ry, double start, double sweep, const StyleT& style)[5/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillPie(const BLArc& pie)[1/5]◆ 

Fills a pie (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillPie(const BLArc& pie, const StyleT& style)[2/5]◆ 

Fills a pie (floating point coordinates) with an explicit style.

BLResult BLContext::fillPie(double cx, double cy, double r, double start, double sweep)[3/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillPie(double cx, double cy, double rx, double ry, double start, double sweep)[4/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillPie(double cx, double cy, double rx, double ry, double start, double sweep, const StyleT& style)[5/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillTriangle(const BLTriangle& triangle)[1/4]◆ 

Fills a triangle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillTriangle(const BLTriangle& triangle, const StyleT& style)[2/4]◆ 

Fills a triangle (floating point coordinates) with an explicit style.

BLResult BLContext::fillTriangle(double x0, double y0, double x1, double y1, double x2, double y2)[3/4]◆ 

Fills a triangle passed as [x0, y0], [x1, y1], [x2, y2].

template<typename StyleT>
BLResult BLContext::fillTriangle(double x0, double y0, double x1, double y1, double x2, double y2, const StyleT& style)[4/4]◆ 

Fills a triangle passed as [x0, y0], [x1, y1], [x2, y2] with an explicit style.

BLResult BLContext::fillPolygon(const BLArrayView<BLPoint>& poly)[1/8]◆ 

Fills a polygon (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillPolygon(const BLArrayView<BLPoint>& poly, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillPolygon(const BLPoint* poly, size_t n)[3/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillPolygon(const BLPoint* poly, size_t n, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillPolygon(const BLArrayView<BLPointI>& poly)[5/8]◆ 

Fills a polygon (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillPolygon(const BLArrayView<BLPointI>& poly, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillPolygon(const BLPointI* poly, size_t n)[7/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillPolygon(const BLPointI* poly, size_t n, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillBoxArray(const BLArrayView<BLBox>& array)[1/8]◆ 

Fills an array of boxes (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillBoxArray(const BLArrayView<BLBox>& array, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillBoxArray(const BLBox* data, size_t n)[3/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillBoxArray(const BLBox* data, size_t n, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillBoxArray(const BLArrayView<BLBoxI>& array)[5/8]◆ 

Fills an array of boxes (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillBoxArray(const BLArrayView<BLBoxI>& array, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillBoxArray(const BLBoxI* data, size_t n)[7/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillBoxArray(const BLBoxI* data, size_t n, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillRectArray(const BLArrayView<BLRect>& array)[1/8]◆ 

Fills an array of rectangles (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillRectArray(const BLArrayView<BLRect>& array, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillRectArray(const BLRect* data, size_t n)[3/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillRectArray(const BLRect* data, size_t n, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillRectArray(const BLArrayView<BLRectI>& array)[5/8]◆ 

Fills an array of rectangles (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillRectArray(const BLArrayView<BLRectI>& array, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillRectArray(const BLRectI* data, size_t n)[7/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::fillRectArray(const BLRectI* data, size_t n, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillPath(const BLPathCore& path)[1/4]◆ 

Fills the given path.

template<typename StyleT>
BLResult BLContext::fillPath(const BLPathCore& path, const StyleT& style)[2/4]◆ 

Fills the given path with an explicit style.

BLResult BLContext::fillPath(const BLPoint& origin, const BLPathCore& path)[3/4]◆ 

Fills the given path translated by origin.

template<typename StyleT>
BLResult BLContext::fillPath(const BLPoint& origin, const BLPathCore& path, const StyleT& style)[4/4]◆ 

Fills the given path translated by origin with an explicit style.

BLResult BLContext::fillGeometry(BLGeometryType type, const void* data)[1/2]◆ 

Fills the passed geometry specified by geometry type and data.

Note
This function provides a low-level interface that can be used in cases that geometry type and data parameters are passed to a wrapper function that just passes them to the rendering context. It's a good way of creating wrappers.

template<typename StyleT>
BLResult BLContext::fillGeometry(BLGeometryType type, const void* data, const StyleT& style)[2/2]◆ 

Fills the passed geometry specified by geometry type and data with an explicit style.

BLResult BLContext::fillUtf8Text(const BLPointI& origin, const BLFontCore& font, const char* text, size_t size = SIZE_MAX)[1/8]◆ 

Fills UTF-8 encoded string passed as text and size by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillUtf8Text(const BLPointI& origin, const BLFontCore& font, const char* text, size_t size, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillUtf8Text(const BLPointI& origin, const BLFontCore& font, const BLStringView& view)[3/8]◆ 

Fills UTF-8 encoded string passed as string view by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillUtf8Text(const BLPointI& origin, const BLFontCore& font, const BLStringView& view, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillUtf8Text(const BLPoint& origin, const BLFontCore& font, const char* text, size_t size = SIZE_MAX)[5/8]◆ 

Fills UTF-8 encoded string passed as text and size by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillUtf8Text(const BLPoint& origin, const BLFontCore& font, const char* text, size_t size, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillUtf8Text(const BLPoint& origin, const BLFontCore& font, const BLStringView& view)[7/8]◆ 

Fills UTF-8 encoded string passed as string view by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillUtf8Text(const BLPoint& origin, const BLFontCore& font, const BLStringView& view, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillUtf16Text(const BLPointI& origin, const BLFontCore& font, const uint16_t* text, size_t size = SIZE_MAX)[1/4]◆ 

Fills UTF-16 encoded string passed as text and size by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillUtf16Text(const BLPointI& origin, const BLFontCore& font, const uint16_t* text, size_t size, const StyleT& style)[2/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillUtf16Text(const BLPoint& origin, const BLFontCore& font, const uint16_t* text, size_t size = SIZE_MAX)[3/4]◆ 

Fills UTF-16 encoded string passed as text and size by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillUtf16Text(const BLPoint& origin, const BLFontCore& font, const uint16_t* text, size_t size, const StyleT& style)[4/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillUtf32Text(const BLPointI& origin, const BLFontCore& font, const uint32_t* text, size_t size = SIZE_MAX)[1/4]◆ 

Fills UTF-32 encoded string passed as text and size by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillUtf32Text(const BLPointI& origin, const BLFontCore& font, const uint32_t* text, size_t size, const StyleT& style)[2/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillUtf32Text(const BLPoint& origin, const BLFontCore& font, const uint32_t* text, size_t size = SIZE_MAX)[3/4]◆ 

Fills UTF-32 encoded string passed as text and size by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillUtf32Text(const BLPoint& origin, const BLFontCore& font, const uint32_t* text, size_t size, const StyleT& style)[4/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillGlyphRun(const BLPointI& origin, const BLFontCore& font, const BLGlyphRun& glyphRun)[1/4]◆ 

Fills the passed glyphRun by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::fillGlyphRun(const BLPointI& origin, const BLFontCore& font, const BLGlyphRun& glyphRun, const StyleT& style)[2/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillGlyphRun(const BLPoint& origin, const BLFontCore& font, const BLGlyphRun& glyphRun)[3/4]◆ 

Fills the passed glyphRun by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillGlyphRun(const BLPoint& origin, const BLFontCore& font, const BLGlyphRun& glyphRun, const StyleT& style)[4/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillMask(const BLPointI& origin, const BLImage& mask)[1/8]◆ 

Fills a source mask image at coordinates specified by origin (int coordinates).

template<typename StyleT>
BLResult BLContext::fillMask(const BLPointI& origin, const BLImage& mask, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillMask(const BLPointI& origin, const BLImage& mask, const BLRectI& maskArea)[3/8]◆ 

Fills a source mask image specified by maskArea at coordinates specified by origin (int coordinates).

template<typename StyleT>
BLResult BLContext::fillMask(const BLPointI& origin, const BLImage& mask, const BLRectI& maskArea, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillMask(const BLPoint& origin, const BLImage& mask)[5/8]◆ 

Fills a source mask image at coordinates specified by origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillMask(const BLPoint& origin, const BLImage& mask, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::fillMask(const BLPoint& origin, const BLImage& mask, const BLRectI& maskArea)[7/8]◆ 

Fills a source mask image specified by maskArea at coordinates specified by origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::fillMask(const BLPoint& origin, const BLImage& mask, const BLRectI& maskArea, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeBox(const BLBox& box)[1/6]◆ 

Strokes a box (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeBox(const BLBox& box, const StyleT& style)[2/6]◆ 

Strokes a box (floating point coordinates) with an explicit style.

BLResult BLContext::strokeBox(const BLBoxI& box)[3/6]◆ 

Strokes a box (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeBox(const BLBoxI& box, const StyleT& style)[4/6]◆ 

Strokes a box (integer coordinates) with an explicit style.

BLResult BLContext::strokeBox(double x0, double y0, double x1, double y1)[5/6]◆ 

Strokes a box (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeBox(double x0, double y0, double x1, double y1, const StyleT& style)[6/6]◆ 

Strokes a box (floating point coordinates) with an explicit style.

BLResult BLContext::strokeRect(const BLRect& rect)[1/6]◆ 

Strokes a rectangle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeRect(const BLRect& rect, const StyleT& style)[2/6]◆ 

Strokes a rectangle (floating point coordinates) with an explicit style.

BLResult BLContext::strokeRect(const BLRectI& rect)[3/6]◆ 

Strokes a rectangle (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeRect(const BLRectI& rect, const StyleT& style)[4/6]◆ 

Strokes a rectangle (integer coordinates) with an explicit style.

BLResult BLContext::strokeRect(double x, double y, double w, double h)[5/6]◆ 

Strokes a rectangle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeRect(double x, double y, double w, double h, const StyleT& style)[6/6]◆ 

Strokes a rectangle (floating point coordinates) with an explicit style.

BLResult BLContext::strokeLine(const BLLine& line)[1/6]◆ 

Strokes a line specified as line (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeLine(const BLLine& line, const StyleT& style)[2/6]◆ 

Strokes a line specified as line (floating point coordinates) with an explicit style.

BLResult BLContext::strokeLine(const BLPoint& p0, const BLPoint& p1)[3/6]◆ 

Strokes a line starting at p0 and ending at p1 (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeLine(const BLPoint& p0, const BLPoint& p1, const StyleT& style)[4/6]◆ 

Strokes a line starting at p0 and ending at p1 (floating point coordinates) with an explicit style.

BLResult BLContext::strokeLine(double x0, double y0, double x1, double y1)[5/6]◆ 

Strokes a line starting at [x0, y0] and ending at [x1, y1] (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeLine(double x0, double y0, double x1, double y1, const StyleT& style)[6/6]◆ 

Strokes a line starting at [x0, y0] and ending at [x1, y1] (floating point coordinates) with an explicit style.

BLResult BLContext::strokeCircle(const BLCircle& circle)[1/4]◆ 

Strokes a circle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeCircle(const BLCircle& circle, const StyleT& style)[2/4]◆ 

Strokes a circle (floating point coordinates) with an explicit style.

BLResult BLContext::strokeCircle(double cx, double cy, double r)[3/4]◆ 

Strokes a circle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeCircle(double cx, double cy, double r, const StyleT& style)[4/4]◆ 

Strokes a circle (floating point coordinates) with an explicit style.

BLResult BLContext::strokeEllipse(const BLEllipse& ellipse)[1/4]◆ 

Strokes an ellipse (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeEllipse(const BLEllipse& ellipse, const StyleT& style)[2/4]◆ 

Strokes an ellipse (floating point coordinates) with an explicit style.

BLResult BLContext::strokeEllipse(double cx, double cy, double rx, double ry)[3/4]◆ 

Strokes an ellipse (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeEllipse(double cx, double cy, double rx, double ry, const StyleT& style)[4/4]◆ 

Strokes an ellipse (floating point coordinates) with an explicit style.

BLResult BLContext::strokeRoundRect(const BLRoundRect& rr)[1/8]◆ 

Strokes a rounded rectangle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeRoundRect(const BLRoundRect& rr, const StyleT& style)[2/8]◆ 

Strokes a rounded rectangle (floating point coordinates) with an explicit style.

BLResult BLContext::strokeRoundRect(const BLRect& rect, double r)[3/8]◆ 

Strokes a rounded rectangle passed as rect with radius r.

BLResult BLContext::strokeRoundRect(const BLRect& rect, double rx, double ry)[4/8]◆ 

Strokes a rounded rectangle passed as rect with radius [rx, ry].

template<typename StyleT>
BLResult BLContext::strokeRoundRect(const BLRect& rect, double rx, double ry, const StyleT& style)[5/8]◆ 

Strokes a rounded rectangle passed as rect with radius [rx, ry] with an explicit style.

BLResult BLContext::strokeRoundRect(double x, double y, double w, double h, double r)[6/8]◆ 

Strokes a rounded rectangle passed as [x, y, w, h] with radius r.

BLResult BLContext::strokeRoundRect(double x, double y, double w, double h, double rx, double ry)[7/8]◆ 

Strokes a rounded rectangle passed as [x, y, w, h] with radius [rx, ry].

template<typename StyleT>
BLResult BLContext::strokeRoundRect(double x, double y, double w, double h, double rx, double ry, const StyleT& style)[8/8]◆ 

Strokes a rounded rectangle passed as [x, y, w, h] with radius [rx, ry] with an explicit style.

BLResult BLContext::strokeArc(const BLArc& arc)[1/5]◆ 

Strokes an arc (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeArc(const BLArc& arc, const StyleT& style)[2/5]◆ 

Strokes an arc (floating point coordinates) with an explicit style.

BLResult BLContext::strokeArc(double cx, double cy, double r, double start, double sweep)[3/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeArc(double cx, double cy, double rx, double ry, double start, double sweep)[4/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokeArc(double cx, double cy, double rx, double ry, double start, double sweep, const StyleT& style)[5/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeChord(const BLArc& chord)[1/5]◆ 

Strokes a chord (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeChord(const BLArc& chord, const StyleT& style)[2/5]◆ 

Strokes a chord (floating point coordinates) with an explicit style.

BLResult BLContext::strokeChord(double cx, double cy, double r, double start, double sweep)[3/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeChord(double cx, double cy, double rx, double ry, double start, double sweep)[4/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokeChord(double cx, double cy, double rx, double ry, double start, double sweep, const StyleT& style)[5/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePie(const BLArc& pie)[1/5]◆ 

Strokes a pie (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokePie(const BLArc& pie, const StyleT& style)[2/5]◆ 

Strokes a pie (floating point coordinates) with an explicit style.

BLResult BLContext::strokePie(double cx, double cy, double r, double start, double sweep)[3/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePie(double cx, double cy, double rx, double ry, double start, double sweep)[4/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokePie(double cx, double cy, double rx, double ry, double start, double sweep, const StyleT& style)[5/5]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeTriangle(const BLTriangle& triangle)[1/4]◆ 

Strokes a triangle (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeTriangle(const BLTriangle& triangle, const StyleT& style)[2/4]◆ 

Strokes a triangle (floating point coordinates) with an explicit style.

BLResult BLContext::strokeTriangle(double x0, double y0, double x1, double y1, double x2, double y2)[3/4]◆ 

Strokes a triangle passed as [x0, y0], [x1, y1], [x2, y2].

template<typename StyleT>
BLResult BLContext::strokeTriangle(double x0, double y0, double x1, double y1, double x2, double y2, const StyleT& style)[4/4]◆ 

Strokes a triangle passed as [x0, y0], [x1, y1], [x2, y2] with an explicit style.

BLResult BLContext::strokePolyline(const BLArrayView<BLPoint>& poly)[1/8]◆ 

Strokes a polyline (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokePolyline(const BLArrayView<BLPoint>& poly, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePolyline(const BLPoint* poly, size_t n)[3/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokePolyline(const BLPoint* poly, size_t n, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePolyline(const BLArrayView<BLPointI>& poly)[5/8]◆ 

Strokes a polyline (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokePolyline(const BLArrayView<BLPointI>& poly, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePolyline(const BLPointI* poly, size_t n)[7/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokePolyline(const BLPointI* poly, size_t n, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePolygon(const BLArrayView<BLPoint>& poly)[1/8]◆ 

Strokes a polygon (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokePolygon(const BLArrayView<BLPoint>& poly, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePolygon(const BLPoint* poly, size_t n)[3/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokePolygon(const BLPoint* poly, size_t n, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePolygon(const BLArrayView<BLPointI>& poly)[5/8]◆ 

Strokes a polygon (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokePolygon(const BLArrayView<BLPointI>& poly, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePolygon(const BLPointI* poly, size_t n)[7/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokePolygon(const BLPointI* poly, size_t n, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeBoxArray(const BLArrayView<BLBox>& array)[1/8]◆ 

Strokes an array of boxes (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeBoxArray(const BLArrayView<BLBox>& array, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeBoxArray(const BLBox* data, size_t n)[3/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokeBoxArray(const BLBox* data, size_t n, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeBoxArray(const BLArrayView<BLBoxI>& array)[5/8]◆ 

Strokes an array of boxes (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeBoxArray(const BLArrayView<BLBoxI>& array, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeBoxArray(const BLBoxI* data, size_t n)[7/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokeBoxArray(const BLBoxI* data, size_t n, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeRectArray(const BLArrayView<BLRect>& array)[1/8]◆ 

Strokes an array of rectangles (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeRectArray(const BLArrayView<BLRect>& array, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeRectArray(const BLRect* data, size_t n)[3/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokeRectArray(const BLRect* data, size_t n, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeRectArray(const BLArrayView<BLRectI>& array)[5/8]◆ 

Strokes an array of rectangles (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeRectArray(const BLArrayView<BLRectI>& array, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeRectArray(const BLRectI* data, size_t n)[7/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<typename StyleT>
BLResult BLContext::strokeRectArray(const BLRectI* data, size_t n, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokePath(const BLPathCore& path)[1/4]◆ 

Strokes the given path.

template<typename StyleT>
BLResult BLContext::strokePath(const BLPathCore& path, const StyleT& style)[2/4]◆ 

Strokes the given path with an explicit style.

BLResult BLContext::strokePath(const BLPoint& origin, const BLPathCore& path)[3/4]◆ 

Strokes the given path translated by origin.

template<typename StyleT>
BLResult BLContext::strokePath(const BLPoint& origin, const BLPathCore& path, const StyleT& style)[4/4]◆ 

Strokes the given path translated by origin with an explicit style.

BLResult BLContext::strokeGeometry(BLGeometryType type, const void* data)[1/2]◆ 

Strokes the passed geometry specified by geometry type and data.

Note
This function provides a low-level API that can be used in cases that geometry type and data parameters are passed to a function and you just want to render it without further inspection. It's a good way of creating wrappers.

template<typename StyleT>
BLResult BLContext::strokeGeometry(BLGeometryType type, const void* data, const StyleT& style)[2/2]◆ 

Strokes the passed geometry specified by geometry type and data with an explicit style.

BLResult BLContext::strokeUtf8Text(const BLPointI& origin, const BLFontCore& font, const char* text, size_t size = SIZE_MAX)[1/8]◆ 

Strokes UTF-8 encoded string passed as text and size by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeUtf8Text(const BLPointI& origin, const BLFontCore& font, const char* text, size_t size, const StyleT& style)[2/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeUtf8Text(const BLPointI& origin, const BLFontCore& font, const BLStringView& view)[3/8]◆ 

Strokes UTF-8 encoded string passed as string view by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeUtf8Text(const BLPointI& origin, const BLFontCore& font, const BLStringView& view, const StyleT& style)[4/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeUtf8Text(const BLPoint& origin, const BLFontCore& font, const char* text, size_t size = SIZE_MAX)[5/8]◆ 

Strokes UTF-8 encoded string passed as text and size by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeUtf8Text(const BLPoint& origin, const BLFontCore& font, const char* text, size_t size, const StyleT& style)[6/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeUtf8Text(const BLPoint& origin, const BLFontCore& font, const BLStringView& view)[7/8]◆ 

Strokes UTF-8 encoded string passed as string view by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeUtf8Text(const BLPoint& origin, const BLFontCore& font, const BLStringView& view, const StyleT& style)[8/8]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeUtf16Text(const BLPointI& origin, const BLFontCore& font, const uint16_t* text, size_t size = SIZE_MAX)[1/4]◆ 

Strokes UTF-16 encoded string passed as text and size by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeUtf16Text(const BLPointI& origin, const BLFontCore& font, const uint16_t* text, size_t size, const StyleT& style)[2/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeUtf16Text(const BLPoint& origin, const BLFontCore& font, const uint16_t* text, size_t size = SIZE_MAX)[3/4]◆ 

Strokes UTF-16 encoded string passed as text and size by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeUtf16Text(const BLPoint& origin, const BLFontCore& font, const uint16_t* text, size_t size, const StyleT& style)[4/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeUtf32Text(const BLPointI& origin, const BLFontCore& font, const uint32_t* text, size_t size = SIZE_MAX)[1/4]◆ 

Strokes UTF-32 encoded string passed as text and size by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeUtf32Text(const BLPointI& origin, const BLFontCore& font, const uint32_t* text, size_t size, const StyleT& style)[2/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeUtf32Text(const BLPoint& origin, const BLFontCore& font, const uint32_t* text, size_t size = SIZE_MAX)[3/4]◆ 

Strokes UTF-32 encoded string passed as text and size by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeUtf32Text(const BLPoint& origin, const BLFontCore& font, const uint32_t* text, size_t size, const StyleT& style)[4/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeGlyphRun(const BLPointI& origin, const BLFontCore& font, const BLGlyphRun& glyphRun)[1/4]◆ 

Strokes the passed glyphRun by using the given font at origin (integer coordinates).

template<typename StyleT>
BLResult BLContext::strokeGlyphRun(const BLPointI& origin, const BLFontCore& font, const BLGlyphRun& glyphRun, const StyleT& style)[2/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::strokeGlyphRun(const BLPoint& origin, const BLFontCore& font, const BLGlyphRun& glyphRun)[3/4]◆ 

Strokes the passed glyphRun by using the given font at origin (floating point coordinates).

template<typename StyleT>
BLResult BLContext::strokeGlyphRun(const BLPoint& origin, const BLFontCore& font, const BLGlyphRun& glyphRun, const StyleT& style)[4/4]◆ 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

BLResult BLContext::blitImage(const BLPointI& origin, const BLImageCore& src)[1/8]◆ 

Blits source image src at coordinates specified by origin (int coordinates).

BLResult BLContext::blitImage(const BLPointI& origin, const BLImageCore& src, const BLRectI& srcArea)[2/8]◆ 

Blits an area in source image src specified by srcArea at coordinates specified by origin (int coordinates).

BLResult BLContext::blitImage(const BLPoint& origin, const BLImageCore& src)[3/8]◆ 

Blits source image src at coordinates specified by origin (floating point coordinates).

BLResult BLContext::blitImage(const BLPoint& origin, const BLImageCore& src, const BLRectI& srcArea)[4/8]◆ 

Blits an area of source image src specified by srcArea at coordinates specified by origin (floating point coordinates).

BLResult BLContext::blitImage(const BLRectI& rect, const BLImageCore& src)[5/8]◆ 

Blits a source image src scaled to fit into rect rectangle (int coordinates).

BLResult BLContext::blitImage(const BLRectI& rect, const BLImageCore& src, const BLRectI& srcArea)[6/8]◆ 

Blits an area of source image src specified by srcArea scaled to fit into rect rectangle (int coordinates).

BLResult BLContext::blitImage(const BLRect& rect, const BLImageCore& src)[7/8]◆ 

Blits a source image src scaled to fit into rect rectangle (floating point coordinates).

BLResult BLContext::blitImage(const BLRect& rect, const BLImageCore& src, const BLRectI& srcArea)[8/8]◆ 

Blits an area of source image src specified by srcArea scaled to fit into rect rectangle (floating point coordinates).