conifer

Crates.ioconifer
lib.rsconifer
version0.1.0
sourcesrc
created_at2020-08-24 16:10:52.758068
updated_at2020-09-01 19:38:44.115493
descriptionA library for interacting with a touch screen device without X11
homepage
repositoryhttps://github.com/richardanaya/conifer
max_upload_size
id280178
size82,036
RICHΛRD ΛNΛYΛ (richardanaya)

documentation

README

:evergreen_tree: Conifer

docs.rs docs

A simple framebuffer game engine for PinePhone, Raspberry Pi, and other devices with touch screens.

  • make games without X11!
  • auto detect virtual terminal framebuffer
  • auto detect touch screen input
  • works on pinephone, raspbery pi, desktop
  • image support
  • layers
  • text drawing
  • sprites
  • sound
  • web assembly support
[dependencies]
conifer = "0.1"

Before You Start

Make sure your user is a part of video and input group

sudo addusr video richard 
sudo addusr input richard
# Logout and login

To bring up a virtual terminal that isn't being used for X11, you can usually get to it by typing:

ctrl + alt + f2 # or f3,f4...

Sometimes this can only be done from a login screen.

Hello World

use conifer::prelude::*;

fn main() {
    let white = color_from_rgb(255, 255, 255);
    run(move |canvas, event| {
        // if the user swiped, exit
        if let Event::Swipe(s) = event {
            // if the users finger released, exit
            if s.finished {
                return Ok(RunResponse::Exit);
            }
            // draw something where finger is
            for p in s.points {
                canvas.set_pixel(p.x as usize, p.y as usize, white);
            }
        }
        // let conifer know we want to push framebuffer pixels to screen
        Ok(RunResponse::Draw)
    })
    .expect("something went wrong")
}

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in conifer by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 146

cargo fmt