diff --git a/README.md b/README.md index fac13fc..5475381 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,18 @@ the file metadata. For a good technical overview of the format see [this](http://blog.leahhanson.us/post/recursecenter2016/haiku_icons.html) blog post by Leah Hanson. The goal of this library is to allow the usage of this format independent of the Haiku ecosystem. +The best way to create new icons is to use the +[Icon-O-Matic](https://www.haiku-os.org/docs/userguide/en/applications/icon-o-matic.html) +tool that ships with Haiku. 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* +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 +## Current Status The library is currently under heavy development. The current parser should be able to parse *hvif* files created with current Haiku builds, @@ -27,11 +30,38 @@ 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. +be done before work on the standalone rasterizer begins. -## Compiling +### Example -The build system is standard auto tools. To compile on a fresh clone run: +The `File_GoogleFS` icon from the Haiku distribution as rendered by Haiku: + +![](docs/examples/File_GoogleFS_orig.png) + +and as rendered with the current cairo based rasterizer: + +![](docs/examples/File_GoogleFS_hviflight.png) + +While not perfect, the result is quite decent. + +## Building + +### Release Distribution + +The build system is standard auto tools. When downloading a release distribution +the usual +```bash +$ ./configure +$ make -j +``` +and `make install` as root should work. Beside a recent C compiler and +`pkg-config` the *cairo* library is required for now. Since no sensible +functionality independent of *cairo* is implemented as of now, cairo is +a hard dependency. + +### Development + +To compile a freshly cloned repository run: ```bash $ autoreconf -i @@ -39,9 +69,10 @@ $ ./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. +On NixOS the included `shell.nix` script can be used to bring the +dependencies and a couple of development tools into scope. + +### Documentation HTML documentation can be generated with `make html` if Doxygen is installed. diff --git a/docs/examples/File_GoogleFS_hviflight.png b/docs/examples/File_GoogleFS_hviflight.png new file mode 100644 index 0000000..c4b5f03 Binary files /dev/null and b/docs/examples/File_GoogleFS_hviflight.png differ diff --git a/docs/examples/File_GoogleFS_orig.png b/docs/examples/File_GoogleFS_orig.png new file mode 100644 index 0000000..e97eb88 Binary files /dev/null and b/docs/examples/File_GoogleFS_orig.png differ diff --git a/docs/examples/ICON_LICENSE b/docs/examples/ICON_LICENSE new file mode 100644 index 0000000..74580a2 --- /dev/null +++ b/docs/examples/ICON_LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2007-2020 Haiku, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.