Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rustq/swiftui-skia
Skia based 2d graphics SwiftUI rendering library. It is based on Rust to implement software rasterization to perform rendering. 基于 Skia 的 2D 图形 SwiftUI 渲染库 —— 使用 Rust 语言实现纯软件光栅化渲染
https://github.com/rustq/swiftui-skia
rust skia swift swiftui
Last synced: 22 days ago
JSON representation
Skia based 2d graphics SwiftUI rendering library. It is based on Rust to implement software rasterization to perform rendering. 基于 Skia 的 2D 图形 SwiftUI 渲染库 —— 使用 Rust 语言实现纯软件光栅化渲染
- Host: GitHub
- URL: https://github.com/rustq/swiftui-skia
- Owner: rustq
- License: mit
- Created: 2024-06-13T17:25:44.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-14T14:25:37.000Z (4 months ago)
- Last Synced: 2024-08-14T21:38:06.060Z (4 months ago)
- Topics: rust, skia, swift, swiftui
- Language: Swift
- Homepage:
- Size: 764 KB
- Stars: 27
- Watchers: 2
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-swift - SwiftUISkia - Skia based 2d graphics SwiftUI rendering library, based on Rust to implement software rasterization to perform rendering (Libs / UI)
- fucking-awesome-swift - SwiftUISkia - Skia based 2d graphics SwiftUI rendering library, based on Rust to implement software rasterization to perform rendering (Libs / UI)
README
# SwiftUI Skia
[![license](https://img.shields.io/badge/license-MIT-cyan)](https://revolunet.mit-license.org/) [![crates](https://img.shields.io/crates/v/swiftui-skia)](https://crates.io/crates/swiftui-skia)
The `swiftui-skia` is a skia based 2d graphics `SwiftUI` rendering library. It is based on `Rust` to implement software rasterization to perform rendering. It performs better in cross-platform adaptability than hardware rasterization, however it is still an experimental project. And it's based entirely on `SwiftUI` syntax.
基于 `Skia` 的 2D 图形 `SwiftUI` 渲染库 —— 使用 `Rust` 语言实现纯软件光栅化渲染,相比原生光栅化具有更好的跨平台适应性,不过目前仍然是一个实验项目;此外使用层面完全基于 `SwiftUI` 语法。
## Usage
```swift
import SwiftUI
import SwiftUISkiastruct ContentView: View {
var body: some View {
SwiftUISkia.Surface(width: 360, height: 360) {
SwiftUISkia.Rect(x: 10, y: 220, width: 30, height: 30, style: "fill", color: "cyan") {}
SwiftUISkia.Image(image: "https://raw.githubusercontent.com/rustq/swiftui-skia/main/examples/first-example/first-example/Assets.xcassets/swiftui-96x96_2x.imageset/swiftui-96x96_2x.png", x: 0, y: 0, width: 64, height: 64, blur: 5, brighten: 98) {}
SwiftUISkia.RoundRect(x: 220, y: 50, r: 10, width: 80, height: 80, style: "stroke", color: "fuchsia") {}
SwiftUISkia.Points(points: [
[138, 10],
[178, 90],
[266, 103],
[202, 165],
[217, 254],
[138, 212],
[59, 254],
[74, 165],
[10, 103],
[98, 90],
], strokeWidth: 1, style: "fill", color: "rgba(200, 255, 0, 0.7)") {}
SwiftUISkia.Circle(cx: 200, cy: 220, r: 70, style: "stroke", color: "violet") {}
SwiftUISkia.Circle(cx: 200, cy: 220, r: 50, style: "fill", color: "violet") {}
SwiftUISkia.Text(text: "Hello SwiftUI Skia!",x: 80, y: 0, fontSize: 16, color: "black", maxWidth: 60) {}
}
}
}
```## Installation in Rust workspace
```shell
$ cargo add swiftui-skia
``````shell
$ cargo install --path .$ ln -s ~/.cargo/registry/src/index.crates.io-{YOUR CRATE HASH}/swiftui-skia-0.0.4 swiftui-skia
``````shell
$ cargo install cargo-lipo$ cargo install swift-bridge-cli
``````shell
$ cd swiftui-skia$ rustup target add x86_64-apple-darwin aarch64-apple-darwin aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim
$ ./build-rust.sh
$ ./build-bridge.sh
```## Add Package Dependency
Frameworks, Libraries, and Embedded Content
△ SwiftUISkia
△ SwiftUISkiaBridge
## License
[MIT](https://opensource.org/licenses/MIT)