Hans-Joerg Schurr
56f7176c91
- Build a library and a binary. - Remove lto for now. - Remove some other compiler arguments. - Mention that cairo is a dependency for now in README. |
||
---|---|---|
docs | ||
m4 | ||
src | ||
.clang-format | ||
.gitignore | ||
configure.ac | ||
LICENSE | ||
Makefile.am | ||
README.md | ||
shell.nix |
A simple library to render Haiku Vector Icons
⚠️ Do not use this library. It is not ready yet.
The Haiku operating system uses a custom format to represent vector icons. The Haiku Vector Icon Format (hvif) is optimized to create tiny files that can be saved with the file metadata. For a good technical overview of the format see this blog post by Leah Hanson. The goal of this library is to allow the usage of this format independent of the Haiku ecosystem.
The library is written in modern standard C and MIT licensed. When
finished it will feature a parser and rasterizer without any dependencies
beyond libc
. Furthermore, a toy tool to convert hvif files into png
files is included.
The author is not associated with the Haiku project.
Current State
The library is currently under heavy development. The current parser should be able to parse hvif files created with current Haiku builds, but is mostly untested. There is no standalone rasterizer yet, but an experimental rasterizer based on cairo is included. The purpose of this rasterizer is testing. It is not feature complete, but renders most real world icons reasonably well.
The next step is the preparation of a testing infrastructure. This should be done before work on the rasterizer begins.
Compiling
The build system is standard auto tools. To compile on a fresh clone run:
$ autoreconf -i
$ ./configure
$ make -j
Since no sensible functionality independent of cairo is implemented as of now,
cairo is a hard dependency. On NixOS the included shell.nix
script can be
used to bring the dependencies and a couple of development tools intos cope.
HTML documentation can be generated with make html
if Doxygen is
installed.
Contribution
Contributions are very welcome. Please send patches or bugreports to
commits@schurr.at
. If you are unfamiliar with the Email based git
workflow, see this excellent tutorial.