1
0
A hvif rendered in modern standard C without extra dependencies.
Go to file
Hans-Joerg Schurr 3307b1b22a Add README.md and make index page on Doxygen. Ignore .c files in doc
- Add README.md with some basic information.
- Ignore *.c and config.h in the generated html docu. The docu is
  intended as API documentation.
- Make the README.md the index of the HTML docu.
2020-05-26 23:49:45 +02:00
docs Add README.md and make index page on Doxygen. Ignore .c files in doc 2020-05-26 23:49:45 +02:00
m4 Add build system 2020-02-21 19:12:20 +01:00
src Add documentation on the cairo interface and final newline 2020-05-05 21:33:48 +02:00
.clang-format Add configuration files for dev environment 2020-02-21 18:50:27 +01:00
.gitignore Add some documentation 2020-05-05 00:07:39 +02:00
configure.ac Add support for building html documentation with Doxygen 2020-05-04 23:13:55 +02:00
Makefile.am Add support for building html documentation with Doxygen 2020-05-04 23:13:55 +02:00
README.md Add README.md and make index page on Doxygen. Ignore .c files in doc 2020-05-26 23:49:45 +02:00
shell.nix Add support for building html documentation with Doxygen 2020-05-04 23:13:55 +02:00

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 outside the Haiku context.

It is written in modern standard C. As a goal it should 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

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.