Giter Site home page Giter Site logo

nimagg's Introduction

nimAGG

nimAGG is a Nim port of Anti Grain Geometry(AGG)

High Fidelity 2D Graphics. A High Quality Rendering Engine for Nim


Build Status Build status

Screenshot

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

How to build demos?

build all demos:

cd examples
nim e build.nims

or if you want to build single demo:

cd example
nim c ex_aa_demo

How to build command line only demos without GUI?

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

Dependencies

Installation

You can install this package via nimble

nimble install nimAGG

nimagg's People

Contributors

jangko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nimagg's Issues

implementing agg array

  • this is high priority, affecting bug fixes and performance
  • also check for agg_basics artefact

remove/relocate code

  • agg-2.5
  • aggdoc -> wiki
  • polyBool -> appveyor, travis pull from its own repo
  • freetype -> idem
  • sdl2 -> idem

implement missing core feature

  • font freetype
  • font win32 true type
  • font cache manager
  • freetype test
  • truetype test
  • trans curve1
  • trans curve 1 ft
  • trans curve 2
  • trans curve 2 ft
  • path storage integer

add platform support to examples

  • ex_lion.nim
  • ex_lion_lens.nim
  • ex_lion_outline.nim
  • ex_logo.nim
  • ex_mol_view.nim
  • ex_multi_clip.nim
  • ex_particle_demo.nim
  • ex_pattern_fill.nim
  • ex_pattern_perspective.nim
  • ex_pattern_resample.nim
  • ex_perspective.nim
  • ex_pixfmt.nim
  • ex_pixfmt16.nim
  • ex_polymorphic_renderer.nim
  • ex_poly_bool.nim
  • ex_pure_api.nim
  • ex_rasterizers.nim
  • ex_rasterizers2.nim
  • ex_rasterizer_compound.nim
  • ex_raster_text.nim
  • ex_rounded_rect.nim
  • ex_scanline_boolean.nim
  • ex_scanline_boolean2.nim
  • ex_simple_blur.nim
  • ex_svg_circle.nim
  • ex_svg_test.nim
  • ex_test_poly_bool.nim
  • ex_trans_curve1.nim
  • ex_trans_curve2.nim
  • ex_trans_polar.nim
  • ex_truetype_test.nim

init ... aux removal

init ... aux need to be removed after Nim's bug 5540 fixed

  • renderer markers
  • line image pattern
  • LineImagePatternPow2
  • LineInterpolatorImageAux
  • renderer primitives
  • renderer raster h text solid
  • renderer raster v text solid
  • renderer scanline aa solid
  • span gradient image
  • span image filter gray
  • span image filter rgb
  • span image filter rgba
  • font cache manager

implement platform support

  • base platform support
  • win32 bmp
  • win32 platform support
  • null platform support
  • sdl platform support
  • x11 platform support
  • mac platform support
  • mac pmap

perspective bug

  • image perspective
  • pattern perspective
  • gradient contour -> auto contour

gradient contour bug

  • both contour
  • and auto contour show unwanted artefact
  • rotate 90 degree went invisible

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.