There is no tar.gz package [r145] to download, this is a big problem, there is no simple way to use svn to download, it makes it difficult to create packages to use in distros. Could you make a tar.gz package available?
Fix some warnings from the Debian build environment:
When I made my initial comment I hadn't reviewed all the code to see the uses of the tags variable. I just thought that doing an explicit cast on a couple of lines could cause problems if a FreeType method was invoked passing tags as a parameter, since, depending on the version, errors could be generated. I prefer the #if/#endif block solution as it leaves the code cleaner even though I hate this type of macro solutions. Thank you.
Update gpc to latest (and final) version, now under MIT license
Alternate approach to Freetype 2.13.3 change, use a typedef instead of a cast
The compiler complains about implicit casts from char* to unsigned char*, but not explicit casts. This is what set this all in motion. I maintain the Debian package for AGG and Debian is switching to Freetype 2.13.3 from Freetype 2.12.1. I don't know why the Freetype developers think that it is OK to have an API change on a patch release. Explicit casting from unsigned char* to char* or from char* to unsigned char* is legal and does not generate an error. I have tested both directions with both versions...
I have not tested but I would expect a compiler complain: error: invalid conversion from ‘unsigned char*’ to ‘char*’ [-fpermissive] or error: invalid conversion from ‘char*’ to ‘unsigned char*’ [-fpermissive] depending on agg/FreeType parameters combination.
If agg is linked with a previous version of FreeType there is now a problem. r402 should be reverted and fixed with something as: // Freetype version 2.13.3 and later uses unsigned char for tags #if (FREETYPE_MAJOR > 2) || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR > 13) || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 13 && FREETYPE_PATCH >= 3) unsigned char* tags; #else char* tags; #endif
I have compiled r142 with Freetype 2.12.1 and Freetype 2.13.3 and it works fine. How does casting to char* cause a problem?
If agg is linked with a previous version of FreeType there is now a problem. r402 should be reverted and fixed with something as: ~~~ // Freetype version 2.13.3 and later uses unsigned char for tags if (FREETYPE_MAJOR > 2) || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR > 13) || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 13 && FREETYPE_PATCH >= 3) unsigned char* tags; else char* tags; endif
FreeType changed a char* to unsigned char*, add appropriate cast
Forgot several switch case fallthrough.
Fixed a large number of warnings when compiled under C++23 with -Wall
Fix member initialization order
Why file copying uses modified BSD license, if repository uses MIT license?
To add to this, the fact that the SVN switched ot a 2.7 release (in r134) but then there never was a formal release of that (the repository has no tags, and there is no released source archive) is also a little confusing. Should we assume r134 is the 2.7.0 release?
Questions about the project and the future
Replace hard-coded math constants with cmath constants
Addressed in r136.
Successive assignment of variable 'da' in agg_math_stroke.h
Patch applied in r136.
[HAIKU] PVS 730: initialize m_distance_tolerance_square
Fixed in r136.
Fix multiple definitions linker error
Patch applied (r139). Thanks for submitting!
Fixed multiple-definition linker errors (https://sourceforge.net/p/agg/patches/6/).
Fix multiple definitions linker error
Remove dependence on antigrain.com for the examples
Undo previous, incorrect fix.
The code should be changed to use pod_allocator instead.
Some minor fixes requested by users
M_SQRT1_2 is from the POSIX standard, not any C or C++ standard. I can update the file with a more precise version of the constant.
Fix off-by-one error in mol_view example
I'm also maintaining my own fork at https://github.com/cppfw/agg I have done some changes there too (check pull requests).
I know of this Git repo which has some commits against the GPL 2.5 version. I think it's just an unofficial fork, but it's something at least. https://github.com/timothytylee/agg/commits/master And this one is listed as 2.6 and has even more commits and more recent changes. https://github.com/ghaerr/agg-2.6/commits/master
I know of this Git repo which has some commits against the GPL 2.5 version. I think it's just an unofficial fork, but it's something at least. https://github.com/timothytylee/agg/commits/master
Does this project accept patches? Or more to the point if I post one in the patches page here, is there someone who could merge it or at least reject it should anything be wrong with?
Your understanding is correct. I am not aware of any actively maintained fork of the GPL'd agg-2.5.
Jim, Thanks for the quick response and the link. Just to clarify that I understood correctly -- all the changes made on this repo, for example version 2.7 https://sourceforge.net/p/agg/svn/134/ continue to retain the old permissive license. Do you know if the forked agg-2.5 version matained somewhere else? Thanks, Sakthi
The sourceforge project is based on AGG 2.4 and retains the permissive license. Version 2.5 was released with exactly the same code as 2.4 but with a GPL license. No futher work was ever done on version 2.5 to my knowledge. See http://agg.sourceforge.net/antigrain.com/news/index.html
Hi, What is the licence on AGG? On sourceforge project page, its listed as MIT license but on the below URl it is listed 2.5 is GPL. http://agg.sourceforge.net/antigrain.com/license/index.html Thanks
Update library revision from 2.6.0 to 2.7.0
Replicate change from r57 made in pixfmt_alpha_blend_rgba to pixfmt_custom_blend_rgba
After having another close look, I must correct myself: Only now I noticed the changed done on the SVN repo here between 2014 and 2018 - seems to be a similar amount of changes to those that happened on github and never made their way back into the main subversion repo. I guess, it would be worth consolidating these changes.
The main developer abandoned the project a long time ago, but the quality is still so good that it is worth preserving. Back in 2014, I carefully revised and merged all the free-floating forks of the BSD-licensed version 2.4 into one git repository: https://github.com/NNemec/antigrain At that time, I fixed all compiler warnings and various issues to bring the library to a state where I could successfully use it in a commercial product. To my knowledge, that merge still is the highest-quality fork...
[HAIKU] PVS 730: initialize m_distance_tolerance_square
How is the maintainer-ship of this project going? Are people still working on stuff here? Does the project need to be moved to a different platform to get more eyes? I'm mostly concerned by the antigrain.com website which seems to have been squatted and not working.
Successive assignment of variable 'da' in agg_math_stroke.h
Replace hard-coded math constants with cmath constants
Update version to 2.6.0. Use modern macros for configure.ac
Replace all C standard headers with C++ equivalent headers, use std:: namespace everywhere (except examples)
Always check the return value of fread()
Bug fixes and enhancements requested by matplotlib developers
I am just wondering if you guys considered to move the project to github? The last week I could not access agg on sourceforge at all since sourceforge was basically down the whole week. And the patch process is a lot simpler on github (i.e. pull request).
Thanks a lot. I will try it out.
If you want to do compositing, the (destination) layers need to be pixfmt_rgba32_pre. You can find a brief explanation in the version 2.2 release notes. By the way, rgba(1, 1, 1, 0) is not valid in premultiplied space, since each rgb component should be <= alpha.
Hi, I have a piece of code that was originally written as directly draw lines, fonts, polygons with anti-aliasing on an image. But later on, we decided to use layer approach which is the following create a layer, and draw that layer. we can have multiple layers... and then compose all the layers onto a white background image to get a final image. The problem is, because of the alpha handling (we clear each layer to rgba(255,255,255,0)), it effectively blends the transparency twice, resulting incorrect...
I quite agree. By convention, preprocessor symbols should be in uppercase, and introducing such a symbol to represent a very large number seems especially inadvisable when one could just use FLT_MAX (or std::numeric_limits<float>::max). The file gradients_contours.cpp contains more lowercase preprocessor symbols, which I have either renamed to uppercase or replaced with const variables. SVN revision 128. Thanks for reporting the issue.
Removed inappropriate use of lowercase preprocessor symbols.
When building gradients_ountour.cpp using cmake, I encountered the following error message In file included from /c/dr/svg/agg-2.4/examples/gradients_contour.cpp:25:0: /c/dr/svg/agg-2.4/include/agg_span_gradient_contour.h:37:18: error: expected unqualified-id before numeric constant #define infinity 1E20 My build environment is cygwin64 with $ gcc --version gcc (GCC) 6.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty;...
Bug fixes from matplotlib's vendored copy of Agg
Hi, I am new to AGG.How to render GIS(Geographic Information System) vector data or GIS shape file using AGG? What are the APi's I need to call to achieve this. Thanks in advance.
Improve svg_test SVG viewer
Add path_storage::align_path() for fixing slightly misaligned closed paths
Renaming configure.in to configure.ac
Add missing files to agg-2.4/*/Makefile.am, convert files from DOS line endings to Unix
Suppress spurious uninitialized variable warnings from gcc 5.4
Remove assumption that ints are 32-bit w.r.t. min/max int
Changed some signed arithmetic to unsigned to eliminate possible undefined behavior
Removed unused compositing mode parameter for the four compositing adaptors that do not use it.
Fix crash in libagg when very, very long lines are drawn
Remove a superfluous method that causes build failures on Debian systems using clang
SourceForge project name is now "agg".
Adding original content from antigrain.com.
Deleting unneeded files.
Fixed bug exposed by g++ warning "unused parame...
Fixed g++ warning "comparison is always false d...
Fixed g++ warning "enumeral and non-enumeral ty...
Fixed g++ warning "typedef ‘src_color_type’ loc...
Fixed warnings about unused parameters when com...
Fixed error in scale adjustment, due to use of ...
On 24 April 2015 at 15:53, Graeme Geldenhuys graemeg@users.sf.net wrote: I've just...
I've just updated AGG to the latest r106 and compiled in under FreeBSD 10.1. I then...
Fixed error in "opacity" function (patch from M...
Fixed some build errors/warnings in Clang (patc...
Switched implementation of sRGB conversion from...
Hi Julien, It's a bit of a mess, but for historical reasons the mailing list is at...
Hello, I'm creating a Buildroot package for your project and I would like to know...
Fixed breakage from backing out from rev 99 cha...
Backing out from rev 99 changes.
Added "explicit" specifier to constructors that...
Avoid potential compiler warning about converti...
Removed "Step" and "Offset" template parameters...
Fixed a typo and compiler warnings about conver...
Added missing "plain" pixel formats.
Added missing conversions for gray16->rgba32 an...