Skip to content
Experimental Swift bindings for Blend2D
Branch: master
Clone or download

README.md

SwiftBlend2D

Platform Build Status
macOS Build Status
Linux Build Status

Work-in-progress Swift bindings for Blend2D. This project makes use of the original source code of Blend2D and is in no way associated or supported by Blend2D.

For a brief report of what APIs are available in Swift, please check the status page.

Sample usage

Taken from sample1 from the samples library.

let img = BLImage(width: 480, height: 480, format: .prgb32)

// Attach a rendering context into `img`.
let ctx = BLContext(image: img)!

// Clear the image.
ctx.compOp = .sourceCopy
ctx.fillAll()

// Fill some path.
let path = BLPath()

path.moveTo(x: 26, y: 31)
path.cubicTo(x1: 642, y1: 132, x2: 587, y2: -136, x3: 25, y3: 464)
path.cubicTo(x1: 882, y1: 404, x2: 144, y2: 267, x3: 27, y3: 31)

ctx.compOp = .sourceOver
ctx.setFillStyleRgba32(0xFFFFFFFF)
ctx.fillPath(path)

// Detach the rendering context from `img`.
ctx.end()

// Let's use some built-in codecs provided by Blend2D.
let codec = BLImageCodec(builtInCodec: .bmp)

try img.writeToFile("bl-getting-started-1.bmp", codec: codec)

This should create an image in the current working directory like so:

Sample 1

There are more examples that reproduce each sample from Blend2D's homepage within that file.

License

The source code for SwiftBlend2D is distributed under the MIT license.

The incorporated source code from Blend2D is licensed under the zlib license.

A modified source code for libpng, which is included in this project, is licensed under the PNG Reference Library License version 1.

You can’t perform that action at this time.