Coder Social home page Coder Social logo

agg-2.6's Introduction

Anti-Grain Geometry Library

Anti-Grain Geometry library, written by Maxim Shemanarev in C++. It is an Open Source, 2D vector graphics library. Agg produces pixel images in memory from vectorial data.

About the Project

Anti-Grain Geometry (AGG) is an Open Source, free of charge graphic library, written in industrially standard C++. The terms and conditions of use AGG are described on The License page. AGG doesn't depend on any graphic API or technology. Basically, you can think of AGG as of a rendering engine that produces pixel images in memory from some vectorial data. But of course, AGG can do much more than that. The ideas and the philosophy of AGG are:

  • Anti-Aliasing.
  • Subpixel Accuracy.
  • The highest possible quality.
  • High performance.
  • Platform independence and compatibility.
  • Flexibility and extensibility.
  • Lightweight design.
  • Reliability and stability (including numerical stability).
  • Below there are some key features (but not all of them):
  • Rendering of arbitrary polygons with Anti-Aliasing and Subpixel Accuracy.
  • Gradients and Gouraud Shading.
  • Fast filtered image affine transformations, including many interpolation filters (bilinear, bicubic, spline16, spline36, sinc, Blackman).
  • Strokes with different types of line joins and line caps.
  • Dashed line generator.
  • Markers, such as arrowheads/arrowtails.
  • Fast vectorial polygon clipping to a rectangle.
  • Low-level clipping to multiple rectangular regions.
  • Alpha-Masking.
  • A new, fast Anti-Alias line algorithm.
  • Using arbitrary images as line patterns.
  • Rendering in separate color channels.
  • Perspective and bilinear transformations of vector and image data.
  • Boolean polygon operations (and, or, xor, sub) based on Alan Murta's General Polygon Clipper.

Anti-Grain Geometry contains many interactive Demo examples that are platform independent too, and use a simple platform_support class currently implemented for Win32, X11, SDL, Nano-X, MacOS, AmigaOS and BeOS. One of the examples is an SVG Viewer.

Cloned with history on May 6, 2019 (rev r132) from the official Sourceforge AGG project at https://svn.code.sf.net/p/agg/svn.

Building

The library examples show the amazing capabilities of the AGG C++ template library. There are scripts for autogen and configure in the source directory, but haven't found these to work well, and they're not needed to build the demos anyways. X11, SDL2, Nano-X and Win32 are supported for the demo builds, which visually show various complex rendering pipelines in the library. These should build on OSX and Linux (OSX is currently tested). There is additional untested platform support for MacOS Carbon, BeOS and AmigaOS.

To build the demos for X11, first check the Makefile in agg-2.6/agg-src/Makefile.in.$(uname) corresponding to your system's uname and set the location of the X11 -Iinclude and -Llib paths. Then:

cd agg-2.6/agg-src/examples/X11
make
(if have Freetype2 installed, 'make all' will build further examples)

Likewise, to build the demos for SDL2, first check the Makefile in agg-2.6/agg-src/Makefile.in.$(uname).SDL2 corresponding to your system's uname and set the location of the SDL2 -Iinclude and -Llib paths. Then:

cd agg-2.6/agg-src/examples/SDL2
make

To build the demos for Nano-X, first check the Makefile in agg-2.6/agg-src/Makefile.in.$(uname).nano-X corresponding to your system's uname and set the location of the nano-X -Iinclude and -Llib paths. For instance, /path/to/microwindows/src/include for include, and /path/to/microwindows/src/lib for the lib directory. Then:

cd agg-2.6/agg-src/examples/nano-X
make
(if have Freetype2 installed, 'make all' will build further examples)
./runapp line_patterns (to run demo app and nano-X server)

Roadmap

The official AGG site remains on Sourceforge, but doesn't see much activity. With www.antigrain.com recently inoperational, I thought a GitHub repo was in order, as the project demos stopped building with the site down. The demos now build without the website.

I have created PDFs of all of Maxim's articles from the previous website and may put those up as well, as they greatly aid in understanding the library.

agg-2.6's People

Contributors

ghaerr avatar

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.