Expand description
The Skia rendering backend.
Implements the render contracts of ferroui_base::platform on top of
Skia: geometries, bitmaps, regions, the drawing context and the render
targets (software framebuffers and GPU surfaces).
GPU rendering goes through the gpu::ISkiaGpu abstraction. The Metal
implementation (gpu::metal::SkiaMetalGpu, Apple platforms) runs on
Skia’s Graphite backend, the OpenGL one (gpu::open_gl::GlSkiaGpu, the
browser) on Ganesh.
Modules§
- gpu
- The GPU abstraction of the backend.
- helpers
- Helpers shared by the backend’s types.
- metal
- The Metal platform contracts: what a platform exposes so that a render backend can draw with Metal.
- skia_
sharp_ extensions - Conversions between the framework’s primitives and Skia’s.
Structs§
- Combined
Geometry Impl - A Skia implementation of a combined geometry.
- Create
Info - Context create info.
- Drawing
Context Impl - Skia based drawing context.
- Ellipse
Geometry Impl - A Skia implementation of an ellipse geometry.
- Font
Manager Impl - The Skia font manager: system fonts through Skia’s default font manager.
- Framebuffer
Render Target - Skia render target that renders to a framebuffer surface. No GPU acceleration available.
- Geometry
Group Impl - A Skia implementation of a geometry group.
- Geometry
Impl Base - State every geometry kind has: the stroke cache, the path measure and a handle to the geometry itself.
- Glyph
RunImpl - The Skia implementation of a glyph run: glyph indices and positions that are turned into text blobs for drawing.
- Immutable
Bitmap - Immutable Skia bitmap.
- Line
Geometry Impl - A Skia implementation of a line geometry.
- Locked
Framebuffer - A locked framebuffer described by plain values, with an optional action that runs when it is unlocked.
- Picture
Render Target - A render target that records the drawing into a Skia picture.
- Platform
Render Interface - Skia platform render interface.
- Rectangle
Geometry Impl - A Skia implementation of a rectangle geometry.
- Render
Target Bitmap Impl - A render target bitmap: a writeable bitmap that is drawn into through a framebuffer render target over its own pixels.
- Simple
Geometry Impl - A Skia geometry defined by stroke and fill paths.
- SkCache
Base - Cache base for Skia objects.
- SkPaint
Cache - Cache of paints that can be shared.
- SkRound
Rect Cache - Cache of rounded rectangles that can be shared.
- SkText
Blob Builder Cache - Cache of text blob builders that can be shared.
- Skia
Context - The Skia render backend bound to a GPU (or to software rendering).
- Skia
Options - Options for the Skia rendering subsystem.
- Skia
Platform - Skia platform initializer.
- Skia
Region Impl - A Skia implementation of a platform region.
- Skia
Typeface - A platform typeface over a Skia typeface.
- Stream
Geometry Builder - Builds a Skia geometry from drawing commands.
- Surface
Render Target - Skia render target that writes to a surface.
- Surface
Render Target Create Info - Create info of a
SurfaceRenderTarget. - Text
Rendering Override - A development override of the text rendering of the backend (see the module): each value that is set replaces the one the surface would have.
- Text
Rendering Settings - The text rendering of a surface.
- Text
Rendering Source - Where a render target reads the text rendering parameters of the platform from: the surfaces of the top-level it renders, asked every frame.
- Transformed
Geometry Impl - A Skia implementation of a transformed geometry.
- TwoLevel
Cache - Provides a lightweight two-level cache for storing key-value pairs, supporting fast retrieval and optional eviction handling.
- Writeable
Bitmap Impl - Skia based writeable bitmap.
Enums§
- Canvas
Source - What a drawing context draws to.
Constants§
- GREYSCALE_
TEXT_ SCALING - From this render scaling on, text is antialiased in greyscale by default: the pixels are small enough that subpixel antialiasing gains nothing visible, and its colour fringes remain (Chromium and the platforms switch to greyscale on high density displays as well).
- TEXT_
OVERRIDE_ ENV_ PREFIX - The prefix of the environment variables of the override.
- TEXT_
OVERRIDE_ KEYS - The keys of the override, in the names of its environment variables
(
FERROUI_TEXT_<KEY>, upper case) and of a calibration specification (contrast=1,gamma=1.8).
Traits§
- Geometry
Impl - A geometry of this backend: something with a stroke path and a fill path.
- IDrawable
Bitmap Impl - Extended bitmap implementation that allows for drawing its contents.
- ISkia
ApiLease - A lease of the Skia objects of a drawing context.
- ISkia
ApiLease Feature - Gives direct access to the Skia objects a drawing context draws with.
- ISkia
Platform Graphics ApiLease - A lease of the platform graphics API underneath Skia.
- Skia
Application Extensions - Skia application extensions.
Functions§
- set_
text_ rendering_ override - Replaces the override of the process (a calibration aid, not a supported API): it shows from the next frame, render target bitmap or layer that is created.
- startup_
text_ rendering_ override - The override of the environment of the process, read once.
- text_
rendering_ override - The override the surfaces of the backend apply now: the one of the environment unless a calibration host replaced it.
- try_
get_ drawable_ bitmap - Recovers the drawable bitmap behind a platform bitmap.
- try_
get_ geometry_ impl - Recovers the backend geometry behind a platform geometry.