Skip to content

emmabritton/buffer-graphics-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crates.io Documentation

Buffer Graphics Lib

This is a simple graphics library for drawing to a buffer, mainly designed to be used with Pixels Graphics or Pixels

It has basic shape drawing, bitmap text and image rendering.

The Graphics struct needs a mutable buffer to work on and so mostly likely you'll need to create the struct and pass in the buffer from the rendering library every frame but this should be fine for performance as the struct is nearly empty.

ICI Tools can be useful when working with ICI files

ICI Image editor is a MSPaint like program for ICI and ICA files

Graphics tests has tests for this crate, and provides some examples

Integration tests shows how to use some third party libraries

Usage

Cargo

In your Cargo.toml file add

buffer-graphics-lib = "0.18.0"

Code

Setup a graphics instance

let mut buffer: [u8; 1920000] = Graphics::create_buffer(800,600); //800 x 600 RGBA 
let mut graphics = Graphics::new(&mut buffer, 800, 600)?;

Drawing is then quite simple:

let text = Text::new("Some text", (1,1), (WHITE, PixelFont::Standard6x7));
graphics.draw(&text);
graphics.draw_image(20, 20, &image);
graphics.draw_rect(Rect::new((40, 50), (100, 100)), stroke(BLUE));

Features

Default features: "serde"

image_loading

  • Load png, bmp, etc image files as Images

Code

let image = open_image("resources/example.png")?;
graphics.draw_image(40, 20, &image);

serde

  • Adds derive Serialize and Deserialize for most structs and enums
  • Enables graphics-shapes/serde

mint

  • Enables graphics-shapes/mint