|
|
Donner
C++20 SVG rendering library
|
Rendering backend using tiny-skia-cpp. More...
#include "donner/svg/renderer/RendererTinySkia.h"
Public Member Functions | |
| RendererTinySkia (bool verbose=false) | |
| Creates the tiny-skia renderer. | |
| ~RendererTinySkia () | |
| Destructor. | |
| RendererTinySkia (RendererTinySkia &&) noexcept | |
| Move constructor. | |
| RendererTinySkia & | operator= (RendererTinySkia &&) noexcept |
| Move assignment operator. | |
| RendererTinySkia (const RendererTinySkia &)=delete | |
| RendererTinySkia & | operator= (const RendererTinySkia &)=delete |
| void | draw (SVGDocument &document) override |
| Draws the SVG document using the renderer. | |
| void | beginFrame (const RenderViewport &viewport) override |
| Begins a render pass for the given viewport. | |
| void | endFrame () override |
| Completes the current render pass. | |
| void | setTransform (const Transformd &transform) override |
| Sets the absolute transform, replacing the current matrix. | |
| void | pushTransform (const Transformd &transform) override |
| Pushes a relative transform. | |
| void | popTransform () override |
| Pops the most recent transform. | |
| void | pushClip (const ResolvedClip &clip) override |
| Pushes a clip rect or clip path. | |
| void | popClip () override |
| Pops the most recent clip. | |
| void | pushIsolatedLayer (double opacity) override |
| Pushes an isolated compositing layer. | |
| void | popIsolatedLayer () override |
| Pops the most recent isolated layer. | |
| void | pushFilterLayer (std::span< const FilterEffect > effects) override |
| Pushes a filter layer. | |
| void | popFilterLayer () override |
| Pops the most recent filter layer. | |
| void | pushMask (const std::optional< Boxd > &maskBounds) override |
| Begins mask rendering. | |
| void | transitionMaskToContent () override |
| Switches from mask rendering to masked content rendering. | |
| void | popMask () override |
| Pops the current mask and composites the masked content. | |
| void | beginPatternTile (const Boxd &tileRect, const Transformd &patternToTarget) override |
| Begins pattern tile recording. | |
| void | endPatternTile (bool forStroke) override |
| Ends pattern recording and stores the resulting pattern paint. | |
| void | setPaint (const PaintParams &paint) override |
| Sets the active paint parameters for subsequent draw calls. | |
| void | drawPath (const PathShape &path, const StrokeParams &stroke) override |
| Draws an arbitrary path. | |
| void | drawRect (const Boxd &rect, const StrokeParams &stroke) override |
| Draws an axis-aligned rectangle. | |
| void | drawEllipse (const Boxd &bounds, const StrokeParams &stroke) override |
| Draws an ellipse. | |
| void | drawImage (const ImageResource &image, const ImageParams ¶ms) override |
| Draws an image resource. | |
| void | drawText (const components::ComputedTextComponent &text, const TextParams ¶ms) override |
| Draws shaped text. | |
| RendererBitmap | takeSnapshot () const override |
| Captures a CPU-readable snapshot of the current frame. | |
| std::unique_ptr< RendererInterface > | createOffscreenInstance () const override |
| Creates an independent offscreen renderer instance of the same type as this one. | |
| bool | save (const char *filename) |
| Saves the last rendered frame to a PNG file. | |
| void | setAntialias (bool antialias) |
| Enables or disables anti-aliasing. | |
| int | width () const override |
| Returns the rendered width in pixels. | |
| int | height () const override |
| Returns the rendered height in pixels. | |
Rendering backend using tiny-skia-cpp.
This backend provides a lightweight software rasterizer implementation of RendererInterface. It currently targets shape, image, gradient, clip, mask, pattern, and opacity-layer rendering. Text rendering is not yet implemented.
|
explicit |
Creates the tiny-skia renderer.
| verbose | If true, emit diagnostic logging for unsupported features. |
|
overridevirtual |
Begins a render pass for the given viewport.
| viewport | The viewport dimensions for the render pass. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Begins pattern tile recording.
| tileRect | Tile bounds in pattern space. |
| patternToTarget | Transform from pattern tile space to target space. |
Implements donner::svg::RendererInterface.
|
nodiscardoverridevirtual |
Creates an independent offscreen renderer instance of the same type as this one.
Used for rendering sub-documents into intermediate pixmaps when a backend needs an isolated offscreen pass. Returns nullptr if offscreen rendering is not supported.
Reimplemented from donner::svg::RendererInterface.
|
overridevirtual |
Draws the SVG document using the renderer.
| document | The SVG document to render. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Draws an ellipse.
| bounds | The ellipse bounds. |
| stroke | Stroke configuration for the ellipse. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Draws an image resource.
| image | The image resource to draw. |
| params | Image placement parameters. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Draws an arbitrary path.
| path | The path to draw. |
| stroke | Stroke configuration for the path. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Draws an axis-aligned rectangle.
| rect | The rectangle bounds. |
| stroke | Stroke configuration for the rectangle. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Draws shaped text.
Text rendering is not yet implemented for this backend.
| text | The shaped text runs. |
| params | Text styling parameters. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Completes the current render pass.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Ends pattern recording and stores the resulting pattern paint.
| forStroke | If true, store as stroke paint, otherwise fill paint. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Returns the rendered height in pixels.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pops the most recent clip.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pops the most recent filter layer.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pops the most recent isolated layer.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pops the current mask and composites the masked content.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pops the most recent transform.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pushes a clip rect or clip path.
| clip | The resolved clip to apply. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pushes a filter layer.
| effects | The filter chain to apply when the layer is popped. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pushes an isolated compositing layer.
| opacity | Group opacity applied when the layer is composited back. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Begins mask rendering.
| maskBounds | Optional mask bounds clip. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Pushes a relative transform.
| transform | The transform to compose with the current matrix. |
Implements donner::svg::RendererInterface.
| bool donner::svg::RendererTinySkia::save | ( | const char * | filename | ) |
Saves the last rendered frame to a PNG file.
| filename | The output PNG filename. |
|
overridevirtual |
Sets the active paint parameters for subsequent draw calls.
| paint | The resolved paint state. |
Implements donner::svg::RendererInterface.
|
overridevirtual |
Sets the absolute transform, replacing the current matrix.
| transform | The transform to apply. |
Implements donner::svg::RendererInterface.
|
nodiscardoverridevirtual |
Captures a CPU-readable snapshot of the current frame.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Switches from mask rendering to masked content rendering.
Implements donner::svg::RendererInterface.
|
overridevirtual |
Returns the rendered width in pixels.
Implements donner::svg::RendererInterface.