nimAGG is a Nim port of Anti Grain Geometry(AGG)
High Fidelity 2D Graphics. A High Quality Rendering Engine for Nim
This project relying on recent bugfixes of Nim compiler, so you should use devel branch on Github, or at least Nim ver 0.18.1 to compile this project.
Those bugfixes are:
- proc parameter shadowing inside template
- mixin inside generic proc generated by template
- inheriting generic object
- inheriting partial specialization generic object
- type alias via template
- call proc of partial/specialized/some generic object by subtype object
- generic proc forward declaration
- generic object with generic field(s) type obtained via template(WIP)
- system.ashr addition
- deprecated '.' import path handling
build all demos:
cd examples
nim e build.nims
or if you want to build single demo:
cd example
nim c ex_aa_demo
build all demos:
cd examples
nim e -d:platform_null build.nims
build single demo:
cd example
nim c -d:platform_null ex_compositing
the above command will produce executables without gui, and you can call it with:
ex_compositing -v
or
./ex_compositing -v
it will produce screenshot with image format BMP
if you want to use SDL instead of native API, compile like this:
nim c -d:platform_sdl ex_lion
On Linux and macOS, font renderers are freetype and AGG font renderer.
On Windows, you get additional native windows truetype renderer.
If you want to use freetype instead of windows native truetype renderer on windows platform,
please use use_freetype
compiler switch:
nim c -d:use_freetype ex_trans_curve1_ft
nim c -d:use_freetype ex_trans_curve2_ft
nim c -d:use_freetype ex_freetype_test
- These are nimble packages needed to build nimAGG
- And here are wrapped library locations:
- libfreetype(optional)
- libsdl(optional)
You can install this package via nimble
nimble install nimAGG