Skip to content

Commit b4ed6d4

Browse files
committed
Update README.md
1 parent d8b95b5 commit b4ed6d4

1 file changed

Lines changed: 37 additions & 25 deletions

File tree

README.md

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,42 @@
33
[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](LICENSE)
44
[![C++ Standard](https://img.shields.io/badge/C%2B%2B-14-green.svg)](https://en.wikipedia.org/wiki/C%2B%2B14)
55

6-
A high-performance, GPU-accelerated 2D vector graphics library, ported from the original Rust implementation of [Pathfinder 3](https://github.com/servo/pathfinder). This version brings the power of massivly parallel vector rasterization to the C++ ecosystem, with native **Vulkan**, **OpenGL**, and **Metal** backends.
6+
A high-performance, GPU-accelerated 2D vector graphics library, ported from the original Rust implementation
7+
of [Pathfinder 3](https://github.com/servo/pathfinder). This version brings the power of massivly parallel vector
8+
rasterization to the C++ ecosystem, with native **Vulkan**, **OpenGL**, and **Metal** backends.
79

810
## 🚀 Key Features
911

10-
* **Massively Parallel Rasterization**: Leverages the GPU to rasterize complex vector scenes at high speeds.
11-
* **Dual Rendering Strategies**:
12-
* **Hybrid Mode**: CPU-assisted binning with hardware rasterization. Optimized for mobile devices and static path caching.
13-
* **GPU-Driven Mode**: Full compute-shader-based pipeline. Minimizes CPU overhead by moving binning and tiling entirely to the GPU.
14-
* **Advanced Effects**: Native support for shadows, blurs, gradients, and complex clipping paths.
15-
* **Cross-Platform**: Designed for Windows, Linux, macOS, Android, and Web (Wasm).
12+
* **Massively Parallel Rasterization**: Leverages the GPU to rasterize complex vector scenes at high speeds.
13+
* **Dual Rendering Strategies**:
14+
* **Hybrid Mode**: CPU-assisted binning with hardware rasterization. Optimized for mobile devices and static path
15+
caching.
16+
* **GPU-Driven Mode**: Full compute-shader-based pipeline. Minimizes CPU overhead by moving binning and tiling
17+
entirely to the GPU.
18+
* **Advanced Effects**: Native support for shadows, blurs, gradients, and complex clipping paths.
19+
* **Cross-Platform**: Designed for Windows, Linux, macOS, Android, and Web (Wasm).
1620

1721
## 🛠 Supported Backends
1822

19-
| Backend | Hybrid Mode | GPU-Driven Mode | Notes |
20-
| :--- | :---: | :---: | :--- |
21-
| **Vulkan** ||| Best performance |
22-
| **OpenGL 4.3+** ||| Desktop standard |
23-
| **OpenGL ES 3.1+** ||* | *Limited by Storage Image access on some ES devices |
24-
| **OpenGL ES 3.0** ||| Compatibility mode |
25-
| **WebGL2** ||| Web target |
23+
| Backend | Hybrid Mode | GPU-Driven Mode | Notes |
24+
|:-------------------|:-----------:|:---------------:|:----------------------------------------------------|
25+
| **Vulkan** ||| Best performance |
26+
| **Metal** ||| Not MoltenVK |
27+
| **OpenGL 4.3+** ||| Desktop standard |
28+
| **OpenGL ES 3.1+** ||* | *Limited by Storage Image access on some ES devices |
29+
| **OpenGL ES 3.0** ||| Compatibility mode |
30+
| **WebGL2** ||| Web target |
2631

2732
## 📦 Getting Started
2833

2934
### Prerequisites
30-
* C++14 compatible compiler.
31-
* CMake 3.15+.
32-
* Vulkan SDK (if building with Vulkan support or regenerating shaders).
35+
36+
* C++14 compatible compiler.
37+
* CMake 3.15+.
38+
* Vulkan SDK (if building with Vulkan support or regenerating shaders).
3339

3440
### Building the Library
41+
3542
```bash
3643
git clone --recursive https://github.com/your-repo/pathfinder-cpp.git
3744
cd pathfinder-cpp
@@ -43,19 +50,24 @@ make
4350
## 🎮 Demos
4451

4552
### Windows / Linux / macOS
53+
4654
The native demo uses a common application framework.
47-
1. Initialize submodules: `git submodule update --init --recursive`.
48-
2. Open the project in your favorite IDE (CLion, VS) and run the `demo` target.
55+
56+
1. Initialize submodules: `git submodule update --init --recursive`.
57+
2. Open the project in your favorite IDE (CLion, VS) and run the `demo` target.
4958

5059
### Android
51-
1. Copy `assets` into `demo/android/app/src/main`.
52-
2. Open `demo/android` in Android Studio.
53-
3. Deploy to a device supporting GLES 3.0+.
60+
61+
1. Copy `assets` into `demo/android/app/src/main`.
62+
2. Open `demo/android` in Android Studio.
63+
3. Deploy to a device supporting GLES 3.0+.
5464

5565
### Web (Emscripten)
56-
1. Set up the Emscripten environment.
57-
2. Run `./build_wasm.sh`.
58-
3. Run `./demo/web/serve.sh` and visit `http://127.0.0.1:8000`.
66+
67+
1. Set up the Emscripten environment.
68+
2. Run `./build_wasm.sh`.
69+
3. Run `./demo/web/serve.sh` and visit `http://127.0.0.1:8000`.
5970

6071
## 📜 Acknowledgments
72+
6173
This project is a port of the [Pathfinder](https://github.com/servo/pathfinder) engine developed by the Servo project.

0 commit comments

Comments
 (0)