Feature Overview

Cross-compilation

Minart can target JVM, JS and Native backends.

The library includes abstractions to make sure that the same code can run on all backends with no changes, while also making backend-specific changes easy to implement.

Small footprint

External dependencies are kept to a minimum, to keep the resulting binaries small.

For extreme cases, it's also possible to only import a subset of features.

Out of the box graphic features

Minart comes out of the box with some basic graphic features, such as:

  • Double buffered canvas
  • Integer scaling
  • Surface blitting (with a mask)

It also includes Surface views and Planes which makes it possible to manipulate (possibly unbounded) images with familiar operations such as map and flatMap.

Input handling

Minart comes with some helpers to handle Keyboard and pointer input.

Not only is mouse input supported, but touch screen input also comes for free.

Resource loading

A Resource abstraction provides a backend-agnostic way to load and store resources.

Codecs for some image formats (PPM, BMP and QOI) is also included.

In this article