mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-29 02:50:26 +00:00
d292152e2e
This change introduces Skia painter available under a flag. It's not yet match capabilities of Gfx::Painter and is not ready to replace it. Motivation: - The current CPU painter is a performance bottleneck on most websites. Our own GPU painter implementation is very immature and has received relatively little attention. - There is ongoing effort on building painter that supports affine transforms (AffineCommandExecutorCPU) but it is far from being on par with the default CPU painter. Skia will allow us to immediately get full transformation support for all painting commands. GPU painting: I experimented with Ganesh GPU-backend, however profiling revealed that without sharing viewport texture between WebContent and Browser processes, it won't bring much performance improvement compared to CPU-backend. Therefore, I decided to keep this PR focused on implementing most of painting commands and switch to GPU-backend in future changes. Text rendring: Skia painter uses glyph bitmaps produced by LibGfx. Using Skia for text rendering will require large refactoring of the font rendering subsystem. Currently, it's impossible to construct SkFont right before rendering because Gfx::VectorFont can't be serialized back into sequence of bytes. There is a problem with ugly include paths like: `#include <core/SkBitmap.h>`. I would prefer to have skia prefix in the path. There was an attempt to fix that but PR was rejected https://github.com/microsoft/vcpkg/pull/32660 Regressions compared to Gfx::Painter: - DrawText is not implemented - PaintTextShadow is not implemented - PaintRadialGradient and PaintLinearGradient do not support "transition hints" and repeat length - PaintConicGradient is not implemented - DrawTriangleWave is not implemented - DrawLine does not account for line style property - DrawScaledBitmap and DrawScaledImmutableBitmap do not account for scaling mode property
40 lines
658 B
JSON
40 lines
658 B
JSON
{
|
|
"builtin-baseline": "01f602195983451bc83e72f4214af2cbc495aa94",
|
|
"dependencies": [
|
|
{
|
|
"name": "fontconfig",
|
|
"platform": "linux | freebsd | openbsd"
|
|
},
|
|
"icu",
|
|
"libjpeg-turbo",
|
|
"skia",
|
|
"sqlite3",
|
|
"woff2"
|
|
],
|
|
"overrides": [
|
|
{
|
|
"name": "fontconfig",
|
|
"version": "2.14.2#1"
|
|
},
|
|
{
|
|
"name": "icu",
|
|
"version": "74.2#1"
|
|
},
|
|
{
|
|
"name": "libjpeg-turbo",
|
|
"version": "3.0.2"
|
|
},
|
|
{
|
|
"name": "skia",
|
|
"version": "124#0"
|
|
},
|
|
{
|
|
"name": "sqlite3",
|
|
"version": "3.45.3"
|
|
},
|
|
{
|
|
"name": "woff2",
|
|
"version": "1.0.2#4"
|
|
}
|
|
]
|
|
}
|