Files
UnrealEngine/Engine/Source/ThirdParty/skia/skia-simplify-readme.md
2025-05-18 13:04:45 +08:00

46 lines
1.9 KiB
Markdown

# Skia-Simplify
This is a reduced version of the Google Skia library,
consisting of a small subset of its source files,
selected to only support the minimum required functionality.
This functionality is primarily Skia's `Simplify` function
(hence the name Skia-Simplify), which simplifies overlapped geometry
of a vector shape.
Later, for the purposes of loading SVG files,
it has been extended to also provide `SkParsePath` and
`Op` (path boolean operations).
It also has to include all code which these functions depend on.
## Extraction from full Skia library
To gather the subset of source files from the full Skia library,
do the following:
1. Clone Skia's source [repository](https://github.com/google/skia/)
to a folder (which we will call `skia-source`).
- Note: We have been using the `chrome/m120` branch.
2. Execute the Python script `get-source.py` with two additional arguments:
`skia-source` directory and `skia-simplify` output directory.
- This will filter the source files and only copy the subset to `skia-simplify`.
- Some include files will be reported as not found, this is normal.
- **Beware**: If your version of the Skia library
or its file structure is too different,
it may be necessary to modify the Python script.
To successfully compile the sources into a library,
you need to implement the function `SkDebugf`
or redefine it in `include/config/SkUserConfig.h`.
Then you can simply pass all of the CPP files in `src` to a compiler
with C++17 enabled.
## All-in-one version
An optional next step is to combine all header files into one
and all source (CPP) files into one, which can then be easily
included in a project (much like a header-only library).
For this, you can simply execute the Python script `all-in-one.py`
with the output directory (`skia-simplify`) from the previous step
as its argument.
The output will be placed in the `all-in-one` subdirectory.