|
Agar is a modern open-source,
cross-platform toolkit for graphical
applications implemented in C, C++, Perl and Ada (with bindings to other
languages in development).
Designed for ease of integration, it follows the philosophy of building
the GUI around the application and not the other way around.
Unlike most other GUI toolkits, Agar takes maximum advantage of hardware
graphics acceleration when it is available via OpenGL, but it also
supports traditional framebuffer interfaces such as
SDL direct video.
The Agar API is entirely thread-safe when Agar is compiled with optional
threads support.
The distribution includes two libraries:
Agar-GUI implements the base Agar GUI
system and a comprehensive set of
standard widgets.
Agar-GUI is object-oriented and relies heavily on inheritance, virtual
functions and virtual filesystems. This functionality is implemented by
the GUI-independent Agar-Core library, which also
includes various utility and portability interfaces.
The Agar distribution also includes some more specialized libraries aimed
at specific applications (see below).
Agar is free software. Its source code is freely usable and re-usable by
everyone under a BSD license, which allows
use in commercial applications free of charge.
Agar is stable, well-maintained and has been growing organically since
early 2002.
The Agar project is sponsored by
Csoft.net:
Security conscious, high-availability Unix hosting on redundant
server arrays.
|
|
The Agar GUI library is designed to work under almost any platform that
provides a graphic display and some kind of input device.
Currently, there are drivers for
SDL and
OpenGL.
The OpenGL mode makes efficient use of hardware acceleration.
The API is simple, object-oriented and unobtrusive.
For instance, the need for event handler functions is reduced to
a minimum through the use of bindings.
Implementing new widgets (or derived widget classes) as part of a
third-party application or library is an easy, straightforward task.
|
|
A general-purpose math library with focus on performance and portability.
It implements the most common structures and operations in basic linear
algebra, complex numbers and computational geometry. The library can be
compiled with support for different architecture extensions (e.g., SSE),
and different solver backends (e.g.,
Sparse), and
the interface remains consistent across them.
This library also extends Agar-GUI with extra variable binding types
and widgets such as
M_Plotter.
|
|
The Agar-DEV library is normally only included in debug builds and
used from applications compiled in debug mode.
It implements a number of tools useful to developpers.
|
|
|
A library for generating and manipulating feature-based pixmap
elements (either static or animated). It uses an image format which allows
directives, transformations and instancing of graphical elements.
|
|
A simple 2D vector graphics library which allows developers to specify
hierarchical sketches consisting of elements such as lines, curves and
text. It was designed mainly for editors (the schematics editor in
in Edacious is an
example application). The library is extensible, such that new sketch
elements may be implemented as part of your own application or library.
It includes a powerful visualization widget for Agar-GUI
called VG_View.
For geometrically-constrained technical drawings, the SK library
(in FreeSG) is a better option than
Agar-VG (although still under development).
|
|
| 10/23/2009 |
Most of the major code changes for the Agar 1.4 release have been
committed to Subversion. Please test! Since Agar 1.4 includes new
drivers interfacing with low-level graphics systems, it requires
thorough testing under as many different platforms as possible.
|
| 08/30/2009 |
New stable release: 1.3.4 (Pandemonic Incantation)
[
Download |
What's new
]
|
| 06/03/2009 |
Due to some changes in the build system, users of the latest
development version of Agar (as of r8187) who rely on the
make proj feature, must upgrade to
BSDBuild-2.5.
|
| 01/05/2009 |
New patch to stable: 005_windows.patch
(Fix AG_WindowNewNamed() and AG_WINDOW_KEEPBELOW features)
|
| 12/25/2008 |
New patch to stable: 003_table.patch
(Fix bug related to embedded widgets in AG_Table)
|
| 10/30/2008 |
New stable release: 1.3.3 (Blackened Soil Remains)
[
Download |
What's new
]
|
| 03/02/2008 |
New stable release: 1.3.2 (Landscapes Turn To Ash)
[
Download |
What's new
]
|
| 03/02/2008 |
Created
agar-commits
mailing list for automated commit notifications of the Agar source
code exlusively.
Note that the previous source-diff list will continue to receive
notices as well. The new list provides a RSS feed.
|
[Previous announcements]
|
|
If you have any questions, comments or suggestions, don't hesitate to
contact the maintainer.
There are also forums and an
#agar channel on
irc.freenode.net
(here is a web interface to it).
Your feedback and contributions
help us build a better library with better documentation.
Don't hesitate to send us your bug reports and enhancement/feature
requests with
Bugzilla.
|
"A display connected to a digital computer gives us a chance to gain
familiarity with concepts not realizable in the physical world. It is
like a looking glass into a mathematical wonderland."
-- Ivan Sutherland
|