Giter Club home page Giter Club logo

ward's Introduction

icon

WARD: WARD 'Aint Really for Drawing

alt  height=

No-nonsense infinite whiteboard, in the suckless tradition.

This lacks:

  • multiple types of brushes.
  • layers.
  • save/load.
  • custom palettes
  • ... custom anything, really.
  • mouse support.

This features:

  • Rock solid framerate.
  • Infinite undo/redo.
  • infinite whiteboard with panning.
  • Wacom tablet pressure sensitive drawing.
  • quick minimap view to view the entire whiteboard at a glance.
  • Not written using web tech: ~800 lines of readable c++ code.
  • grid background
  • Draw points with a fixed time lag, then interpolate thickness of the line from 0 to how wide it should be, offset from the time lag.
  • Take a rolling average both backwards and fowards.

shortcuts:

  • Q: undo
  • W: redo
  • E: toggle E raser
  • R: R otate to next color.
  • lower wacom button + drag: pan.
  • upper wacom button: toggle overview. Tap to move to a location in the overview. Tap upper button in overview mode to quit overview without moving.
  • Color selection: hover pointer over color in color pot in color palette at bottom row.
  • Eraser selection: hover pointer over eraser in color palette at bottom left.

The code uses:

  • the EasyTab library to work with Wacom tablets.
  • The Milton project as heavy reference on how to work with tablets.
  • SDL2 for rendering.
  • Cairo-gl for anti aliased vector graphics.
  • Spatial hashing to quickly add and delete brush strokes.
  • Lazy repainting of the entire frame upon change..
  • Wishes to use FastUIDraw for an even faster backend than cairo.

Build with CMake

$ mkdir build && cd build && cmake ../ && make -j

Build with Meson

$ meson build && cd build && ninja && ./ward

ward's People

Contributors

bollu avatar zubairabid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

zubairabid elamdf

ward's Issues

Instructions for Installation of all dependencies

I am new to this domain of C++ and so the dependencies are quite unfamiliar to me. Could you tell how exactly to install them?

For example, I installed SDL like so: sudo apt install libsdl2-dev libsdl2-2.0-0 -y but I still get the error:

CMake Error at CMakeLists.txt:12 (add_executable):
  Target "ward" links to target "SDL2::SDL2" but the target was not found.
  Perhaps a find_package() call is missing for an IMPORTED target, or an
  ALIAS target is missing?


CMake Error at CMakeLists.txt:12 (add_executable):
  Target "ward" links to target "SDL2::SDL2main" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.