A vector graphics renderer using OpenGL with a Rust & C API.

Overview

bufro

crates.io Documentation

A vector graphics renderer using OpenGL with a Rust & C API.

A Rust example can be found in examples/quickstart.rs (using glutin). A C example can be found in c_examples/quickstart.c (using glfw). Build the C examples by running make <example> in the c_examples folder.

Roadmap

Mostly unfinished.

  • Transformations (e.g. ctx.rotate)
  • Rectangle fill
  • Circle fill
  • Blending
  • Strokes
  • Effects (glow & shadows)
  • Gradients
  • Rounded rectangles and polygons
  • Use Lyon for tesselation
  • Custom shader language
  • Web API (using wasm-bindgen)

Demo

Gif showing bufro in action

Build & Install (C)

$ make # Build the dynamic library and generate the C header
% make install # Install the header and library system-wide 

Note that $ indicates a regular user shell, while % denotes a root shell.

You might also like...
Graphite is a digital content creation software package for 2D graphics
Graphite is a digital content creation software package for 2D graphics

Powerful 2D vector and raster editing. Procedural and nondestructive. Graphite is a digital content creation software package for 2D graphics, merging

A low-overhead Vulkan-like GPU API for Rust.
A low-overhead Vulkan-like GPU API for Rust.

Getting Started | Documentation | Blog gfx-rs gfx-rs is a low-level, cross-platform graphics and compute abstraction library in Rust. It consists of t

Safe and rich Rust wrapper around the Vulkan API
Safe and rich Rust wrapper around the Vulkan API

Vulkano See also vulkano.rs. Vulkano is a Rust wrapper around the Vulkan graphics API. It follows the Rust philosophy, which is that as long as you do

Graph API client writen in Rust

graph-rs Now available on stable Rust at crates.io graph-rs-sdk = "0.1.0" 0.1.0 and above use stable Rust. Anything before 0.1.0 uses nightly Rust. M

A Graph implemented using nothing but `Vec`s in rust

VecGraph A Graph implemented using nothing but Vecs in rust. Details The graph is implemented using two Vecs: nodes and edges. nodes stores "nodes". w

A universe that consists of meta knowledge domains from Stack Exchange, made using Bevy with
A universe that consists of meta knowledge domains from Stack Exchange, made using Bevy with

Stack of Knowledge Universe A universe that consists of meta knowledge domains from Stack Exchange, made using Bevy with ❤️ . Setup Remove .placeholde

Real-time 3D orientation visualization of a BNO055 IMU using Bissel and Bevy
Real-time 3D orientation visualization of a BNO055 IMU using Bissel and Bevy

orientation This is a demonstration of real-time visualization of the attitude of a BNO055 IMU across a wireless network to a Bevy app using the Bisse

Python library for embedding large graphs in 2D space, using force-directed layouts.

Graph Force A python/rust library for embedding graphs in 2D space, using force-directed layouts. Installation pip install graph_force Usage The first

A toy ray tracer in Rust
A toy ray tracer in Rust

tray_rust - A Toy Ray Tracer in Rust tray_rust is a toy physically based ray tracer built off of the techniques discussed in Physically Based Renderin

Comments
  • I did something with it!

    I did something with it!

    oMG!11 I made a REALLLLLLLY cooL gMAE wiTh ThIS epIC LiBRary 😂 😂 😂. https://diep.io IT tok mE thRE miNUTS tO makE thIS ! yOUr EpiC liBRary MaDe it SO faSt

    opened by martin-esparragoza 2
  • Program doesn't run

    Program doesn't run

    I get this error message:

    thread 'main' panicked at 'assertion failed: self.in_subpath', /home/p11/.cargo/registry/src/github.com-1ecc6299db9ec823/lyon_path-0.17.6/src/private.rs:44:13
    

    So it's related to Lyon in some way.

    opened by porky11 2
  • Some examples don't compile

    Some examples don't compile

    Examples alpha, path, quickstart and polygon don't compile.

    They use glutin instead of winit when using the vulkan backend.

    Fixed:

    • [ ] alpha
    • [ ] path
    • [ ] quickstart
    • [ ] polygon
    opened by porky11 2
Owner
Aspect
Aspect
An OpenGL function pointer loader for Rust

gl-rs Overview This repository contains the necessary building blocks for OpenGL wrapper libraries. For more information on each crate, see their resp

Brendan Zabarauskas 621 Dec 17, 2022
Safe OpenGL wrapper for the Rust language.

glium Note to current and future Glium users: Glium is no longer actively developed by its original author. That said, PRs are still welcome and maint

null 3.1k Jan 1, 2023
ASCII 3D-renderer using Ray Marching technique written in Rust with NCurses

pistol ASCII renderer using Ray Marching technique written in Rust ?? with NCurses. This project is a giga-chad compared to my previous attempt to wri

Eugene Sokolov 5 Dec 10, 2022
Rust bindings to bgfx, a cross-platform, graphics API agnostic

Rust bindings to bgfx, a cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

Daniel Collin 65 Dec 24, 2022
A high-performance SVG renderer, powered by Rust based resvg and napi-rs.

resvg-js resvg-js is a high-performance SVG renderer, powered by Rust based resvg and napi-rs. Fast, safe and zero dependencies! No need for node-gyp

一丝 744 Jan 7, 2023
CPU-Accelerated 3D renderer fully written in Rust

Bogo-Renderer CPU-Accelerated 3D renderer fully written in Rust. This is 100% hobby project. Don't expect anything from it. Showcases Features Soft Sh

null 2 Jan 19, 2022
Kiss3d - Keep it simple, stupid 3d graphics engine for Rust.

Kiss3d - Keep it simple, stupid 3d graphics engine for Rust.

Sébastien Crozet 1.2k Dec 26, 2022
A little cross-platform graphics engine written in rust.

Bismuth This is a version of my C++ graphics engine named Bismuth re-written with Rust. My goal is to learn more about the Rust language and make my g

Admiral サイタマ 1 Nov 1, 2021
Generic framebuffer implementation in Rust for use with embedded-graphics library

Fraramebuffer implementation for Rust's Embedded-graphics Framebuffer approach helps to deal with display flickering when you update multiple parts of

Bernard Kobos 9 Nov 29, 2022
wgpugd: A WebGPU Graphics Device for R

wgpugd: A WebGPU Graphics Device for R Overview What is WebGPU? WebGPU is an API that exposes the capabilities of GPU hardware. What is wgpu? As the n

Hiroaki Yutani 42 Dec 11, 2022