2D Vector Graphics Engine
2D rendering context, helper structures, and constants.
Describes a rendering operation type - fill or stroke.
The rendering context allows to get and set fill & stroke options directly or via "style" functions that take the rendering operation type (
opType) and dispatch the call to the right function.
Fill operation type.
Stroke operation type.
Count of rendering operations.
Rendering context flush-flags, use with
Flush the command queue and wait for its completion (will block).
Rendering context create-flags.
Fallbacks to a synchronous rendering in case that the rendering engine wasn't able to acquire threads. This flag only makes sense when the asynchronous mode was specified by having
If this flag is specified and asynchronous rendering is enabled then the context would create its own isolated thread-pool, which is useful for debugging purposes.
Do not use this flag in production as rendering contexts with isolated thread-pool have to create and destroy all threads they use. This flag is only useful for testing, debugging, and isolated benchmarking.
If this flag is specified and JIT pipeline generation enabled then the rendering context would create its own isolated JIT runtime. which is useful for debugging purposes. This flag will be ignored if JIT pipeline generation is either not supported or was disabled by other flags.
Do not use this flag in production as rendering contexts with isolated JIT runtime do not use global pipeline cache, that's it, after the rendering context is destroyed the JIT runtime is destroyed with it with all compiled pipelines. This flag is only useful for testing, debugging, and isolated benchmarking.
Enables logging to stderr of isolated runtime.
Override CPU features when creating isolated context.
Specifies a rendering context property that can be specific to the rendering context implementation and that doesn't have its own C and C++ API. Different rendering context implementations may expose various properties that users can query to get more details about the rendering context itself, rendering details (like optimizations or possibly limitations), memory details, and other information that was collected during the rendering.
Properties are never part of the rendering context state - they are stateless and are not subject to
restore(). Many properties are purely informative, but some not, e.g.
Number of threads that the rendering context uses for rendering.
Accumulated errors collected during the lifetime of the rendering context.
Error flags that are accumulated during the rendering context lifetime and that can be queried through
BLContext::queryAccumulatedErrorFlags(). The reason why these flags exist is that errors can happen during asynchronous rendering, and there is no way the user can catch these errors.
The rendering context returned or encountered
Invalid state describes something wrong, for example a pipeline compilation error.
The rendering context has encountered invalid geometry.
The rendering context has encountered invalid glyph.
The rendering context has encountered invalid or uninitialized font.
Thread pool was exhausted and couldn't acquire the requested number of threads.
Out of memory condition.
Unknown error, which we don't have flag for.
Clipping to a rectangle that is aligned to the pixel grid.
Clipping to a rectangle that is not aligned to pixel grid.
Clipping to a non-rectangular area that is defined by using mask.
Count of clip modes.
Composition & blending operator.
Count of composition & blending operators.