From 548aae0dee27cdc0173647d72316b7f1cec7c7a2 Mon Sep 17 00:00:00 2001 From: Jesse Keating Date: Sun, 20 Apr 2008 11:56:08 +0000 Subject: [PATCH 01/26] Initialize branch F-9 for agg --- branch | 1 + 1 file changed, 1 insertion(+) create mode 100644 branch diff --git a/branch b/branch new file mode 100644 index 0000000..1c26f78 --- /dev/null +++ b/branch @@ -0,0 +1 @@ +F-9 From 189c52d2d975157d62939015772fbc7db289a2ed Mon Sep 17 00:00:00 2001 From: Jesse Keating Date: Tue, 24 Feb 2009 00:17:37 +0000 Subject: [PATCH 02/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index daac311..3b38381 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 6%{?dist} +Release: 7%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Mon Feb 23 2009 Fedora Release Engineering - 2.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + * Tue Feb 5 2008 Patrice Dumas - 2.5-6 - remove non free files - minor cleanups From ea52d58c9be55d5233ce659f876b2c9cfa3682ae Mon Sep 17 00:00:00 2001 From: Jesse Keating Date: Fri, 24 Jul 2009 16:38:33 +0000 Subject: [PATCH 03/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 3b38381..a91fbcb 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 7%{?dist} +Release: 8%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Fri Jul 24 2009 Fedora Release Engineering - 2.5-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + * Mon Feb 23 2009 Fedora Release Engineering - 2.5-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild From 9aa1b984182d97b278465d1332d52214c1c4447a Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Wed, 25 Nov 2009 22:38:44 +0000 Subject: [PATCH 04/26] Fix typo that causes a failure to update the common directory. (releng #2781) --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 872abda..718755b 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ # Makefile for source rpm: agg -# $Id: Makefile,v 1.1 2005/11/24 11:57:42 caolanm Exp $ +# $Id: Makefile,v 1.2 2007/10/15 16:54:47 scop Exp $ NAME := agg SPECFILE = $(firstword $(wildcard *.spec)) define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done endef MAKEFILE_COMMON := $(shell $(find-makefile-common)) From 249a3e0862e86b78c540dff3fa8904c711f90456 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Thu, 26 Nov 2009 01:25:31 +0000 Subject: [PATCH 05/26] Fix typo that causes a failure to update the common directory. (releng #2781) --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 872abda..718755b 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ # Makefile for source rpm: agg -# $Id: Makefile,v 1.1 2005/11/24 11:57:42 caolanm Exp $ +# $Id: Makefile,v 1.2 2007/10/15 16:54:47 scop Exp $ NAME := agg SPECFILE = $(firstword $(wildcard *.spec)) define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done endef MAKEFILE_COMMON := $(shell $(find-makefile-common)) From a07f226782fc6f3a2559d10d3ad38003fcccd897 Mon Sep 17 00:00:00 2001 From: Kevin Kofler Date: Fri, 29 Jan 2010 04:58:27 +0000 Subject: [PATCH 06/26] - also remove include/agg_conv_gpc.h as it also carries a copy of the non-Free GPC license (upstream also recommends removing that file under http://www.antigrain.com/license/index.html#toc0005) (#559611) --- agg-generate-tarball.sh | 2 ++ agg.spec | 7 ++++++- sources | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/agg-generate-tarball.sh b/agg-generate-tarball.sh index 9b13619..c6f2ebd 100644 --- a/agg-generate-tarball.sh +++ b/agg-generate-tarball.sh @@ -13,5 +13,7 @@ tar xzf $file for file in copying.txt VERSIONS.TXT gpc.c gpc.h; do rm agg-${version}/gpc/$file done +rm agg-${version}/include/agg_conv_gpc.h +sed -i -e 's/agg_conv_gpc\.h/ /g' agg-${version}/include/Makefile.am rm -f $result tar czf $result $dir diff --git a/agg.spec b/agg.spec index a91fbcb..ba0a144 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 8%{?dist} +Release: 9%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,11 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Fri Jan 29 2010 Kevin Kofler - 2.5-9 +- also remove include/agg_conv_gpc.h as it also carries a copy of the non-Free + GPC license (upstream also recommends removing that file under + http://www.antigrain.com/license/index.html#toc0005) (#559611) + * Fri Jul 24 2009 Fedora Release Engineering - 2.5-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild diff --git a/sources b/sources index 555ff79..a2e7017 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -2ecb9b5e3ba333157265fb0b308dc857 agg-free-2.5.tar.gz +6fa25317a3024a186d9a93d1513ca9fa agg-free-2.5.tar.gz From 30b1d2461acd271f0d3467cc48217bfd78b75fad Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 28 Jul 2010 09:38:08 +0000 Subject: [PATCH 07/26] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- 2 files changed, 21 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index 718755b..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: agg -# $Id: Makefile,v 1.2 2007/10/15 16:54:47 scop Exp $ -NAME := agg -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attempt a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) From 0c46786f6afd82eac04c51b7d6afe586b9026fb9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 28 Jul 2010 09:38:10 +0000 Subject: [PATCH 08/26] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- branch | 1 - 3 files changed, 22 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile delete mode 100644 branch diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index 718755b..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: agg -# $Id: Makefile,v 1.2 2007/10/15 16:54:47 scop Exp $ -NAME := agg -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attempt a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/branch b/branch deleted file mode 100644 index 1c26f78..0000000 --- a/branch +++ /dev/null @@ -1 +0,0 @@ -F-9 From d812656fb2cc4bcf96f7581bc0dd94d47e26f489 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Mon, 7 Feb 2011 18:36:23 -0600 Subject: [PATCH 09/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index ba0a144..3d3da4e 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 9%{?dist} +Release: 10%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Mon Feb 07 2011 Fedora Release Engineering - 2.5-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + * Fri Jan 29 2010 Kevin Kofler - 2.5-9 - also remove include/agg_conv_gpc.h as it also carries a copy of the non-Free GPC license (upstream also recommends removing that file under From 9836cdf16a578150d67986ebd193eb881c8befdc Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 26 Oct 2011 18:34:41 -0500 Subject: [PATCH 10/26] - Rebuilt for glibc bug#747377 --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 3d3da4e..4e40c86 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 10%{?dist} +Release: 11%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Wed Oct 26 2011 Fedora Release Engineering - 2.5-11 +- Rebuilt for glibc bug#747377 + * Mon Feb 07 2011 Fedora Release Engineering - 2.5-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild From bcbf726369348f282c76d0c3104057139e027af8 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 26 Oct 2011 19:44:46 -0500 Subject: [PATCH 11/26] - Rebuilt for glibc bug#747377 --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 3d3da4e..4e40c86 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 10%{?dist} +Release: 11%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Wed Oct 26 2011 Fedora Release Engineering - 2.5-11 +- Rebuilt for glibc bug#747377 + * Mon Feb 07 2011 Fedora Release Engineering - 2.5-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild From c310a762f80ce76d6e68bc717535dfb550a3e03b Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 26 Oct 2011 19:46:27 -0500 Subject: [PATCH 12/26] - Rebuilt for glibc bug#747377 --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 4e40c86..78c6ae9 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 11%{?dist} +Release: 12%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Wed Oct 26 2011 Fedora Release Engineering - 2.5-12 +- Rebuilt for glibc bug#747377 + * Wed Oct 26 2011 Fedora Release Engineering - 2.5-11 - Rebuilt for glibc bug#747377 From 3fe384c81892a4b0a69dfd97e2db5c8670547615 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 12 Jan 2012 15:04:51 -0600 Subject: [PATCH 13/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 78c6ae9..2bcd5dd 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 12%{?dist} +Release: 13%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Thu Jan 12 2012 Fedora Release Engineering - 2.5-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + * Wed Oct 26 2011 Fedora Release Engineering - 2.5-12 - Rebuilt for glibc bug#747377 From e4ee72211bca171e3219e9457fd0abef57751e20 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 26 Jul 2012 23:37:09 -0500 Subject: [PATCH 14/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 2bcd5dd..8cbe013 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 13%{?dist} +Release: 14%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Fri Jul 27 2012 Fedora Release Engineering - 2.5-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Thu Jan 12 2012 Fedora Release Engineering - 2.5-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild From 11fdb12fd80bc864e63512881f760a71ed10a74c Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 13 Feb 2013 10:22:21 -0600 Subject: [PATCH 15/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 8cbe013..0b28e7b 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 14%{?dist} +Release: 15%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -83,6 +83,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Wed Feb 13 2013 Fedora Release Engineering - 2.5-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + * Fri Jul 27 2012 Fedora Release Engineering - 2.5-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild From 044f374c0c135ed3845d5404258b9a717d62bd5f Mon Sep 17 00:00:00 2001 From: Jon Ciesla Date: Fri, 22 Feb 2013 09:47:24 -0600 Subject: [PATCH 16/26] Fix FTBFS. --- agg-2.5-autotools.patch | 11 +++++++++++ agg.spec | 7 ++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 agg-2.5-autotools.patch diff --git a/agg-2.5-autotools.patch b/agg-2.5-autotools.patch new file mode 100644 index 0000000..b273477 --- /dev/null +++ b/agg-2.5-autotools.patch @@ -0,0 +1,11 @@ +--- configure.in~ 2013-02-22 09:30:00.000000000 -0600 ++++ configure.in 2013-02-22 09:30:49.030777571 -0600 +@@ -8,7 +8,7 @@ + AC_PROG_CC + AC_PROG_CXX + AC_ISC_POSIX +-AM_C_PROTOTYPES ++#AM_C_PROTOTYPES + if test "x$U" != "x"; then + AC_MSG_ERROR(Compiler not ANSI compliant) + fi diff --git a/agg.spec b/agg.spec index 0b28e7b..5ad1337 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 15%{?dist} +Release: 16%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -19,6 +19,7 @@ BuildRequires: automake, libtool, libX11-devel, freetype-devel, SDL-devel Patch0: agg-2.4-depends.patch Patch1: agg-2.5-pkgconfig.patch +Patch2: agg-2.5-autotools.patch %description A High Quality Rendering Engine for C++. @@ -38,6 +39,7 @@ using agg. %setup -q %patch0 -p1 -b .depends %patch1 -p1 -b .pkgconfig +%patch2 -p0 -b .autotools aclocal autoheader autoconf @@ -83,6 +85,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Fri Feb 22 2013 Jon Ciesla - 2.5-16 +- Fix FTBFS, BZ 913873. + * Wed Feb 13 2013 Fedora Release Engineering - 2.5-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild From 6ce6c210cb028b8bf42ac02074fee4417fa6beee Mon Sep 17 00:00:00 2001 From: Jon Ciesla Date: Mon, 10 Jun 2013 08:06:39 -0500 Subject: [PATCH 17/26] Mapnik agg patches. --- agg.spec | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 5ad1337..d1eb696 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 16%{?dist} +Release: 17%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -21,6 +21,18 @@ Patch0: agg-2.4-depends.patch Patch1: agg-2.5-pkgconfig.patch Patch2: agg-2.5-autotools.patch +Patch101: 0001-Fix-non-terminating-loop-conditions-when-len-1.patch +Patch102: 0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch +Patch103: 0003-Get-coordinates-from-previous-vertex-if-last-command.patch +Patch104: 0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch +Patch105: 0005-Remove-VC-6-workaround.patch +Patch106: 0006-Implement-grain-merge-blending-mode-GIMP.patch +Patch107: 0007-Implement-grain-extract-blending-mode-GIMP.patch +Patch108: 0008-Declare-multiplication-and-division-operators-as-con.patch +Patch109: 0009-Add-a-static-identity-transformation.patch +Patch110: 0010-Add-renderer_scanline_aa_alpha.patch +Patch111: 0011-Avoid-division-by-zero-in-color-burn-mode.patch + %description A High Quality Rendering Engine for C++. @@ -40,6 +52,17 @@ using agg. %patch0 -p1 -b .depends %patch1 -p1 -b .pkgconfig %patch2 -p0 -b .autotools +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%patch105 -p1 +%patch106 -p1 +%patch107 -p1 +%patch108 -p1 +%patch109 -p1 +%patch110 -p1 +%patch111 -p1 aclocal autoheader autoconf @@ -85,6 +108,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Sun May 19 2013 Tom Hughes - 2.5-17 +- Add patches from mapnik + * Fri Feb 22 2013 Jon Ciesla - 2.5-16 - Fix FTBFS, BZ 913873. From 599c4ed6ec6dac3aba9e3181ca86e40fcf3cd106 Mon Sep 17 00:00:00 2001 From: Jon Ciesla Date: Mon, 10 Jun 2013 08:08:22 -0500 Subject: [PATCH 18/26] Add patches. --- ...rminating-loop-conditions-when-len-1.patch | 81 ++++++++ ...y-aborting-if-the-co-ordinates-are-t.patch | 40 ++++ ...from-previous-vertex-if-last-command.patch | 30 +++ ...outline_aa-ignore-close_polygon-when.patch | 138 +++++++++++++ 0005-Remove-VC-6-workaround.patch | 52 +++++ ...ement-grain-merge-blending-mode-GIMP.patch | 85 ++++++++ ...ent-grain-extract-blending-mode-GIMP.patch | 84 ++++++++ ...cation-and-division-operators-as-con.patch | 36 ++++ ...Add-a-static-identity-transformation.patch | 37 ++++ 0010-Add-renderer_scanline_aa_alpha.patch | 193 ++++++++++++++++++ ...-division-by-zero-in-color-burn-mode.patch | 58 ++++++ 11 files changed, 834 insertions(+) create mode 100644 0001-Fix-non-terminating-loop-conditions-when-len-1.patch create mode 100644 0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch create mode 100644 0003-Get-coordinates-from-previous-vertex-if-last-command.patch create mode 100644 0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch create mode 100644 0005-Remove-VC-6-workaround.patch create mode 100644 0006-Implement-grain-merge-blending-mode-GIMP.patch create mode 100644 0007-Implement-grain-extract-blending-mode-GIMP.patch create mode 100644 0008-Declare-multiplication-and-division-operators-as-con.patch create mode 100644 0009-Add-a-static-identity-transformation.patch create mode 100644 0010-Add-renderer_scanline_aa_alpha.patch create mode 100644 0011-Avoid-division-by-zero-in-color-burn-mode.patch diff --git a/0001-Fix-non-terminating-loop-conditions-when-len-1.patch b/0001-Fix-non-terminating-loop-conditions-when-len-1.patch new file mode 100644 index 0000000..b5f57e5 --- /dev/null +++ b/0001-Fix-non-terminating-loop-conditions-when-len-1.patch @@ -0,0 +1,81 @@ +From 085983cdd2bdf79247a12fcee603e6f1bd6b587e Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 10:55:37 +0100 +Subject: [PATCH 01/11] Fix non-terminating loop conditions when len=1 + +- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) ++ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) + { + sx = (lp.x1 + sx) >> 1; + sy = (lp.y1 + sy) >> 1; + } +--- + include/agg_renderer_outline_aa.h | 8 ++++---- + include/agg_renderer_outline_image.h | 4 ++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/include/agg_renderer_outline_aa.h b/include/agg_renderer_outline_aa.h +index ce25a2e..cb2aa00 100644 +--- a/include/agg_renderer_outline_aa.h ++++ b/include/agg_renderer_outline_aa.h +@@ -1659,7 +1659,7 @@ namespace agg + } + else + { +- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) ++ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) + { + sx = (lp.x1 + sx) >> 1; + sy = (lp.y1 + sy) >> 1; +@@ -1726,7 +1726,7 @@ namespace agg + } + else + { +- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len) ++ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len) + { + ex = (lp.x2 + ex) >> 1; + ey = (lp.y2 + ey) >> 1; +@@ -1798,7 +1798,7 @@ namespace agg + } + else + { +- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) ++ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) + { + sx = (lp.x1 + sx) >> 1; + sy = (lp.y1 + sy) >> 1; +@@ -1811,7 +1811,7 @@ namespace agg + } + else + { +- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len) ++ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len) + { + ex = (lp.x2 + ex) >> 1; + ey = (lp.y2 + ey) >> 1; +diff --git a/include/agg_renderer_outline_image.h b/include/agg_renderer_outline_image.h +index fbfac10..66d2b9a 100644 +--- a/include/agg_renderer_outline_image.h ++++ b/include/agg_renderer_outline_image.h +@@ -969,7 +969,7 @@ namespace agg + } + else + { +- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) ++ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) + { + sx = (lp.x1 + sx) >> 1; + sy = (lp.y1 + sy) >> 1; +@@ -982,7 +982,7 @@ namespace agg + } + else + { +- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len) ++ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len) + { + ex = (lp.x2 + ex) >> 1; + ey = (lp.y2 + ey) >> 1; +-- +1.8.1.4 + diff --git a/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch b/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch new file mode 100644 index 0000000..18d43dd --- /dev/null +++ b/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch @@ -0,0 +1,40 @@ +From dab3a675d4fe1294f12f65c7ae72fd740b043a19 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 11:03:26 +0100 +Subject: [PATCH 02/11] Cure recursion by aborting if the co-ordinates are to + big to handle + +--- + include/agg_rasterizer_cells_aa.h | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/include/agg_rasterizer_cells_aa.h b/include/agg_rasterizer_cells_aa.h +index d3bb138..3a616d9 100644 +--- a/include/agg_rasterizer_cells_aa.h ++++ b/include/agg_rasterizer_cells_aa.h +@@ -40,7 +40,8 @@ + #define AGG_RASTERIZER_CELLS_AA_INCLUDED + + #include +-#include ++#include ++#include + #include "agg_math.h" + #include "agg_array.h" + +@@ -333,6 +334,12 @@ namespace agg + { + int cx = (x1 + x2) >> 1; + int cy = (y1 + y2) >> 1; ++ ++ // Bail if values are so large they are likely to wrap ++ if ((std::abs(x1) >= std::numeric_limits::max()/2) || (std::abs(y1) >= std::numeric_limits::max()/2) || ++ (std::abs(x2) >= std::numeric_limits::max()/2) || (std::abs(y2) >= std::numeric_limits::max()/2)) ++ return; ++ + line(x1, y1, cx, cy); + line(cx, cy, x2, y2); + } +-- +1.8.1.4 + diff --git a/0003-Get-coordinates-from-previous-vertex-if-last-command.patch b/0003-Get-coordinates-from-previous-vertex-if-last-command.patch new file mode 100644 index 0000000..e4cbdba --- /dev/null +++ b/0003-Get-coordinates-from-previous-vertex-if-last-command.patch @@ -0,0 +1,30 @@ +From 3dbfb18b984dd2bdd2b1fd33108817ffe581c09b Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 11:40:49 +0100 +Subject: [PATCH 03/11] Get coordinates from previous vertex if last command is + path_cmd_end_poly + +--- + include/agg_path_storage.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/include/agg_path_storage.h b/include/agg_path_storage.h +index 7be7393..8922fc8 100644 +--- a/include/agg_path_storage.h ++++ b/include/agg_path_storage.h +@@ -878,6 +878,12 @@ namespace agg + *x += x2; + *y += y2; + } ++ else if (!is_stop(m_vertices.last_command()) && ++ is_vertex(m_vertices.prev_vertex(&x2, &y2))) ++ { ++ *x += x2; ++ *y += y2; ++ } + } + } + +-- +1.8.1.4 + diff --git a/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch b/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch new file mode 100644 index 0000000..77a5564 --- /dev/null +++ b/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch @@ -0,0 +1,138 @@ +From e12c9df003505093b6fc81ed6458185271825146 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 14:17:43 +0100 +Subject: [PATCH 04/11] Make rasterizer_outline_aa ignore close_polygon when + vertex count < 3 + +--- + include/agg_rasterizer_outline_aa.h | 107 ++++++++++++++++++------------------ + 1 file changed, 52 insertions(+), 55 deletions(-) + +diff --git a/include/agg_rasterizer_outline_aa.h b/include/agg_rasterizer_outline_aa.h +index 4d6dd57..24301d5 100644 +--- a/include/agg_rasterizer_outline_aa.h ++++ b/include/agg_rasterizer_outline_aa.h +@@ -333,68 +333,65 @@ namespace agg + int y2; + int lprev; + +- if(close_polygon) ++ if(close_polygon && (m_src_vertices.size() >= 3)) + { +- if(m_src_vertices.size() >= 3) ++ dv.idx = 2; ++ ++ v = &m_src_vertices[m_src_vertices.size() - 1]; ++ x1 = v->x; ++ y1 = v->y; ++ lprev = v->len; ++ ++ v = &m_src_vertices[0]; ++ x2 = v->x; ++ y2 = v->y; ++ dv.lcurr = v->len; ++ line_parameters prev(x1, y1, x2, y2, lprev); ++ ++ v = &m_src_vertices[1]; ++ dv.x1 = v->x; ++ dv.y1 = v->y; ++ dv.lnext = v->len; ++ dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr); ++ ++ v = &m_src_vertices[dv.idx]; ++ dv.x2 = v->x; ++ dv.y2 = v->y; ++ dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext); ++ ++ dv.xb1 = 0; ++ dv.yb1 = 0; ++ dv.xb2 = 0; ++ dv.yb2 = 0; ++ ++ switch(m_line_join) + { +- dv.idx = 2; +- +- v = &m_src_vertices[m_src_vertices.size() - 1]; +- x1 = v->x; +- y1 = v->y; +- lprev = v->len; +- +- v = &m_src_vertices[0]; +- x2 = v->x; +- y2 = v->y; +- dv.lcurr = v->len; +- line_parameters prev(x1, y1, x2, y2, lprev); +- +- v = &m_src_vertices[1]; +- dv.x1 = v->x; +- dv.y1 = v->y; +- dv.lnext = v->len; +- dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr); +- +- v = &m_src_vertices[dv.idx]; +- dv.x2 = v->x; +- dv.y2 = v->y; +- dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext); +- +- dv.xb1 = 0; +- dv.yb1 = 0; +- dv.xb2 = 0; +- dv.yb2 = 0; +- +- switch(m_line_join) +- { +- case outline_no_join: +- dv.flags = 3; +- break; ++ case outline_no_join: ++ dv.flags = 3; ++ break; + +- case outline_miter_join: +- case outline_round_join: +- dv.flags = +- (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) | +- ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1); +- break; ++ case outline_miter_join: ++ case outline_round_join: ++ dv.flags = ++ (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) | ++ ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1); ++ break; + +- case outline_miter_accurate_join: +- dv.flags = 0; +- break; +- } ++ case outline_miter_accurate_join: ++ dv.flags = 0; ++ break; ++ } + +- if((dv.flags & 1) == 0 && m_line_join != outline_round_join) +- { +- bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1); +- } ++ if((dv.flags & 1) == 0 && m_line_join != outline_round_join) ++ { ++ bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1); ++ } + +- if((dv.flags & 2) == 0 && m_line_join != outline_round_join) +- { +- bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2); +- } +- draw(dv, 0, m_src_vertices.size()); ++ if((dv.flags & 2) == 0 && m_line_join != outline_round_join) ++ { ++ bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2); + } ++ draw(dv, 0, m_src_vertices.size()); + } + else + { +-- +1.8.1.4 + diff --git a/0005-Remove-VC-6-workaround.patch b/0005-Remove-VC-6-workaround.patch new file mode 100644 index 0000000..78d8ec7 --- /dev/null +++ b/0005-Remove-VC-6-workaround.patch @@ -0,0 +1,52 @@ +From 9fb6c7e39bb0cf01f7268a55b13d7ae828ab8321 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 15:04:05 +0100 +Subject: [PATCH 05/11] Remove VC++ 6 workaround + +--- + include/agg_renderer_scanline.h | 29 +---------------------------- + 1 file changed, 1 insertion(+), 28 deletions(-) + +diff --git a/include/agg_renderer_scanline.h b/include/agg_renderer_scanline.h +index c3bb6f0..c27ca60 100644 +--- a/include/agg_renderer_scanline.h ++++ b/include/agg_renderer_scanline.h +@@ -79,34 +79,7 @@ namespace agg + sl.reset(ras.min_x(), ras.max_x()); + while(ras.sweep_scanline(sl)) + { +- //render_scanline_aa_solid(sl, ren, ren_color); +- +- // This code is equivalent to the above call (copy/paste). +- // It's just a "manual" optimization for old compilers, +- // like Microsoft Visual C++ v6.0 +- //------------------------------- +- int y = sl.y(); +- unsigned num_spans = sl.num_spans(); +- typename Scanline::const_iterator span = sl.begin(); +- +- for(;;) +- { +- int x = span->x; +- if(span->len > 0) +- { +- ren.blend_solid_hspan(x, y, (unsigned)span->len, +- ren_color, +- span->covers); +- } +- else +- { +- ren.blend_hline(x, y, (unsigned)(x - span->len - 1), +- ren_color, +- *(span->covers)); +- } +- if(--num_spans == 0) break; +- ++span; +- } ++ render_scanline_aa_solid(sl, ren, ren_color); + } + } + } +-- +1.8.1.4 + diff --git a/0006-Implement-grain-merge-blending-mode-GIMP.patch b/0006-Implement-grain-merge-blending-mode-GIMP.patch new file mode 100644 index 0000000..2526d06 --- /dev/null +++ b/0006-Implement-grain-merge-blending-mode-GIMP.patch @@ -0,0 +1,85 @@ +From 09c4b068b9512e33736e6f23896ad2522f3b65da Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 15:31:01 +0100 +Subject: [PATCH 06/11] Implement grain-merge blending mode (GIMP) + +--- + include/agg_pixfmt_rgba.h | 42 ++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 40 insertions(+), 2 deletions(-) + +diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h +index 79d10dc..99b1c9f 100644 +--- a/include/agg_pixfmt_rgba.h ++++ b/include/agg_pixfmt_rgba.h +@@ -1401,9 +1401,46 @@ namespace agg + } + }; + ++ //================================================comp_op_rgba_grain_merge ++ template struct comp_op_rgba_grain_merge ++ { ++ typedef ColorT color_type; ++ typedef Order order_type; ++ typedef typename color_type::value_type value_type; ++ typedef typename color_type::calc_type calc_type; ++ typedef typename color_type::long_type long_type; ++ enum base_scale_e ++ { ++ base_shift = color_type::base_shift, ++ base_mask = color_type::base_mask ++ }; + ++ // E = I + M - 128 ++ static AGG_INLINE void blend_pix(value_type* p, ++ unsigned sr, unsigned sg, unsigned sb, ++ unsigned sa, unsigned cover) ++ { + +- ++ if(cover < 255) ++ { ++ sr = (sr * cover + 255) >> 8; ++ sg = (sg * cover + 255) >> 8; ++ sb = (sb * cover + 255) >> 8; ++ sa = (sa * cover + 255) >> 8; ++ } ++ if(sa) ++ { ++ calc_type da = p[Order::A]; ++ calc_type dr = sr + p[Order::R] - 128; ++ calc_type dg = sg + p[Order::G] - 128; ++ calc_type db = sb + p[Order::B] - 128; ++ p[Order::R] = (value_type)(dr < 0 ? 0 : (dr > 255 ? 255 : dr)); ++ p[Order::G] = (value_type)(dg < 0 ? 0 : (dg > 255 ? 255 : dg)); ++ p[Order::B] = (value_type)(db < 0 ? 0 : (db > 255 ? 255 : db)); ++ p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); ++ } ++ } ++ }; + + //======================================================comp_op_table_rgba + template struct comp_op_table_rgba +@@ -1451,6 +1488,7 @@ namespace agg + comp_op_rgba_contrast ::blend_pix, + comp_op_rgba_invert ::blend_pix, + comp_op_rgba_invert_rgb ::blend_pix, ++ comp_op_rgba_grain_merge::blend_pix, + 0 + }; + +@@ -1486,6 +1524,7 @@ namespace agg + comp_op_contrast, //----comp_op_contrast + comp_op_invert, //----comp_op_invert + comp_op_invert_rgb, //----comp_op_invert_rgb ++ comp_op_grain_merge, //----comp_op_grain_merge + + end_of_comp_op_e + }; +@@ -2908,4 +2947,3 @@ namespace agg + } + + #endif +- +-- +1.8.1.4 + diff --git a/0007-Implement-grain-extract-blending-mode-GIMP.patch b/0007-Implement-grain-extract-blending-mode-GIMP.patch new file mode 100644 index 0000000..656f885 --- /dev/null +++ b/0007-Implement-grain-extract-blending-mode-GIMP.patch @@ -0,0 +1,84 @@ +From 6cef3ddecc1b8a614ba4d47bf9daf6b04bea9995 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 15:43:18 +0100 +Subject: [PATCH 07/11] Implement grain-extract blending mode (GIMP) + +--- + include/agg_pixfmt_rgba.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 47 insertions(+) + +diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h +index 99b1c9f..e0a6dc1 100644 +--- a/include/agg_pixfmt_rgba.h ++++ b/include/agg_pixfmt_rgba.h +@@ -1442,6 +1442,51 @@ namespace agg + } + }; + ++ //==============================================comp_op_rgba_grain_extract ++ template struct comp_op_rgba_grain_extract ++ { ++ typedef ColorT color_type; ++ typedef Order order_type; ++ typedef typename color_type::value_type value_type; ++ typedef typename color_type::calc_type calc_type; ++ typedef typename color_type::long_type long_type; ++ enum base_scale_e ++ { ++ base_shift = color_type::base_shift, ++ base_mask = color_type::base_mask ++ }; ++ ++ // E = I - M + 128 ++ static AGG_INLINE void blend_pix(value_type* p, ++ unsigned sr, unsigned sg, unsigned sb, ++ unsigned sa, unsigned cover) ++ { ++ calc_type da = (p[Order::A] * sa + 255) >> 8; ++ calc_type dr = p[Order::R] - sr + 128; ++ calc_type dg = p[Order::G] - sg + 128; ++ calc_type db = p[Order::B] - sb + 128; ++ ++ dr = dr < 0 ? 0 : (dr > 255 ? 255 : dr); ++ dg = dg < 0 ? 0 : (dg > 255 ? 255 : dg); ++ db = db < 0 ? 0 : (db > 255 ? 255 : db); ++ ++ p[Order::A] = da; ++ ++ if(da < 255) ++ { ++ p[Order::R] = (dr * da + 255) >> 8; ++ p[Order::G] = (dg * da + 255) >> 8; ++ p[Order::B] = (db * da + 255) >> 8; ++ } ++ else ++ { ++ p[Order::R] = dr; ++ p[Order::G] = dg; ++ p[Order::B] = db; ++ } ++ } ++ }; ++ + //======================================================comp_op_table_rgba + template struct comp_op_table_rgba + { +@@ -1489,6 +1534,7 @@ namespace agg + comp_op_rgba_invert ::blend_pix, + comp_op_rgba_invert_rgb ::blend_pix, + comp_op_rgba_grain_merge::blend_pix, ++ comp_op_rgba_grain_extract::blend_pix, + 0 + }; + +@@ -1525,6 +1571,7 @@ namespace agg + comp_op_invert, //----comp_op_invert + comp_op_invert_rgb, //----comp_op_invert_rgb + comp_op_grain_merge, //----comp_op_grain_merge ++ comp_op_grain_extract, //----comp_op_grain_extract + + end_of_comp_op_e + }; +-- +1.8.1.4 + diff --git a/0008-Declare-multiplication-and-division-operators-as-con.patch b/0008-Declare-multiplication-and-division-operators-as-con.patch new file mode 100644 index 0000000..58fc18a --- /dev/null +++ b/0008-Declare-multiplication-and-division-operators-as-con.patch @@ -0,0 +1,36 @@ +From 6f8f30a6af5b335c14065e421d953b821fb7660f Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 16:15:01 +0100 +Subject: [PATCH 08/11] Declare multiplication and division operators as const + +--- + include/agg_trans_affine.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/include/agg_trans_affine.h b/include/agg_trans_affine.h +index a662099..2f602a0 100644 +--- a/include/agg_trans_affine.h ++++ b/include/agg_trans_affine.h +@@ -216,15 +216,15 @@ namespace agg + } + + // Multiply the matrix by another one and return +- // the result in a separete matrix. +- trans_affine operator * (const trans_affine& m) ++ // the result in a separate matrix. ++ trans_affine operator * (const trans_affine& m) const + { + return trans_affine(*this).multiply(m); + } + + // Multiply the matrix by inverse of another one +- // and return the result in a separete matrix. +- trans_affine operator / (const trans_affine& m) ++ // and return the result in a separate matrix. ++ trans_affine operator / (const trans_affine& m) const + { + return trans_affine(*this).multiply_inv(m); + } +-- +1.8.1.4 + diff --git a/0009-Add-a-static-identity-transformation.patch b/0009-Add-a-static-identity-transformation.patch new file mode 100644 index 0000000..9ee9b79 --- /dev/null +++ b/0009-Add-a-static-identity-transformation.patch @@ -0,0 +1,37 @@ +From 7669098f8e80929eec2e380967e12b31b68a4310 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 16:15:36 +0100 +Subject: [PATCH 09/11] Add a static identity transformation + +--- + include/agg_trans_affine.h | 1 + + src/agg_trans_affine.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/include/agg_trans_affine.h b/include/agg_trans_affine.h +index 2f602a0..67fe5ca 100644 +--- a/include/agg_trans_affine.h ++++ b/include/agg_trans_affine.h +@@ -92,6 +92,7 @@ namespace agg + //---------------------------------------------------------------------- + struct trans_affine + { ++ static const trans_affine identity; + double sx, shy, shx, sy, tx, ty; + + //------------------------------------------ Construction +diff --git a/src/agg_trans_affine.cpp b/src/agg_trans_affine.cpp +index aca18c2..b3d9bc0 100644 +--- a/src/agg_trans_affine.cpp ++++ b/src/agg_trans_affine.cpp +@@ -28,6 +28,7 @@ + + namespace agg + { ++ const trans_affine trans_affine::identity; + + //------------------------------------------------------------------------ + const trans_affine& trans_affine::parl_to_parl(const double* src, +-- +1.8.1.4 + diff --git a/0010-Add-renderer_scanline_aa_alpha.patch b/0010-Add-renderer_scanline_aa_alpha.patch new file mode 100644 index 0000000..33acf70 --- /dev/null +++ b/0010-Add-renderer_scanline_aa_alpha.patch @@ -0,0 +1,193 @@ +From 15fa2c5afe649b4f41aede636243c9bea7aa74a4 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 16:43:25 +0100 +Subject: [PATCH 10/11] Add renderer_scanline_aa_alpha + +--- + include/agg_pixfmt_rgba.h | 24 +++++++++++++- + include/agg_renderer_base.h | 28 ++++++++++++++++ + include/agg_renderer_scanline.h | 71 +++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 122 insertions(+), 1 deletion(-) + +diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h +index e0a6dc1..d912ba3 100644 +--- a/include/agg_pixfmt_rgba.h ++++ b/include/agg_pixfmt_rgba.h +@@ -2246,7 +2246,6 @@ namespace agg + } + + +- + //-------------------------------------------------------------------- + void blend_color_vspan(int x, int y, + unsigned len, +@@ -2750,6 +2749,29 @@ namespace agg + } + + //-------------------------------------------------------------------- ++ void blend_color_hspan_alpha(int x, int y, unsigned len, ++ const color_type* colors, ++ value_type alpha, ++ const int8u* covers, ++ int8u cover) ++ { ++ value_type* p = (value_type*)m_rbuf->row_ptr(x, y, len) + (x << 2); ++ do ++ { ++ blender_type::blend_pix(m_comp_op, ++ p, ++ (colors->r * alpha + 255) >> 8, ++ (colors->g * alpha + 255) >> 8, ++ (colors->b * alpha + 255) >> 8, ++ (colors->a * alpha + 255) >> 8, ++ covers ? *covers++ : cover); ++ p += 4; ++ ++colors; ++ } ++ while(--len); ++ } ++ ++ //-------------------------------------------------------------------- + void blend_color_vspan(int x, int y, unsigned len, + const color_type* colors, + const int8u* covers, +diff --git a/include/agg_renderer_base.h b/include/agg_renderer_base.h +index 1808944..25f07c3 100644 +--- a/include/agg_renderer_base.h ++++ b/include/agg_renderer_base.h +@@ -37,6 +37,7 @@ namespace agg + public: + typedef PixelFormat pixfmt_type; + typedef typename pixfmt_type::color_type color_type; ++ typedef typename pixfmt_type::color_type::value_type value_type; + typedef typename pixfmt_type::row_data row_data; + + //-------------------------------------------------------------------- +@@ -383,6 +384,33 @@ namespace agg + } + + //-------------------------------------------------------------------- ++ void blend_color_hspan_alpha(int x, int y, int len, ++ const color_type* colors, ++ value_type alpha, ++ const cover_type* covers, ++ cover_type cover = agg::cover_full) ++ { ++ if(y > ymax()) return; ++ if(y < ymin()) return; ++ ++ if(x < xmin()) ++ { ++ int d = xmin() - x; ++ len -= d; ++ if(len <= 0) return; ++ if(covers) covers += d; ++ colors += d; ++ x = xmin(); ++ } ++ if(x + len > xmax()) ++ { ++ len = xmax() - x + 1; ++ if(len <= 0) return; ++ } ++ m_ren->blend_color_hspan_alpha(x, y, len, colors, alpha, covers, cover); ++ } ++ ++ //-------------------------------------------------------------------- + void blend_color_vspan(int x, int y, int len, + const color_type* colors, + const cover_type* covers, +diff --git a/include/agg_renderer_scanline.h b/include/agg_renderer_scanline.h +index c27ca60..4fcb557 100644 +--- a/include/agg_renderer_scanline.h ++++ b/include/agg_renderer_scanline.h +@@ -156,6 +156,35 @@ namespace agg + } + } + ++ //================================================render_scanline_aa_alpha ++ template ++ void render_scanline_aa_alpha(const Scanline& sl, BaseRenderer& ren, ++ SpanAllocator& alloc, SpanGenerator& span_gen, ++ unsigned alpha) ++ { ++ int y = sl.y(); ++ ++ unsigned num_spans = sl.num_spans(); ++ typename Scanline::const_iterator span = sl.begin(); ++ for(;;) ++ { ++ int x = span->x; ++ int len = span->len; ++ const typename Scanline::cover_type* covers = span->covers; ++ ++ if(len < 0) len = -len; ++ typename BaseRenderer::color_type* colors = alloc.allocate(len); ++ span_gen.generate(colors, x, y, len); ++ ren.blend_color_hspan_alpha(x, y, len, colors, alpha, ++ (span->len < 0) ? 0 : covers, *covers); ++ ++ if(--num_spans == 0) break; ++ ++span; ++ } ++ } ++ ++ + //=====================================================render_scanlines_aa + template +@@ -216,8 +245,50 @@ namespace agg + }; + + ++ //==============================================renderer_scanline_aa_alpha ++ template ++ class renderer_scanline_aa_alpha ++ { ++ public: ++ typedef BaseRenderer base_ren_type; ++ typedef SpanAllocator alloc_type; ++ typedef SpanGenerator span_gen_type; + ++ //-------------------------------------------------------------------- ++ renderer_scanline_aa_alpha() : m_ren(0), m_alloc(0), m_span_gen(0), m_alpha(1.0) {} ++ renderer_scanline_aa_alpha(base_ren_type& ren, ++ alloc_type& alloc, ++ span_gen_type& span_gen, ++ unsigned alpha) : ++ m_ren(&ren), ++ m_alloc(&alloc), ++ m_span_gen(&span_gen), ++ m_alpha(alpha) ++ {} ++ void attach(base_ren_type& ren, ++ alloc_type& alloc, ++ span_gen_type& span_gen) ++ { ++ m_ren = &ren; ++ m_alloc = &alloc; ++ m_span_gen = &span_gen; ++ } + ++ //-------------------------------------------------------------------- ++ void prepare() { m_span_gen->prepare(); } ++ ++ //-------------------------------------------------------------------- ++ template void render(const Scanline& sl) ++ { ++ render_scanline_aa_alpha(sl, *m_ren, *m_alloc, *m_span_gen, m_alpha); ++ } ++ ++ private: ++ base_ren_type* m_ren; ++ alloc_type* m_alloc; ++ span_gen_type* m_span_gen; ++ unsigned m_alpha; ++ }; + + + //===============================================render_scanline_bin_solid +-- +1.8.1.4 + diff --git a/0011-Avoid-division-by-zero-in-color-burn-mode.patch b/0011-Avoid-division-by-zero-in-color-burn-mode.patch new file mode 100644 index 0000000..9b431fe --- /dev/null +++ b/0011-Avoid-division-by-zero-in-color-burn-mode.patch @@ -0,0 +1,58 @@ +From 85de27e76d433db8c577e9475e29794cad5f999a Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sun, 19 May 2013 16:49:08 +0100 +Subject: [PATCH 11/11] Avoid division by zero in color-burn mode + +FIXME: re-work using latest math from http://www.w3.org/TR/SVGCompositing/ +--- + include/agg_pixfmt_rgba.h | 21 ++++++++++++++++++--- + 1 file changed, 18 insertions(+), 3 deletions(-) + +diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h +index d912ba3..e30860c 100644 +--- a/include/agg_pixfmt_rgba.h ++++ b/include/agg_pixfmt_rgba.h +@@ -1027,6 +1027,21 @@ namespace agg + // Dca' = Sa.(Sca.Da + Dca.Sa - Sa.Da)/Sca + Sca.(1 - Da) + Dca.(1 - Sa) + // + // Da' = Sa + Da - Sa.Da ++ ++ ++ // http://www.w3.org/TR/SVGCompositing/ ++ // if Sca == 0 and Dca == Da ++ // Dca' = Sa × Da + Sca × (1 - Da) + Dca × (1 - Sa) ++ // = Sa × Da + Dca × (1 - Sa) ++ // = Da = Dca ++ // otherwise if Sca == 0 ++ // Dca' = Sca × (1 - Da) + Dca × (1 - Sa) ++ // = Dca × (1 - Sa) ++ // otherwise if Sca > 0 ++ // Dca' = Sa × Da - Sa × Da × min(1, (1 - Dca/Da) × Sa/Sca) + Sca × (1 - Da) + Dca × (1 - Sa) ++ // = Sa × Da × (1 - min(1, (1 - Dca/Da) × Sa/Sca)) + Sca × (1 - Da) + Dca × (1 - Sa) ++ ++ // sa * da * (255 - std::min(255, (255 - p[0]/da)*(sa/(sc*sa)) + + static AGG_INLINE void blend_pix(value_type* p, + unsigned sr, unsigned sg, unsigned sb, + unsigned sa, unsigned cover) +@@ -1056,15 +1071,15 @@ namespace agg + + p[Order::R] = (value_type)(((srda + drsa <= sada) ? + sr * d1a + dr * s1a : +- sa * (srda + drsa - sada) / sr + sr * d1a + dr * s1a + base_mask) >> base_shift); ++ (sr > 0 ? sa * (srda + drsa - sada) / sr + sr * d1a + dr * s1a + base_mask : 0)) >> base_shift); + + p[Order::G] = (value_type)(((sgda + dgsa <= sada) ? + sg * d1a + dg * s1a : +- sa * (sgda + dgsa - sada) / sg + sg * d1a + dg * s1a + base_mask) >> base_shift); ++ (sg > 0 ? sa * (sgda + dgsa - sada) / sg + sg * d1a + dg * s1a + base_mask : 0)) >> base_shift); + + p[Order::B] = (value_type)(((sbda + dbsa <= sada) ? + sb * d1a + db * s1a : +- sa * (sbda + dbsa - sada) / sb + sb * d1a + db * s1a + base_mask) >> base_shift); ++ (sb > 0 ? sa * (sbda + dbsa - sada) / sb + sb * d1a + db * s1a + base_mask : 0)) >> base_shift); + + p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); + } +-- +1.8.1.4 + From bf231a208c25dff931a6e7746fb6dbc1446d0d63 Mon Sep 17 00:00:00 2001 From: Jon Ciesla Date: Thu, 27 Jun 2013 08:55:24 -0500 Subject: [PATCH 19/26] Update agg patches. --- ...rminating-loop-conditions-when-len-1.patch | 4 +- ...y-aborting-if-the-co-ordinates-are-t.patch | 4 +- ...from-previous-vertex-if-last-command.patch | 4 +- ...outline_aa-ignore-close_polygon-when.patch | 4 +- 0005-Remove-VC-6-workaround.patch | 4 +- ...ement-grain-merge-blending-mode-GIMP.patch | 12 +-- ...ent-grain-extract-blending-mode-GIMP.patch | 23 ++--- ...cation-and-division-operators-as-con.patch | 4 +- ...Add-a-static-identity-transformation.patch | 4 +- 0010-Add-renderer_scanline_aa_alpha.patch | 10 +- ...-division-by-zero-in-color-burn-mode.patch | 6 +- ...oid-pixel-artifacts-when-compositing.patch | 26 ++++++ ...classes-to-allow-access-to-the-origi.patch | 93 +++++++++++++++++++ ...zero-division-resulting-in-nan-in-ag.patch | 30 ++++++ ...ue-in-the-gamma-table-is-always-zero.patch | 24 +++++ agg.spec | 13 ++- 16 files changed, 225 insertions(+), 40 deletions(-) create mode 100644 0012-Avoid-pixel-artifacts-when-compositing.patch create mode 100644 0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch create mode 100644 0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch create mode 100644 0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch diff --git a/0001-Fix-non-terminating-loop-conditions-when-len-1.patch b/0001-Fix-non-terminating-loop-conditions-when-len-1.patch index b5f57e5..eaf0467 100644 --- a/0001-Fix-non-terminating-loop-conditions-when-len-1.patch +++ b/0001-Fix-non-terminating-loop-conditions-when-len-1.patch @@ -1,7 +1,7 @@ -From 085983cdd2bdf79247a12fcee603e6f1bd6b587e Mon Sep 17 00:00:00 2001 +From efd33aad5e69f36ab343b1f28839a55db4538104 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 10:55:37 +0100 -Subject: [PATCH 01/11] Fix non-terminating loop conditions when len=1 +Subject: [PATCH 01/15] Fix non-terminating loop conditions when len=1 - while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) + while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) diff --git a/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch b/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch index 18d43dd..4fe7434 100644 --- a/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch +++ b/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch @@ -1,7 +1,7 @@ -From dab3a675d4fe1294f12f65c7ae72fd740b043a19 Mon Sep 17 00:00:00 2001 +From e269fe9b62af6fe314cebe0ee7a6d6d1a4a84d1c Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 11:03:26 +0100 -Subject: [PATCH 02/11] Cure recursion by aborting if the co-ordinates are to +Subject: [PATCH 02/15] Cure recursion by aborting if the co-ordinates are to big to handle --- diff --git a/0003-Get-coordinates-from-previous-vertex-if-last-command.patch b/0003-Get-coordinates-from-previous-vertex-if-last-command.patch index e4cbdba..b12684d 100644 --- a/0003-Get-coordinates-from-previous-vertex-if-last-command.patch +++ b/0003-Get-coordinates-from-previous-vertex-if-last-command.patch @@ -1,7 +1,7 @@ -From 3dbfb18b984dd2bdd2b1fd33108817ffe581c09b Mon Sep 17 00:00:00 2001 +From 032d5342430f4c5dfbc34a2817d67386a14fd51b Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 11:40:49 +0100 -Subject: [PATCH 03/11] Get coordinates from previous vertex if last command is +Subject: [PATCH 03/15] Get coordinates from previous vertex if last command is path_cmd_end_poly --- diff --git a/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch b/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch index 77a5564..0cecaf7 100644 --- a/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch +++ b/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch @@ -1,7 +1,7 @@ -From e12c9df003505093b6fc81ed6458185271825146 Mon Sep 17 00:00:00 2001 +From b9c4b1c72b4ad6b24c37f402d3eec39ef393b0eb Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 14:17:43 +0100 -Subject: [PATCH 04/11] Make rasterizer_outline_aa ignore close_polygon when +Subject: [PATCH 04/15] Make rasterizer_outline_aa ignore close_polygon when vertex count < 3 --- diff --git a/0005-Remove-VC-6-workaround.patch b/0005-Remove-VC-6-workaround.patch index 78d8ec7..f38f7c4 100644 --- a/0005-Remove-VC-6-workaround.patch +++ b/0005-Remove-VC-6-workaround.patch @@ -1,7 +1,7 @@ -From 9fb6c7e39bb0cf01f7268a55b13d7ae828ab8321 Mon Sep 17 00:00:00 2001 +From b8c43fb0ba13af0cc2b1050f48f81d76d2fdf0c7 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 15:04:05 +0100 -Subject: [PATCH 05/11] Remove VC++ 6 workaround +Subject: [PATCH 05/15] Remove VC++ 6 workaround --- include/agg_renderer_scanline.h | 29 +---------------------------- diff --git a/0006-Implement-grain-merge-blending-mode-GIMP.patch b/0006-Implement-grain-merge-blending-mode-GIMP.patch index 2526d06..f1e465b 100644 --- a/0006-Implement-grain-merge-blending-mode-GIMP.patch +++ b/0006-Implement-grain-merge-blending-mode-GIMP.patch @@ -1,14 +1,14 @@ -From 09c4b068b9512e33736e6f23896ad2522f3b65da Mon Sep 17 00:00:00 2001 +From 9422570f4e099a834fc43619f7b2a7eb6b442e25 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 15:31:01 +0100 -Subject: [PATCH 06/11] Implement grain-merge blending mode (GIMP) +Subject: [PATCH 06/15] Implement grain-merge blending mode (GIMP) --- include/agg_pixfmt_rgba.h | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index 79d10dc..99b1c9f 100644 +index 79d10dc..f576ce4 100644 --- a/include/agg_pixfmt_rgba.h +++ b/include/agg_pixfmt_rgba.h @@ -1401,9 +1401,46 @@ namespace agg @@ -46,9 +46,9 @@ index 79d10dc..99b1c9f 100644 + if(sa) + { + calc_type da = p[Order::A]; -+ calc_type dr = sr + p[Order::R] - 128; -+ calc_type dg = sg + p[Order::G] - 128; -+ calc_type db = sb + p[Order::B] - 128; ++ int dr = sr + p[Order::R] - 128; ++ int dg = sg + p[Order::G] - 128; ++ int db = sb + p[Order::B] - 128; + p[Order::R] = (value_type)(dr < 0 ? 0 : (dr > 255 ? 255 : dr)); + p[Order::G] = (value_type)(dg < 0 ? 0 : (dg > 255 ? 255 : dg)); + p[Order::B] = (value_type)(db < 0 ? 0 : (db > 255 ? 255 : db)); diff --git a/0007-Implement-grain-extract-blending-mode-GIMP.patch b/0007-Implement-grain-extract-blending-mode-GIMP.patch index 656f885..cafb36e 100644 --- a/0007-Implement-grain-extract-blending-mode-GIMP.patch +++ b/0007-Implement-grain-extract-blending-mode-GIMP.patch @@ -1,17 +1,17 @@ -From 6cef3ddecc1b8a614ba4d47bf9daf6b04bea9995 Mon Sep 17 00:00:00 2001 +From abd440342e166a90d08610bf5b31d2a8357eafbe Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 15:43:18 +0100 -Subject: [PATCH 07/11] Implement grain-extract blending mode (GIMP) +Subject: [PATCH 07/15] Implement grain-extract blending mode (GIMP) --- - include/agg_pixfmt_rgba.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 47 insertions(+) + include/agg_pixfmt_rgba.h | 48 +++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 48 insertions(+) diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index 99b1c9f..e0a6dc1 100644 +index f576ce4..42f0a05 100644 --- a/include/agg_pixfmt_rgba.h +++ b/include/agg_pixfmt_rgba.h -@@ -1442,6 +1442,51 @@ namespace agg +@@ -1442,6 +1442,52 @@ namespace agg } }; @@ -35,9 +35,10 @@ index 99b1c9f..e0a6dc1 100644 + unsigned sa, unsigned cover) + { + calc_type da = (p[Order::A] * sa + 255) >> 8; -+ calc_type dr = p[Order::R] - sr + 128; -+ calc_type dg = p[Order::G] - sg + 128; -+ calc_type db = p[Order::B] - sb + 128; ++ ++ int dr = p[Order::R] - sr + 128; ++ int dg = p[Order::G] - sg + 128; ++ int db = p[Order::B] - sb + 128; + + dr = dr < 0 ? 0 : (dr > 255 ? 255 : dr); + dg = dg < 0 ? 0 : (dg > 255 ? 255 : dg); @@ -63,7 +64,7 @@ index 99b1c9f..e0a6dc1 100644 //======================================================comp_op_table_rgba template struct comp_op_table_rgba { -@@ -1489,6 +1534,7 @@ namespace agg +@@ -1489,6 +1535,7 @@ namespace agg comp_op_rgba_invert ::blend_pix, comp_op_rgba_invert_rgb ::blend_pix, comp_op_rgba_grain_merge::blend_pix, @@ -71,7 +72,7 @@ index 99b1c9f..e0a6dc1 100644 0 }; -@@ -1525,6 +1571,7 @@ namespace agg +@@ -1525,6 +1572,7 @@ namespace agg comp_op_invert, //----comp_op_invert comp_op_invert_rgb, //----comp_op_invert_rgb comp_op_grain_merge, //----comp_op_grain_merge diff --git a/0008-Declare-multiplication-and-division-operators-as-con.patch b/0008-Declare-multiplication-and-division-operators-as-con.patch index 58fc18a..0ed92ee 100644 --- a/0008-Declare-multiplication-and-division-operators-as-con.patch +++ b/0008-Declare-multiplication-and-division-operators-as-con.patch @@ -1,7 +1,7 @@ -From 6f8f30a6af5b335c14065e421d953b821fb7660f Mon Sep 17 00:00:00 2001 +From 2688af280836b95908d3cfd6915510d55de673b8 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 16:15:01 +0100 -Subject: [PATCH 08/11] Declare multiplication and division operators as const +Subject: [PATCH 08/15] Declare multiplication and division operators as const --- include/agg_trans_affine.h | 8 ++++---- diff --git a/0009-Add-a-static-identity-transformation.patch b/0009-Add-a-static-identity-transformation.patch index 9ee9b79..01555cb 100644 --- a/0009-Add-a-static-identity-transformation.patch +++ b/0009-Add-a-static-identity-transformation.patch @@ -1,7 +1,7 @@ -From 7669098f8e80929eec2e380967e12b31b68a4310 Mon Sep 17 00:00:00 2001 +From be9ed90897bc43b4547a3a1f8046827caaf13b4c Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 16:15:36 +0100 -Subject: [PATCH 09/11] Add a static identity transformation +Subject: [PATCH 09/15] Add a static identity transformation --- include/agg_trans_affine.h | 1 + diff --git a/0010-Add-renderer_scanline_aa_alpha.patch b/0010-Add-renderer_scanline_aa_alpha.patch index 33acf70..b0be258 100644 --- a/0010-Add-renderer_scanline_aa_alpha.patch +++ b/0010-Add-renderer_scanline_aa_alpha.patch @@ -1,7 +1,7 @@ -From 15fa2c5afe649b4f41aede636243c9bea7aa74a4 Mon Sep 17 00:00:00 2001 +From 749c8cd11e9e6f81e93ae5ce19258431722b6bdf Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 16:43:25 +0100 -Subject: [PATCH 10/11] Add renderer_scanline_aa_alpha +Subject: [PATCH 10/15] Add renderer_scanline_aa_alpha --- include/agg_pixfmt_rgba.h | 24 +++++++++++++- @@ -10,10 +10,10 @@ Subject: [PATCH 10/11] Add renderer_scanline_aa_alpha 3 files changed, 122 insertions(+), 1 deletion(-) diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index e0a6dc1..d912ba3 100644 +index 42f0a05..6c4bc37 100644 --- a/include/agg_pixfmt_rgba.h +++ b/include/agg_pixfmt_rgba.h -@@ -2246,7 +2246,6 @@ namespace agg +@@ -2247,7 +2247,6 @@ namespace agg } @@ -21,7 +21,7 @@ index e0a6dc1..d912ba3 100644 //-------------------------------------------------------------------- void blend_color_vspan(int x, int y, unsigned len, -@@ -2750,6 +2749,29 @@ namespace agg +@@ -2751,6 +2750,29 @@ namespace agg } //-------------------------------------------------------------------- diff --git a/0011-Avoid-division-by-zero-in-color-burn-mode.patch b/0011-Avoid-division-by-zero-in-color-burn-mode.patch index 9b431fe..2a0d198 100644 --- a/0011-Avoid-division-by-zero-in-color-burn-mode.patch +++ b/0011-Avoid-division-by-zero-in-color-burn-mode.patch @@ -1,7 +1,7 @@ -From 85de27e76d433db8c577e9475e29794cad5f999a Mon Sep 17 00:00:00 2001 +From 0ec68d7f5695403eccac75025ba7f6f7ecf1814e Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 19 May 2013 16:49:08 +0100 -Subject: [PATCH 11/11] Avoid division by zero in color-burn mode +Subject: [PATCH 11/15] Avoid division by zero in color-burn mode FIXME: re-work using latest math from http://www.w3.org/TR/SVGCompositing/ --- @@ -9,7 +9,7 @@ FIXME: re-work using latest math from http://www.w3.org/TR/SVGCompositing/ 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index d912ba3..e30860c 100644 +index 6c4bc37..5d6b511 100644 --- a/include/agg_pixfmt_rgba.h +++ b/include/agg_pixfmt_rgba.h @@ -1027,6 +1027,21 @@ namespace agg diff --git a/0012-Avoid-pixel-artifacts-when-compositing.patch b/0012-Avoid-pixel-artifacts-when-compositing.patch new file mode 100644 index 0000000..b3e641e --- /dev/null +++ b/0012-Avoid-pixel-artifacts-when-compositing.patch @@ -0,0 +1,26 @@ +From bf0e0b71360cfbc690a29f4abe15d7b9b61b8479 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sat, 22 Jun 2013 12:11:54 +0100 +Subject: [PATCH 12/15] Avoid pixel artifacts when compositing + +Change src_over alpha to avoid pixel artifacts by reordering computations. +--- + include/agg_pixfmt_rgba.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h +index 5d6b511..bb255cd 100644 +--- a/include/agg_pixfmt_rgba.h ++++ b/include/agg_pixfmt_rgba.h +@@ -346,7 +346,7 @@ namespace agg + p[Order::R] = (value_type)(sr + ((p[Order::R] * s1a + base_mask) >> base_shift)); + p[Order::G] = (value_type)(sg + ((p[Order::G] * s1a + base_mask) >> base_shift)); + p[Order::B] = (value_type)(sb + ((p[Order::B] * s1a + base_mask) >> base_shift)); +- p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask) >> base_shift)); ++ p[Order::A] = (value_type)(sa + ((p[Order::A] * s1a + base_mask) >> base_shift)); + } + }; + +-- +1.8.1.4 + diff --git a/0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch b/0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch new file mode 100644 index 0000000..9deb904 --- /dev/null +++ b/0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch @@ -0,0 +1,93 @@ +From 6f1ab5f4b470bcf4e7e72aac6e2f7f6ee3e7b424 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sat, 22 Jun 2013 12:16:42 +0100 +Subject: [PATCH 13/15] Modify agg conv classes to allow access to the original + geometry type + +--- + include/agg_conv_adaptor_vcgen.h | 2 ++ + include/agg_conv_adaptor_vpgen.h | 1 + + include/agg_conv_clip_polygon.h | 1 + + include/agg_conv_clip_polyline.h | 1 + + include/agg_conv_smooth_poly1.h | 2 ++ + 5 files changed, 7 insertions(+) + +diff --git a/include/agg_conv_adaptor_vcgen.h b/include/agg_conv_adaptor_vcgen.h +index 7bd9b07..fef4579 100644 +--- a/include/agg_conv_adaptor_vcgen.h ++++ b/include/agg_conv_adaptor_vcgen.h +@@ -38,6 +38,7 @@ namespace agg + + void rewind(unsigned) {} + unsigned vertex(double*, double*) { return path_cmd_stop; } ++ unsigned type() const { return 0; } + }; + + +@@ -73,6 +74,7 @@ namespace agg + } + + unsigned vertex(double* x, double* y); ++ unsigned type() const { return m_source->type(); } + + private: + // Prohibit copying +diff --git a/include/agg_conv_adaptor_vpgen.h b/include/agg_conv_adaptor_vpgen.h +index dca9415..a39102d 100644 +--- a/include/agg_conv_adaptor_vpgen.h ++++ b/include/agg_conv_adaptor_vpgen.h +@@ -42,6 +42,7 @@ namespace agg + + void rewind(unsigned path_id); + unsigned vertex(double* x, double* y); ++ unsigned type() const { return m_source->type(); } + + private: + conv_adaptor_vpgen(const conv_adaptor_vpgen&); +diff --git a/include/agg_conv_clip_polygon.h b/include/agg_conv_clip_polygon.h +index 3c34590..e417a7d 100644 +--- a/include/agg_conv_clip_polygon.h ++++ b/include/agg_conv_clip_polygon.h +@@ -60,6 +60,7 @@ namespace agg + double y1() const { return base_type::vpgen().y1(); } + double x2() const { return base_type::vpgen().x2(); } + double y2() const { return base_type::vpgen().y2(); } ++ unsigned type() const { return base_type::type(); } + + private: + conv_clip_polygon(const conv_clip_polygon&); +diff --git a/include/agg_conv_clip_polyline.h b/include/agg_conv_clip_polyline.h +index d45067f..0de4b57 100644 +--- a/include/agg_conv_clip_polyline.h ++++ b/include/agg_conv_clip_polyline.h +@@ -60,6 +60,7 @@ namespace agg + double y1() const { return base_type::vpgen().y1(); } + double x2() const { return base_type::vpgen().x2(); } + double y2() const { return base_type::vpgen().y2(); } ++ unsigned type() const { return base_type::type(); } + + private: + conv_clip_polyline(const conv_clip_polyline&); +diff --git a/include/agg_conv_smooth_poly1.h b/include/agg_conv_smooth_poly1.h +index 15f7f8d..0956c4e 100644 +--- a/include/agg_conv_smooth_poly1.h ++++ b/include/agg_conv_smooth_poly1.h +@@ -48,6 +48,7 @@ namespace agg + + void smooth_value(double v) { base_type::generator().smooth_value(v); } + double smooth_value() const { return base_type::generator().smooth_value(); } ++ unsigned type() const { return base_type::type(); } + + private: + conv_smooth_poly1(const conv_smooth_poly1&); +@@ -70,6 +71,7 @@ namespace agg + + void smooth_value(double v) { m_smooth.generator().smooth_value(v); } + double smooth_value() const { return m_smooth.generator().smooth_value(); } ++ unsigned type() const { return m_smooth.type(); } + + private: + conv_smooth_poly1_curve(const conv_smooth_poly1_curve&); +-- +1.8.1.4 + diff --git a/0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch b/0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch new file mode 100644 index 0000000..547b0d2 --- /dev/null +++ b/0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch @@ -0,0 +1,30 @@ +From 6433a64f4cd41e88499386b0b7c7ae05d30683b8 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sat, 22 Jun 2013 12:33:32 +0100 +Subject: [PATCH 14/15] Avoid potential zero division resulting in nan in + agg::gamma_linear + +--- + include/agg_gamma_functions.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/include/agg_gamma_functions.h b/include/agg_gamma_functions.h +index fa38a45..beb0c04 100644 +--- a/include/agg_gamma_functions.h ++++ b/include/agg_gamma_functions.h +@@ -94,7 +94,11 @@ namespace agg + { + if(x < m_start) return 0.0; + if(x > m_end) return 1.0; +- return (x - m_start) / (m_end - m_start); ++ double delta = m_end - m_start; ++ // avoid nan from potential zero division ++ // https://github.com/mapnik/mapnik/issues/761 ++ if (delta <= 0.0) return 0.0; ++ return (x - m_start) / delta; + } + + private: +-- +1.8.1.4 + diff --git a/0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch b/0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch new file mode 100644 index 0000000..6214bd6 --- /dev/null +++ b/0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch @@ -0,0 +1,24 @@ +From ca818d4dcd428c5560fc3c341fbaf427a7485e32 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Sat, 22 Jun 2013 12:34:37 +0100 +Subject: [PATCH 15/15] Ensure first value in the gamma table is always zero + +--- + include/agg_gamma_functions.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/agg_gamma_functions.h b/include/agg_gamma_functions.h +index beb0c04..b8eda52 100644 +--- a/include/agg_gamma_functions.h ++++ b/include/agg_gamma_functions.h +@@ -49,6 +49,7 @@ namespace agg + + double operator() (double x) const + { ++ if (x == 0.0) return 0.0; + return pow(x, m_gamma); + } + +-- +1.8.1.4 + diff --git a/agg.spec b/agg.spec index d1eb696..8664d57 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 17%{?dist} +Release: 18%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -32,6 +32,10 @@ Patch108: 0008-Declare-multiplication-and-division-operators-as-con.patch Patch109: 0009-Add-a-static-identity-transformation.patch Patch110: 0010-Add-renderer_scanline_aa_alpha.patch Patch111: 0011-Avoid-division-by-zero-in-color-burn-mode.patch +Patch112: 0012-Avoid-pixel-artifacts-when-compositing.patch +Patch113: 0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch +Patch114: 0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch +Patch115: 0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch %description A High Quality Rendering Engine for C++. @@ -63,6 +67,10 @@ using agg. %patch109 -p1 %patch110 -p1 %patch111 -p1 +%patch112 -p1 +%patch113 -p1 +%patch114 -p1 +%patch115 -p1 aclocal autoheader autoconf @@ -108,6 +116,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Sat Jun 22 2013 Tom Hughes - 2.5-18 +- Update mapnik patches + * Sun May 19 2013 Tom Hughes - 2.5-17 - Add patches from mapnik From 2d42287534387b4434f4d70ad97085ef8a2710e2 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 2 Aug 2013 19:24:12 -0500 Subject: [PATCH 20/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 8664d57..e4d5c83 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 18%{?dist} +Release: 19%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -116,6 +116,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Sat Aug 03 2013 Fedora Release Engineering - 2.5-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + * Sat Jun 22 2013 Tom Hughes - 2.5-18 - Update mapnik patches From 301161e6d3273b2e4459f0edf6a4b8ad785f99ce Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 6 Jun 2014 19:15:59 -0500 Subject: [PATCH 21/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index e4d5c83..84a4ff2 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 19%{?dist} +Release: 20%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -116,6 +116,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Sat Jun 07 2014 Fedora Release Engineering - 2.5-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Sat Aug 03 2013 Fedora Release Engineering - 2.5-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild From 89b8f0dabb07484435f308a4a6b1c01491e7ccd4 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 15 Aug 2014 20:07:31 +0000 Subject: [PATCH 22/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 84a4ff2..4b732fd 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 20%{?dist} +Release: 21%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -116,6 +116,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Fri Aug 15 2014 Fedora Release Engineering - 2.5-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Sat Jun 07 2014 Fedora Release Engineering - 2.5-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild From 27d8424e6463984a429e18dff9af7a1586c9eb35 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Sat, 2 May 2015 12:28:15 +0200 Subject: [PATCH 23/26] Rebuilt for GCC 5 C++11 ABI change --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 4b732fd..898051b 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 21%{?dist} +Release: 22%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -116,6 +116,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Sat May 02 2015 Kalev Lember - 2.5-22 +- Rebuilt for GCC 5 C++11 ABI change + * Fri Aug 15 2014 Fedora Release Engineering - 2.5-21 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild From 0028facfeea7bbea62b263ba521971dd811807b7 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Tue, 16 Jun 2015 23:41:06 +0000 Subject: [PATCH 24/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index 898051b..e8c9b7a 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 22%{?dist} +Release: 23%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -116,6 +116,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Tue Jun 16 2015 Fedora Release Engineering - 2.5-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Sat May 02 2015 Kalev Lember - 2.5-22 - Rebuilt for GCC 5 C++11 ABI change From 053910f78a6a97346606302af1eddb99020725de Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 3 Feb 2016 16:01:59 +0000 Subject: [PATCH 25/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- agg.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agg.spec b/agg.spec index e8c9b7a..bce70af 100644 --- a/agg.spec +++ b/agg.spec @@ -1,7 +1,7 @@ Summary: Anti-Grain Geometry graphical rendering engine Name: agg Version: 2.5 -Release: 23%{?dist} +Release: 24%{?dist} Group: System Environment/Libraries URL: http://www.antigrain.com License: GPLv2+ @@ -116,6 +116,9 @@ mv __clean_examples __dist_examples/examples rm -rf $RPM_BUILD_ROOT %changelog +* Wed Feb 03 2016 Fedora Release Engineering - 2.5-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Tue Jun 16 2015 Fedora Release Engineering - 2.5-23 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild From 3fba7fb85a262a7a7e15ce7d102bc40e79912c55 Mon Sep 17 00:00:00 2001 From: Jon Ciesla Date: Tue, 5 Apr 2016 14:26:15 -0400 Subject: [PATCH 26/26] No longer used within Fedora due to changes not accepted upstream from several projects --- .gitignore | 1 - ...rminating-loop-conditions-when-len-1.patch | 81 ------- ...y-aborting-if-the-co-ordinates-are-t.patch | 40 ---- ...from-previous-vertex-if-last-command.patch | 30 --- ...outline_aa-ignore-close_polygon-when.patch | 138 ----------- 0005-Remove-VC-6-workaround.patch | 52 ---- ...ement-grain-merge-blending-mode-GIMP.patch | 85 ------- ...ent-grain-extract-blending-mode-GIMP.patch | 85 ------- ...cation-and-division-operators-as-con.patch | 36 --- ...Add-a-static-identity-transformation.patch | 37 --- 0010-Add-renderer_scanline_aa_alpha.patch | 193 --------------- ...-division-by-zero-in-color-burn-mode.patch | 58 ----- ...oid-pixel-artifacts-when-compositing.patch | 26 -- ...classes-to-allow-access-to-the-origi.patch | 93 -------- ...zero-division-resulting-in-nan-in-ag.patch | 30 --- ...ue-in-the-gamma-table-is-always-zero.patch | 24 -- agg-2.4-depends.patch | 48 ---- agg-2.5-autotools.patch | 11 - agg-2.5-pkgconfig.patch | 10 - agg-generate-tarball.sh | 19 -- agg.spec | 222 ------------------ dead.package | 1 + sources | 1 - 23 files changed, 1 insertion(+), 1320 deletions(-) delete mode 100644 .gitignore delete mode 100644 0001-Fix-non-terminating-loop-conditions-when-len-1.patch delete mode 100644 0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch delete mode 100644 0003-Get-coordinates-from-previous-vertex-if-last-command.patch delete mode 100644 0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch delete mode 100644 0005-Remove-VC-6-workaround.patch delete mode 100644 0006-Implement-grain-merge-blending-mode-GIMP.patch delete mode 100644 0007-Implement-grain-extract-blending-mode-GIMP.patch delete mode 100644 0008-Declare-multiplication-and-division-operators-as-con.patch delete mode 100644 0009-Add-a-static-identity-transformation.patch delete mode 100644 0010-Add-renderer_scanline_aa_alpha.patch delete mode 100644 0011-Avoid-division-by-zero-in-color-burn-mode.patch delete mode 100644 0012-Avoid-pixel-artifacts-when-compositing.patch delete mode 100644 0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch delete mode 100644 0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch delete mode 100644 0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch delete mode 100644 agg-2.4-depends.patch delete mode 100644 agg-2.5-autotools.patch delete mode 100644 agg-2.5-pkgconfig.patch delete mode 100644 agg-generate-tarball.sh delete mode 100644 agg.spec create mode 100644 dead.package delete mode 100644 sources diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 16e0285..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -agg-free-2.5.tar.gz diff --git a/0001-Fix-non-terminating-loop-conditions-when-len-1.patch b/0001-Fix-non-terminating-loop-conditions-when-len-1.patch deleted file mode 100644 index eaf0467..0000000 --- a/0001-Fix-non-terminating-loop-conditions-when-len-1.patch +++ /dev/null @@ -1,81 +0,0 @@ -From efd33aad5e69f36ab343b1f28839a55db4538104 Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 10:55:37 +0100 -Subject: [PATCH 01/15] Fix non-terminating loop conditions when len=1 - -- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) -+ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) - { - sx = (lp.x1 + sx) >> 1; - sy = (lp.y1 + sy) >> 1; - } ---- - include/agg_renderer_outline_aa.h | 8 ++++---- - include/agg_renderer_outline_image.h | 4 ++-- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/include/agg_renderer_outline_aa.h b/include/agg_renderer_outline_aa.h -index ce25a2e..cb2aa00 100644 ---- a/include/agg_renderer_outline_aa.h -+++ b/include/agg_renderer_outline_aa.h -@@ -1659,7 +1659,7 @@ namespace agg - } - else - { -- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) -+ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) - { - sx = (lp.x1 + sx) >> 1; - sy = (lp.y1 + sy) >> 1; -@@ -1726,7 +1726,7 @@ namespace agg - } - else - { -- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len) -+ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len) - { - ex = (lp.x2 + ex) >> 1; - ey = (lp.y2 + ey) >> 1; -@@ -1798,7 +1798,7 @@ namespace agg - } - else - { -- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) -+ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) - { - sx = (lp.x1 + sx) >> 1; - sy = (lp.y1 + sy) >> 1; -@@ -1811,7 +1811,7 @@ namespace agg - } - else - { -- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len) -+ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len) - { - ex = (lp.x2 + ex) >> 1; - ey = (lp.y2 + ey) >> 1; -diff --git a/include/agg_renderer_outline_image.h b/include/agg_renderer_outline_image.h -index fbfac10..66d2b9a 100644 ---- a/include/agg_renderer_outline_image.h -+++ b/include/agg_renderer_outline_image.h -@@ -969,7 +969,7 @@ namespace agg - } - else - { -- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len) -+ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len) - { - sx = (lp.x1 + sx) >> 1; - sy = (lp.y1 + sy) >> 1; -@@ -982,7 +982,7 @@ namespace agg - } - else - { -- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len) -+ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len) - { - ex = (lp.x2 + ex) >> 1; - ey = (lp.y2 + ey) >> 1; --- -1.8.1.4 - diff --git a/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch b/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch deleted file mode 100644 index 4fe7434..0000000 --- a/0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch +++ /dev/null @@ -1,40 +0,0 @@ -From e269fe9b62af6fe314cebe0ee7a6d6d1a4a84d1c Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 11:03:26 +0100 -Subject: [PATCH 02/15] Cure recursion by aborting if the co-ordinates are to - big to handle - ---- - include/agg_rasterizer_cells_aa.h | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/include/agg_rasterizer_cells_aa.h b/include/agg_rasterizer_cells_aa.h -index d3bb138..3a616d9 100644 ---- a/include/agg_rasterizer_cells_aa.h -+++ b/include/agg_rasterizer_cells_aa.h -@@ -40,7 +40,8 @@ - #define AGG_RASTERIZER_CELLS_AA_INCLUDED - - #include --#include -+#include -+#include - #include "agg_math.h" - #include "agg_array.h" - -@@ -333,6 +334,12 @@ namespace agg - { - int cx = (x1 + x2) >> 1; - int cy = (y1 + y2) >> 1; -+ -+ // Bail if values are so large they are likely to wrap -+ if ((std::abs(x1) >= std::numeric_limits::max()/2) || (std::abs(y1) >= std::numeric_limits::max()/2) || -+ (std::abs(x2) >= std::numeric_limits::max()/2) || (std::abs(y2) >= std::numeric_limits::max()/2)) -+ return; -+ - line(x1, y1, cx, cy); - line(cx, cy, x2, y2); - } --- -1.8.1.4 - diff --git a/0003-Get-coordinates-from-previous-vertex-if-last-command.patch b/0003-Get-coordinates-from-previous-vertex-if-last-command.patch deleted file mode 100644 index b12684d..0000000 --- a/0003-Get-coordinates-from-previous-vertex-if-last-command.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 032d5342430f4c5dfbc34a2817d67386a14fd51b Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 11:40:49 +0100 -Subject: [PATCH 03/15] Get coordinates from previous vertex if last command is - path_cmd_end_poly - ---- - include/agg_path_storage.h | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/include/agg_path_storage.h b/include/agg_path_storage.h -index 7be7393..8922fc8 100644 ---- a/include/agg_path_storage.h -+++ b/include/agg_path_storage.h -@@ -878,6 +878,12 @@ namespace agg - *x += x2; - *y += y2; - } -+ else if (!is_stop(m_vertices.last_command()) && -+ is_vertex(m_vertices.prev_vertex(&x2, &y2))) -+ { -+ *x += x2; -+ *y += y2; -+ } - } - } - --- -1.8.1.4 - diff --git a/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch b/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch deleted file mode 100644 index 0cecaf7..0000000 --- a/0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch +++ /dev/null @@ -1,138 +0,0 @@ -From b9c4b1c72b4ad6b24c37f402d3eec39ef393b0eb Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 14:17:43 +0100 -Subject: [PATCH 04/15] Make rasterizer_outline_aa ignore close_polygon when - vertex count < 3 - ---- - include/agg_rasterizer_outline_aa.h | 107 ++++++++++++++++++------------------ - 1 file changed, 52 insertions(+), 55 deletions(-) - -diff --git a/include/agg_rasterizer_outline_aa.h b/include/agg_rasterizer_outline_aa.h -index 4d6dd57..24301d5 100644 ---- a/include/agg_rasterizer_outline_aa.h -+++ b/include/agg_rasterizer_outline_aa.h -@@ -333,68 +333,65 @@ namespace agg - int y2; - int lprev; - -- if(close_polygon) -+ if(close_polygon && (m_src_vertices.size() >= 3)) - { -- if(m_src_vertices.size() >= 3) -+ dv.idx = 2; -+ -+ v = &m_src_vertices[m_src_vertices.size() - 1]; -+ x1 = v->x; -+ y1 = v->y; -+ lprev = v->len; -+ -+ v = &m_src_vertices[0]; -+ x2 = v->x; -+ y2 = v->y; -+ dv.lcurr = v->len; -+ line_parameters prev(x1, y1, x2, y2, lprev); -+ -+ v = &m_src_vertices[1]; -+ dv.x1 = v->x; -+ dv.y1 = v->y; -+ dv.lnext = v->len; -+ dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr); -+ -+ v = &m_src_vertices[dv.idx]; -+ dv.x2 = v->x; -+ dv.y2 = v->y; -+ dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext); -+ -+ dv.xb1 = 0; -+ dv.yb1 = 0; -+ dv.xb2 = 0; -+ dv.yb2 = 0; -+ -+ switch(m_line_join) - { -- dv.idx = 2; -- -- v = &m_src_vertices[m_src_vertices.size() - 1]; -- x1 = v->x; -- y1 = v->y; -- lprev = v->len; -- -- v = &m_src_vertices[0]; -- x2 = v->x; -- y2 = v->y; -- dv.lcurr = v->len; -- line_parameters prev(x1, y1, x2, y2, lprev); -- -- v = &m_src_vertices[1]; -- dv.x1 = v->x; -- dv.y1 = v->y; -- dv.lnext = v->len; -- dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr); -- -- v = &m_src_vertices[dv.idx]; -- dv.x2 = v->x; -- dv.y2 = v->y; -- dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext); -- -- dv.xb1 = 0; -- dv.yb1 = 0; -- dv.xb2 = 0; -- dv.yb2 = 0; -- -- switch(m_line_join) -- { -- case outline_no_join: -- dv.flags = 3; -- break; -+ case outline_no_join: -+ dv.flags = 3; -+ break; - -- case outline_miter_join: -- case outline_round_join: -- dv.flags = -- (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) | -- ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1); -- break; -+ case outline_miter_join: -+ case outline_round_join: -+ dv.flags = -+ (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) | -+ ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1); -+ break; - -- case outline_miter_accurate_join: -- dv.flags = 0; -- break; -- } -+ case outline_miter_accurate_join: -+ dv.flags = 0; -+ break; -+ } - -- if((dv.flags & 1) == 0 && m_line_join != outline_round_join) -- { -- bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1); -- } -+ if((dv.flags & 1) == 0 && m_line_join != outline_round_join) -+ { -+ bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1); -+ } - -- if((dv.flags & 2) == 0 && m_line_join != outline_round_join) -- { -- bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2); -- } -- draw(dv, 0, m_src_vertices.size()); -+ if((dv.flags & 2) == 0 && m_line_join != outline_round_join) -+ { -+ bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2); - } -+ draw(dv, 0, m_src_vertices.size()); - } - else - { --- -1.8.1.4 - diff --git a/0005-Remove-VC-6-workaround.patch b/0005-Remove-VC-6-workaround.patch deleted file mode 100644 index f38f7c4..0000000 --- a/0005-Remove-VC-6-workaround.patch +++ /dev/null @@ -1,52 +0,0 @@ -From b8c43fb0ba13af0cc2b1050f48f81d76d2fdf0c7 Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 15:04:05 +0100 -Subject: [PATCH 05/15] Remove VC++ 6 workaround - ---- - include/agg_renderer_scanline.h | 29 +---------------------------- - 1 file changed, 1 insertion(+), 28 deletions(-) - -diff --git a/include/agg_renderer_scanline.h b/include/agg_renderer_scanline.h -index c3bb6f0..c27ca60 100644 ---- a/include/agg_renderer_scanline.h -+++ b/include/agg_renderer_scanline.h -@@ -79,34 +79,7 @@ namespace agg - sl.reset(ras.min_x(), ras.max_x()); - while(ras.sweep_scanline(sl)) - { -- //render_scanline_aa_solid(sl, ren, ren_color); -- -- // This code is equivalent to the above call (copy/paste). -- // It's just a "manual" optimization for old compilers, -- // like Microsoft Visual C++ v6.0 -- //------------------------------- -- int y = sl.y(); -- unsigned num_spans = sl.num_spans(); -- typename Scanline::const_iterator span = sl.begin(); -- -- for(;;) -- { -- int x = span->x; -- if(span->len > 0) -- { -- ren.blend_solid_hspan(x, y, (unsigned)span->len, -- ren_color, -- span->covers); -- } -- else -- { -- ren.blend_hline(x, y, (unsigned)(x - span->len - 1), -- ren_color, -- *(span->covers)); -- } -- if(--num_spans == 0) break; -- ++span; -- } -+ render_scanline_aa_solid(sl, ren, ren_color); - } - } - } --- -1.8.1.4 - diff --git a/0006-Implement-grain-merge-blending-mode-GIMP.patch b/0006-Implement-grain-merge-blending-mode-GIMP.patch deleted file mode 100644 index f1e465b..0000000 --- a/0006-Implement-grain-merge-blending-mode-GIMP.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 9422570f4e099a834fc43619f7b2a7eb6b442e25 Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 15:31:01 +0100 -Subject: [PATCH 06/15] Implement grain-merge blending mode (GIMP) - ---- - include/agg_pixfmt_rgba.h | 42 ++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 40 insertions(+), 2 deletions(-) - -diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index 79d10dc..f576ce4 100644 ---- a/include/agg_pixfmt_rgba.h -+++ b/include/agg_pixfmt_rgba.h -@@ -1401,9 +1401,46 @@ namespace agg - } - }; - -+ //================================================comp_op_rgba_grain_merge -+ template struct comp_op_rgba_grain_merge -+ { -+ typedef ColorT color_type; -+ typedef Order order_type; -+ typedef typename color_type::value_type value_type; -+ typedef typename color_type::calc_type calc_type; -+ typedef typename color_type::long_type long_type; -+ enum base_scale_e -+ { -+ base_shift = color_type::base_shift, -+ base_mask = color_type::base_mask -+ }; - -+ // E = I + M - 128 -+ static AGG_INLINE void blend_pix(value_type* p, -+ unsigned sr, unsigned sg, unsigned sb, -+ unsigned sa, unsigned cover) -+ { - -- -+ if(cover < 255) -+ { -+ sr = (sr * cover + 255) >> 8; -+ sg = (sg * cover + 255) >> 8; -+ sb = (sb * cover + 255) >> 8; -+ sa = (sa * cover + 255) >> 8; -+ } -+ if(sa) -+ { -+ calc_type da = p[Order::A]; -+ int dr = sr + p[Order::R] - 128; -+ int dg = sg + p[Order::G] - 128; -+ int db = sb + p[Order::B] - 128; -+ p[Order::R] = (value_type)(dr < 0 ? 0 : (dr > 255 ? 255 : dr)); -+ p[Order::G] = (value_type)(dg < 0 ? 0 : (dg > 255 ? 255 : dg)); -+ p[Order::B] = (value_type)(db < 0 ? 0 : (db > 255 ? 255 : db)); -+ p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); -+ } -+ } -+ }; - - //======================================================comp_op_table_rgba - template struct comp_op_table_rgba -@@ -1451,6 +1488,7 @@ namespace agg - comp_op_rgba_contrast ::blend_pix, - comp_op_rgba_invert ::blend_pix, - comp_op_rgba_invert_rgb ::blend_pix, -+ comp_op_rgba_grain_merge::blend_pix, - 0 - }; - -@@ -1486,6 +1524,7 @@ namespace agg - comp_op_contrast, //----comp_op_contrast - comp_op_invert, //----comp_op_invert - comp_op_invert_rgb, //----comp_op_invert_rgb -+ comp_op_grain_merge, //----comp_op_grain_merge - - end_of_comp_op_e - }; -@@ -2908,4 +2947,3 @@ namespace agg - } - - #endif -- --- -1.8.1.4 - diff --git a/0007-Implement-grain-extract-blending-mode-GIMP.patch b/0007-Implement-grain-extract-blending-mode-GIMP.patch deleted file mode 100644 index cafb36e..0000000 --- a/0007-Implement-grain-extract-blending-mode-GIMP.patch +++ /dev/null @@ -1,85 +0,0 @@ -From abd440342e166a90d08610bf5b31d2a8357eafbe Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 15:43:18 +0100 -Subject: [PATCH 07/15] Implement grain-extract blending mode (GIMP) - ---- - include/agg_pixfmt_rgba.h | 48 +++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 48 insertions(+) - -diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index f576ce4..42f0a05 100644 ---- a/include/agg_pixfmt_rgba.h -+++ b/include/agg_pixfmt_rgba.h -@@ -1442,6 +1442,52 @@ namespace agg - } - }; - -+ //==============================================comp_op_rgba_grain_extract -+ template struct comp_op_rgba_grain_extract -+ { -+ typedef ColorT color_type; -+ typedef Order order_type; -+ typedef typename color_type::value_type value_type; -+ typedef typename color_type::calc_type calc_type; -+ typedef typename color_type::long_type long_type; -+ enum base_scale_e -+ { -+ base_shift = color_type::base_shift, -+ base_mask = color_type::base_mask -+ }; -+ -+ // E = I - M + 128 -+ static AGG_INLINE void blend_pix(value_type* p, -+ unsigned sr, unsigned sg, unsigned sb, -+ unsigned sa, unsigned cover) -+ { -+ calc_type da = (p[Order::A] * sa + 255) >> 8; -+ -+ int dr = p[Order::R] - sr + 128; -+ int dg = p[Order::G] - sg + 128; -+ int db = p[Order::B] - sb + 128; -+ -+ dr = dr < 0 ? 0 : (dr > 255 ? 255 : dr); -+ dg = dg < 0 ? 0 : (dg > 255 ? 255 : dg); -+ db = db < 0 ? 0 : (db > 255 ? 255 : db); -+ -+ p[Order::A] = da; -+ -+ if(da < 255) -+ { -+ p[Order::R] = (dr * da + 255) >> 8; -+ p[Order::G] = (dg * da + 255) >> 8; -+ p[Order::B] = (db * da + 255) >> 8; -+ } -+ else -+ { -+ p[Order::R] = dr; -+ p[Order::G] = dg; -+ p[Order::B] = db; -+ } -+ } -+ }; -+ - //======================================================comp_op_table_rgba - template struct comp_op_table_rgba - { -@@ -1489,6 +1535,7 @@ namespace agg - comp_op_rgba_invert ::blend_pix, - comp_op_rgba_invert_rgb ::blend_pix, - comp_op_rgba_grain_merge::blend_pix, -+ comp_op_rgba_grain_extract::blend_pix, - 0 - }; - -@@ -1525,6 +1572,7 @@ namespace agg - comp_op_invert, //----comp_op_invert - comp_op_invert_rgb, //----comp_op_invert_rgb - comp_op_grain_merge, //----comp_op_grain_merge -+ comp_op_grain_extract, //----comp_op_grain_extract - - end_of_comp_op_e - }; --- -1.8.1.4 - diff --git a/0008-Declare-multiplication-and-division-operators-as-con.patch b/0008-Declare-multiplication-and-division-operators-as-con.patch deleted file mode 100644 index 0ed92ee..0000000 --- a/0008-Declare-multiplication-and-division-operators-as-con.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 2688af280836b95908d3cfd6915510d55de673b8 Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 16:15:01 +0100 -Subject: [PATCH 08/15] Declare multiplication and division operators as const - ---- - include/agg_trans_affine.h | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/include/agg_trans_affine.h b/include/agg_trans_affine.h -index a662099..2f602a0 100644 ---- a/include/agg_trans_affine.h -+++ b/include/agg_trans_affine.h -@@ -216,15 +216,15 @@ namespace agg - } - - // Multiply the matrix by another one and return -- // the result in a separete matrix. -- trans_affine operator * (const trans_affine& m) -+ // the result in a separate matrix. -+ trans_affine operator * (const trans_affine& m) const - { - return trans_affine(*this).multiply(m); - } - - // Multiply the matrix by inverse of another one -- // and return the result in a separete matrix. -- trans_affine operator / (const trans_affine& m) -+ // and return the result in a separate matrix. -+ trans_affine operator / (const trans_affine& m) const - { - return trans_affine(*this).multiply_inv(m); - } --- -1.8.1.4 - diff --git a/0009-Add-a-static-identity-transformation.patch b/0009-Add-a-static-identity-transformation.patch deleted file mode 100644 index 01555cb..0000000 --- a/0009-Add-a-static-identity-transformation.patch +++ /dev/null @@ -1,37 +0,0 @@ -From be9ed90897bc43b4547a3a1f8046827caaf13b4c Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 16:15:36 +0100 -Subject: [PATCH 09/15] Add a static identity transformation - ---- - include/agg_trans_affine.h | 1 + - src/agg_trans_affine.cpp | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/include/agg_trans_affine.h b/include/agg_trans_affine.h -index 2f602a0..67fe5ca 100644 ---- a/include/agg_trans_affine.h -+++ b/include/agg_trans_affine.h -@@ -92,6 +92,7 @@ namespace agg - //---------------------------------------------------------------------- - struct trans_affine - { -+ static const trans_affine identity; - double sx, shy, shx, sy, tx, ty; - - //------------------------------------------ Construction -diff --git a/src/agg_trans_affine.cpp b/src/agg_trans_affine.cpp -index aca18c2..b3d9bc0 100644 ---- a/src/agg_trans_affine.cpp -+++ b/src/agg_trans_affine.cpp -@@ -28,6 +28,7 @@ - - namespace agg - { -+ const trans_affine trans_affine::identity; - - //------------------------------------------------------------------------ - const trans_affine& trans_affine::parl_to_parl(const double* src, --- -1.8.1.4 - diff --git a/0010-Add-renderer_scanline_aa_alpha.patch b/0010-Add-renderer_scanline_aa_alpha.patch deleted file mode 100644 index b0be258..0000000 --- a/0010-Add-renderer_scanline_aa_alpha.patch +++ /dev/null @@ -1,193 +0,0 @@ -From 749c8cd11e9e6f81e93ae5ce19258431722b6bdf Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 16:43:25 +0100 -Subject: [PATCH 10/15] Add renderer_scanline_aa_alpha - ---- - include/agg_pixfmt_rgba.h | 24 +++++++++++++- - include/agg_renderer_base.h | 28 ++++++++++++++++ - include/agg_renderer_scanline.h | 71 +++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 122 insertions(+), 1 deletion(-) - -diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index 42f0a05..6c4bc37 100644 ---- a/include/agg_pixfmt_rgba.h -+++ b/include/agg_pixfmt_rgba.h -@@ -2247,7 +2247,6 @@ namespace agg - } - - -- - //-------------------------------------------------------------------- - void blend_color_vspan(int x, int y, - unsigned len, -@@ -2751,6 +2750,29 @@ namespace agg - } - - //-------------------------------------------------------------------- -+ void blend_color_hspan_alpha(int x, int y, unsigned len, -+ const color_type* colors, -+ value_type alpha, -+ const int8u* covers, -+ int8u cover) -+ { -+ value_type* p = (value_type*)m_rbuf->row_ptr(x, y, len) + (x << 2); -+ do -+ { -+ blender_type::blend_pix(m_comp_op, -+ p, -+ (colors->r * alpha + 255) >> 8, -+ (colors->g * alpha + 255) >> 8, -+ (colors->b * alpha + 255) >> 8, -+ (colors->a * alpha + 255) >> 8, -+ covers ? *covers++ : cover); -+ p += 4; -+ ++colors; -+ } -+ while(--len); -+ } -+ -+ //-------------------------------------------------------------------- - void blend_color_vspan(int x, int y, unsigned len, - const color_type* colors, - const int8u* covers, -diff --git a/include/agg_renderer_base.h b/include/agg_renderer_base.h -index 1808944..25f07c3 100644 ---- a/include/agg_renderer_base.h -+++ b/include/agg_renderer_base.h -@@ -37,6 +37,7 @@ namespace agg - public: - typedef PixelFormat pixfmt_type; - typedef typename pixfmt_type::color_type color_type; -+ typedef typename pixfmt_type::color_type::value_type value_type; - typedef typename pixfmt_type::row_data row_data; - - //-------------------------------------------------------------------- -@@ -383,6 +384,33 @@ namespace agg - } - - //-------------------------------------------------------------------- -+ void blend_color_hspan_alpha(int x, int y, int len, -+ const color_type* colors, -+ value_type alpha, -+ const cover_type* covers, -+ cover_type cover = agg::cover_full) -+ { -+ if(y > ymax()) return; -+ if(y < ymin()) return; -+ -+ if(x < xmin()) -+ { -+ int d = xmin() - x; -+ len -= d; -+ if(len <= 0) return; -+ if(covers) covers += d; -+ colors += d; -+ x = xmin(); -+ } -+ if(x + len > xmax()) -+ { -+ len = xmax() - x + 1; -+ if(len <= 0) return; -+ } -+ m_ren->blend_color_hspan_alpha(x, y, len, colors, alpha, covers, cover); -+ } -+ -+ //-------------------------------------------------------------------- - void blend_color_vspan(int x, int y, int len, - const color_type* colors, - const cover_type* covers, -diff --git a/include/agg_renderer_scanline.h b/include/agg_renderer_scanline.h -index c27ca60..4fcb557 100644 ---- a/include/agg_renderer_scanline.h -+++ b/include/agg_renderer_scanline.h -@@ -156,6 +156,35 @@ namespace agg - } - } - -+ //================================================render_scanline_aa_alpha -+ template -+ void render_scanline_aa_alpha(const Scanline& sl, BaseRenderer& ren, -+ SpanAllocator& alloc, SpanGenerator& span_gen, -+ unsigned alpha) -+ { -+ int y = sl.y(); -+ -+ unsigned num_spans = sl.num_spans(); -+ typename Scanline::const_iterator span = sl.begin(); -+ for(;;) -+ { -+ int x = span->x; -+ int len = span->len; -+ const typename Scanline::cover_type* covers = span->covers; -+ -+ if(len < 0) len = -len; -+ typename BaseRenderer::color_type* colors = alloc.allocate(len); -+ span_gen.generate(colors, x, y, len); -+ ren.blend_color_hspan_alpha(x, y, len, colors, alpha, -+ (span->len < 0) ? 0 : covers, *covers); -+ -+ if(--num_spans == 0) break; -+ ++span; -+ } -+ } -+ -+ - //=====================================================render_scanlines_aa - template -@@ -216,8 +245,50 @@ namespace agg - }; - - -+ //==============================================renderer_scanline_aa_alpha -+ template -+ class renderer_scanline_aa_alpha -+ { -+ public: -+ typedef BaseRenderer base_ren_type; -+ typedef SpanAllocator alloc_type; -+ typedef SpanGenerator span_gen_type; - -+ //-------------------------------------------------------------------- -+ renderer_scanline_aa_alpha() : m_ren(0), m_alloc(0), m_span_gen(0), m_alpha(1.0) {} -+ renderer_scanline_aa_alpha(base_ren_type& ren, -+ alloc_type& alloc, -+ span_gen_type& span_gen, -+ unsigned alpha) : -+ m_ren(&ren), -+ m_alloc(&alloc), -+ m_span_gen(&span_gen), -+ m_alpha(alpha) -+ {} -+ void attach(base_ren_type& ren, -+ alloc_type& alloc, -+ span_gen_type& span_gen) -+ { -+ m_ren = &ren; -+ m_alloc = &alloc; -+ m_span_gen = &span_gen; -+ } - -+ //-------------------------------------------------------------------- -+ void prepare() { m_span_gen->prepare(); } -+ -+ //-------------------------------------------------------------------- -+ template void render(const Scanline& sl) -+ { -+ render_scanline_aa_alpha(sl, *m_ren, *m_alloc, *m_span_gen, m_alpha); -+ } -+ -+ private: -+ base_ren_type* m_ren; -+ alloc_type* m_alloc; -+ span_gen_type* m_span_gen; -+ unsigned m_alpha; -+ }; - - - //===============================================render_scanline_bin_solid --- -1.8.1.4 - diff --git a/0011-Avoid-division-by-zero-in-color-burn-mode.patch b/0011-Avoid-division-by-zero-in-color-burn-mode.patch deleted file mode 100644 index 2a0d198..0000000 --- a/0011-Avoid-division-by-zero-in-color-burn-mode.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 0ec68d7f5695403eccac75025ba7f6f7ecf1814e Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sun, 19 May 2013 16:49:08 +0100 -Subject: [PATCH 11/15] Avoid division by zero in color-burn mode - -FIXME: re-work using latest math from http://www.w3.org/TR/SVGCompositing/ ---- - include/agg_pixfmt_rgba.h | 21 ++++++++++++++++++--- - 1 file changed, 18 insertions(+), 3 deletions(-) - -diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index 6c4bc37..5d6b511 100644 ---- a/include/agg_pixfmt_rgba.h -+++ b/include/agg_pixfmt_rgba.h -@@ -1027,6 +1027,21 @@ namespace agg - // Dca' = Sa.(Sca.Da + Dca.Sa - Sa.Da)/Sca + Sca.(1 - Da) + Dca.(1 - Sa) - // - // Da' = Sa + Da - Sa.Da -+ -+ -+ // http://www.w3.org/TR/SVGCompositing/ -+ // if Sca == 0 and Dca == Da -+ // Dca' = Sa × Da + Sca × (1 - Da) + Dca × (1 - Sa) -+ // = Sa × Da + Dca × (1 - Sa) -+ // = Da = Dca -+ // otherwise if Sca == 0 -+ // Dca' = Sca × (1 - Da) + Dca × (1 - Sa) -+ // = Dca × (1 - Sa) -+ // otherwise if Sca > 0 -+ // Dca' = Sa × Da - Sa × Da × min(1, (1 - Dca/Da) × Sa/Sca) + Sca × (1 - Da) + Dca × (1 - Sa) -+ // = Sa × Da × (1 - min(1, (1 - Dca/Da) × Sa/Sca)) + Sca × (1 - Da) + Dca × (1 - Sa) -+ -+ // sa * da * (255 - std::min(255, (255 - p[0]/da)*(sa/(sc*sa)) + - static AGG_INLINE void blend_pix(value_type* p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) -@@ -1056,15 +1071,15 @@ namespace agg - - p[Order::R] = (value_type)(((srda + drsa <= sada) ? - sr * d1a + dr * s1a : -- sa * (srda + drsa - sada) / sr + sr * d1a + dr * s1a + base_mask) >> base_shift); -+ (sr > 0 ? sa * (srda + drsa - sada) / sr + sr * d1a + dr * s1a + base_mask : 0)) >> base_shift); - - p[Order::G] = (value_type)(((sgda + dgsa <= sada) ? - sg * d1a + dg * s1a : -- sa * (sgda + dgsa - sada) / sg + sg * d1a + dg * s1a + base_mask) >> base_shift); -+ (sg > 0 ? sa * (sgda + dgsa - sada) / sg + sg * d1a + dg * s1a + base_mask : 0)) >> base_shift); - - p[Order::B] = (value_type)(((sbda + dbsa <= sada) ? - sb * d1a + db * s1a : -- sa * (sbda + dbsa - sada) / sb + sb * d1a + db * s1a + base_mask) >> base_shift); -+ (sb > 0 ? sa * (sbda + dbsa - sada) / sb + sb * d1a + db * s1a + base_mask : 0)) >> base_shift); - - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } --- -1.8.1.4 - diff --git a/0012-Avoid-pixel-artifacts-when-compositing.patch b/0012-Avoid-pixel-artifacts-when-compositing.patch deleted file mode 100644 index b3e641e..0000000 --- a/0012-Avoid-pixel-artifacts-when-compositing.patch +++ /dev/null @@ -1,26 +0,0 @@ -From bf0e0b71360cfbc690a29f4abe15d7b9b61b8479 Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sat, 22 Jun 2013 12:11:54 +0100 -Subject: [PATCH 12/15] Avoid pixel artifacts when compositing - -Change src_over alpha to avoid pixel artifacts by reordering computations. ---- - include/agg_pixfmt_rgba.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h -index 5d6b511..bb255cd 100644 ---- a/include/agg_pixfmt_rgba.h -+++ b/include/agg_pixfmt_rgba.h -@@ -346,7 +346,7 @@ namespace agg - p[Order::R] = (value_type)(sr + ((p[Order::R] * s1a + base_mask) >> base_shift)); - p[Order::G] = (value_type)(sg + ((p[Order::G] * s1a + base_mask) >> base_shift)); - p[Order::B] = (value_type)(sb + ((p[Order::B] * s1a + base_mask) >> base_shift)); -- p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask) >> base_shift)); -+ p[Order::A] = (value_type)(sa + ((p[Order::A] * s1a + base_mask) >> base_shift)); - } - }; - --- -1.8.1.4 - diff --git a/0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch b/0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch deleted file mode 100644 index 9deb904..0000000 --- a/0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 6f1ab5f4b470bcf4e7e72aac6e2f7f6ee3e7b424 Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sat, 22 Jun 2013 12:16:42 +0100 -Subject: [PATCH 13/15] Modify agg conv classes to allow access to the original - geometry type - ---- - include/agg_conv_adaptor_vcgen.h | 2 ++ - include/agg_conv_adaptor_vpgen.h | 1 + - include/agg_conv_clip_polygon.h | 1 + - include/agg_conv_clip_polyline.h | 1 + - include/agg_conv_smooth_poly1.h | 2 ++ - 5 files changed, 7 insertions(+) - -diff --git a/include/agg_conv_adaptor_vcgen.h b/include/agg_conv_adaptor_vcgen.h -index 7bd9b07..fef4579 100644 ---- a/include/agg_conv_adaptor_vcgen.h -+++ b/include/agg_conv_adaptor_vcgen.h -@@ -38,6 +38,7 @@ namespace agg - - void rewind(unsigned) {} - unsigned vertex(double*, double*) { return path_cmd_stop; } -+ unsigned type() const { return 0; } - }; - - -@@ -73,6 +74,7 @@ namespace agg - } - - unsigned vertex(double* x, double* y); -+ unsigned type() const { return m_source->type(); } - - private: - // Prohibit copying -diff --git a/include/agg_conv_adaptor_vpgen.h b/include/agg_conv_adaptor_vpgen.h -index dca9415..a39102d 100644 ---- a/include/agg_conv_adaptor_vpgen.h -+++ b/include/agg_conv_adaptor_vpgen.h -@@ -42,6 +42,7 @@ namespace agg - - void rewind(unsigned path_id); - unsigned vertex(double* x, double* y); -+ unsigned type() const { return m_source->type(); } - - private: - conv_adaptor_vpgen(const conv_adaptor_vpgen&); -diff --git a/include/agg_conv_clip_polygon.h b/include/agg_conv_clip_polygon.h -index 3c34590..e417a7d 100644 ---- a/include/agg_conv_clip_polygon.h -+++ b/include/agg_conv_clip_polygon.h -@@ -60,6 +60,7 @@ namespace agg - double y1() const { return base_type::vpgen().y1(); } - double x2() const { return base_type::vpgen().x2(); } - double y2() const { return base_type::vpgen().y2(); } -+ unsigned type() const { return base_type::type(); } - - private: - conv_clip_polygon(const conv_clip_polygon&); -diff --git a/include/agg_conv_clip_polyline.h b/include/agg_conv_clip_polyline.h -index d45067f..0de4b57 100644 ---- a/include/agg_conv_clip_polyline.h -+++ b/include/agg_conv_clip_polyline.h -@@ -60,6 +60,7 @@ namespace agg - double y1() const { return base_type::vpgen().y1(); } - double x2() const { return base_type::vpgen().x2(); } - double y2() const { return base_type::vpgen().y2(); } -+ unsigned type() const { return base_type::type(); } - - private: - conv_clip_polyline(const conv_clip_polyline&); -diff --git a/include/agg_conv_smooth_poly1.h b/include/agg_conv_smooth_poly1.h -index 15f7f8d..0956c4e 100644 ---- a/include/agg_conv_smooth_poly1.h -+++ b/include/agg_conv_smooth_poly1.h -@@ -48,6 +48,7 @@ namespace agg - - void smooth_value(double v) { base_type::generator().smooth_value(v); } - double smooth_value() const { return base_type::generator().smooth_value(); } -+ unsigned type() const { return base_type::type(); } - - private: - conv_smooth_poly1(const conv_smooth_poly1&); -@@ -70,6 +71,7 @@ namespace agg - - void smooth_value(double v) { m_smooth.generator().smooth_value(v); } - double smooth_value() const { return m_smooth.generator().smooth_value(); } -+ unsigned type() const { return m_smooth.type(); } - - private: - conv_smooth_poly1_curve(const conv_smooth_poly1_curve&); --- -1.8.1.4 - diff --git a/0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch b/0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch deleted file mode 100644 index 547b0d2..0000000 --- a/0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 6433a64f4cd41e88499386b0b7c7ae05d30683b8 Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sat, 22 Jun 2013 12:33:32 +0100 -Subject: [PATCH 14/15] Avoid potential zero division resulting in nan in - agg::gamma_linear - ---- - include/agg_gamma_functions.h | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/include/agg_gamma_functions.h b/include/agg_gamma_functions.h -index fa38a45..beb0c04 100644 ---- a/include/agg_gamma_functions.h -+++ b/include/agg_gamma_functions.h -@@ -94,7 +94,11 @@ namespace agg - { - if(x < m_start) return 0.0; - if(x > m_end) return 1.0; -- return (x - m_start) / (m_end - m_start); -+ double delta = m_end - m_start; -+ // avoid nan from potential zero division -+ // https://github.com/mapnik/mapnik/issues/761 -+ if (delta <= 0.0) return 0.0; -+ return (x - m_start) / delta; - } - - private: --- -1.8.1.4 - diff --git a/0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch b/0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch deleted file mode 100644 index 6214bd6..0000000 --- a/0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch +++ /dev/null @@ -1,24 +0,0 @@ -From ca818d4dcd428c5560fc3c341fbaf427a7485e32 Mon Sep 17 00:00:00 2001 -From: Tom Hughes -Date: Sat, 22 Jun 2013 12:34:37 +0100 -Subject: [PATCH 15/15] Ensure first value in the gamma table is always zero - ---- - include/agg_gamma_functions.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/include/agg_gamma_functions.h b/include/agg_gamma_functions.h -index beb0c04..b8eda52 100644 ---- a/include/agg_gamma_functions.h -+++ b/include/agg_gamma_functions.h -@@ -49,6 +49,7 @@ namespace agg - - double operator() (double x) const - { -+ if (x == 0.0) return 0.0; - return pow(x, m_gamma); - } - --- -1.8.1.4 - diff --git a/agg-2.4-depends.patch b/agg-2.4-depends.patch deleted file mode 100644 index 9d4f6e3..0000000 --- a/agg-2.4-depends.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- agg-2.4.orig/font_freetype/Makefile.am 2005-10-18 11:45:40.000000000 +0100 -+++ agg-2.4/font_freetype/Makefile.am 2006-07-10 15:11:55.000000000 +0100 -@@ -4,8 +4,9 @@ - agginclude_HEADERS = agg_font_freetype.h - lib_LTLIBRARIES = libaggfontfreetype.la - --libaggfontfreetype_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ @FREETYPE_LIBS@ -+libaggfontfreetype_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ - libaggfontfreetype_la_SOURCES = agg_font_freetype.cpp - libaggfontfreetype_la_CXXFLAGS = -I$(top_srcdir)/include @FREETYPE_CFLAGS@ -+libaggfontfreetype_la_LIBADD = ../src/libagg.la @FREETYPE_LIBS@ - endif - ---- agg-2.4.orig/src/platform/sdl/Makefile.am 2005-10-17 23:49:35.000000000 +0100 -+++ agg-2.4/src/platform/sdl/Makefile.am 2006-07-10 15:11:55.000000000 +0100 -@@ -5,6 +5,6 @@ - libaggplatformsdl_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ - libaggplatformsdl_la_SOURCES = agg_platform_support.cpp - libaggplatformsdl_la_CXXFLAGS = -I$(top_srcdir)/include @SDL_CFLAGS@ --libaggplatformsdl_la_LIBADD = @SDL_LIBS@ -+libaggplatformsdl_la_LIBADD = ../../libagg.la @SDL_LIBS@ - endif - ---- agg-2.5.orig/configure.in 2006-10-09 05:06:36.000000000 +0100 -+++ agg-2.5/configure.in 2007-01-07 14:07:39.000000000 +0000 -@@ -122,7 +122,8 @@ - fi - AM_CONDITIONAL(ENABLE_X11,[test x$no_x = x -a xno != x$enable_platform -a x$win32_host != xyes]) - AC_SUBST(x_includes) --AC_SUBST(x_libraries) -+test -n "$x_libraries" && X_LDFLAGS="-L$x_libraries" -+AC_SUBST(X_LDFLAGS) - dnl ############################################### - - dnl Settung up library version ---- agg-2.5.orig/src/platform/X11/Makefile.am 2006-12-11 00:59:45.000000000 +0000 -+++ agg-2.5/src/platform/X11/Makefile.am 2007-01-07 14:07:39.000000000 +0000 -@@ -1,8 +1,8 @@ - if ENABLE_X11 - lib_LTLIBRARIES = libaggplatformX11.la - --libaggplatformX11_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ -L@x_libraries@ -+libaggplatformX11_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ @X_LDFLAGS@ - libaggplatformX11_la_SOURCES = agg_platform_support.cpp - libaggplatformX11_la_CXXFLAGS = -I$(top_srcdir)/include -I@x_includes@ --libaggplatformX11_la_LIBADD = -lX11 -+libaggplatformX11_la_LIBADD = ../../libagg.la -lX11 - endif diff --git a/agg-2.5-autotools.patch b/agg-2.5-autotools.patch deleted file mode 100644 index b273477..0000000 --- a/agg-2.5-autotools.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.in~ 2013-02-22 09:30:00.000000000 -0600 -+++ configure.in 2013-02-22 09:30:49.030777571 -0600 -@@ -8,7 +8,7 @@ - AC_PROG_CC - AC_PROG_CXX - AC_ISC_POSIX --AM_C_PROTOTYPES -+#AM_C_PROTOTYPES - if test "x$U" != "x"; then - AC_MSG_ERROR(Compiler not ANSI compliant) - fi diff --git a/agg-2.5-pkgconfig.patch b/agg-2.5-pkgconfig.patch deleted file mode 100644 index a303bfb..0000000 --- a/agg-2.5-pkgconfig.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- agg-2.5/libagg.pc.in.orig 2007-01-07 13:58:28.000000000 +0000 -+++ agg-2.5/libagg.pc.in 2007-01-07 14:02:40.000000000 +0000 -@@ -6,5 +6,6 @@ - Name: libagg - Description: Anti Grain Geometry - A High Quality Rendering Engine for C++ - Version: @VERSION@ --Libs: -L${libdir} -Wl,-rpath,${exec_prefix}/lib -lagg -+Requires.private: freetype2 -+Libs: -L${libdir} -lagg - Cflags: -I${includedir} diff --git a/agg-generate-tarball.sh b/agg-generate-tarball.sh deleted file mode 100644 index c6f2ebd..0000000 --- a/agg-generate-tarball.sh +++ /dev/null @@ -1,19 +0,0 @@ -#! /bin/sh - -version=$1 - -[ -z $version ] && exit 1 - -dir=agg-${version} -file=agg-${version}.tar.gz -result=agg-free-${version}.tar.gz - -rm -rf agg-${version} -tar xzf $file -for file in copying.txt VERSIONS.TXT gpc.c gpc.h; do - rm agg-${version}/gpc/$file -done -rm agg-${version}/include/agg_conv_gpc.h -sed -i -e 's/agg_conv_gpc\.h/ /g' agg-${version}/include/Makefile.am -rm -f $result -tar czf $result $dir diff --git a/agg.spec b/agg.spec deleted file mode 100644 index bce70af..0000000 --- a/agg.spec +++ /dev/null @@ -1,222 +0,0 @@ -Summary: Anti-Grain Geometry graphical rendering engine -Name: agg -Version: 2.5 -Release: 24%{?dist} -Group: System Environment/Libraries -URL: http://www.antigrain.com -License: GPLv2+ -#Source0: http://www.antigrain.com/%{name}-%{version}.tar.gz -Source0: %{name}-free-%{version}.tar.gz -# agg contains gpc.c, 'free for non-commercial use', we cannot ship. -# We use this script to remove the non-free code before shipping it. -# Download the upstream tarball and invoke this script while in the -# tarball's directory: -# sh agg-generate-tarball.sh 2.5 -Source1: agg-generate-tarball.sh - -Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root -BuildRequires: automake, libtool, libX11-devel, freetype-devel, SDL-devel - -Patch0: agg-2.4-depends.patch -Patch1: agg-2.5-pkgconfig.patch -Patch2: agg-2.5-autotools.patch - -Patch101: 0001-Fix-non-terminating-loop-conditions-when-len-1.patch -Patch102: 0002-Cure-recursion-by-aborting-if-the-co-ordinates-are-t.patch -Patch103: 0003-Get-coordinates-from-previous-vertex-if-last-command.patch -Patch104: 0004-Make-rasterizer_outline_aa-ignore-close_polygon-when.patch -Patch105: 0005-Remove-VC-6-workaround.patch -Patch106: 0006-Implement-grain-merge-blending-mode-GIMP.patch -Patch107: 0007-Implement-grain-extract-blending-mode-GIMP.patch -Patch108: 0008-Declare-multiplication-and-division-operators-as-con.patch -Patch109: 0009-Add-a-static-identity-transformation.patch -Patch110: 0010-Add-renderer_scanline_aa_alpha.patch -Patch111: 0011-Avoid-division-by-zero-in-color-burn-mode.patch -Patch112: 0012-Avoid-pixel-artifacts-when-compositing.patch -Patch113: 0013-Modify-agg-conv-classes-to-allow-access-to-the-origi.patch -Patch114: 0014-Avoid-potential-zero-division-resulting-in-nan-in-ag.patch -Patch115: 0015-Ensure-first-value-in-the-gamma-table-is-always-zero.patch - -%description -A High Quality Rendering Engine for C++. - -%package devel -Summary: Support files necessary to compile applications with agg -Group: Development/Libraries -Requires: agg = %{version}-%{release}, freetype-devel -# for _datadir/automake ownership -Requires: automake - -%description devel -Libraries, headers, and support files necessary to compile applications -using agg. - -%prep -%setup -q -%patch0 -p1 -b .depends -%patch1 -p1 -b .pkgconfig -%patch2 -p0 -b .autotools -%patch101 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 -%patch106 -p1 -%patch107 -p1 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 -%patch111 -p1 -%patch112 -p1 -%patch113 -p1 -%patch114 -p1 -%patch115 -p1 -aclocal -autoheader -autoconf -libtoolize --force -automake --foreign --add-missing --ignore-deps - -%build -%configure --disable-static --disable-gpc -# parallel build fails in examples/ because the .la is in _LDFLAGS instead of -# _LIBADD -make #%%{?_smp_mflags} - -%install -rm -rf $RPM_BUILD_ROOT -make DESTDIR=$RPM_BUILD_ROOT install INSTALL='install -p' -rm $RPM_BUILD_ROOT/%{_libdir}/*.la - -rm -rf __dist_examples __clean_examples -cp -a examples __clean_examples -make -C __clean_examples distclean -rm -rf __clean_examples/Makefile.am __clean_examples/{win32*,macosx*,BeOS} -mkdir __dist_examples -mv __clean_examples __dist_examples/examples - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%files -%defattr(-,root,root,-) -%doc authors copying readme news -%{_libdir}/lib*.so.* - -%files devel -%defattr(-,root,root,-) -%doc __dist_examples/examples -%{_libdir}/*.so -%{_libdir}/pkgconfig/libagg.pc -%{_includedir}/agg2/ -%{_datadir}/aclocal/libagg.m4 - -%clean -rm -rf $RPM_BUILD_ROOT - -%changelog -* Wed Feb 03 2016 Fedora Release Engineering - 2.5-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jun 16 2015 Fedora Release Engineering - 2.5-23 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat May 02 2015 Kalev Lember - 2.5-22 -- Rebuilt for GCC 5 C++11 ABI change - -* Fri Aug 15 2014 Fedora Release Engineering - 2.5-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 2.5-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sat Aug 03 2013 Fedora Release Engineering - 2.5-19 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Sat Jun 22 2013 Tom Hughes - 2.5-18 -- Update mapnik patches - -* Sun May 19 2013 Tom Hughes - 2.5-17 -- Add patches from mapnik - -* Fri Feb 22 2013 Jon Ciesla - 2.5-16 -- Fix FTBFS, BZ 913873. - -* Wed Feb 13 2013 Fedora Release Engineering - 2.5-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Fri Jul 27 2012 Fedora Release Engineering - 2.5-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Thu Jan 12 2012 Fedora Release Engineering - 2.5-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Oct 26 2011 Fedora Release Engineering - 2.5-12 -- Rebuilt for glibc bug#747377 - -* Wed Oct 26 2011 Fedora Release Engineering - 2.5-11 -- Rebuilt for glibc bug#747377 - -* Mon Feb 07 2011 Fedora Release Engineering - 2.5-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Fri Jan 29 2010 Kevin Kofler - 2.5-9 -- also remove include/agg_conv_gpc.h as it also carries a copy of the non-Free - GPC license (upstream also recommends removing that file under - http://www.antigrain.com/license/index.html#toc0005) (#559611) - -* Fri Jul 24 2009 Fedora Release Engineering - 2.5-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Mon Feb 23 2009 Fedora Release Engineering - 2.5-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Tue Feb 5 2008 Patrice Dumas - 2.5-6 -- remove non free files -- minor cleanups -- parallel build fails - -* Fri Aug 03 2007 Caolan McNamara - 2.5-4 -- clarify license -- source upstream silently changed even though version remained - unchanged - -* Tue Jun 26 2007 Caolan McNamara - 2.5-3 -- Resolves: rhbz#245650 -devel Require: freetype-devel - -* Mon Apr 23 2007 Caolan McNamara - 2.5-2 -- Resolves: rhbz#237493 misapplied patch - -* Sat Jan 06 2007 Caolan McNamara - 2.5-1 -- bump to 2.5 - -* Fri Nov 10 2006 Caolan McNamara - 2.4-3 -- Resolves: rhbz#214970 rebuild with new 2.4 sources - -* Wed Jul 12 2006 Jesse Keating - 2.4-2.1 -- rebuild - -* Mon Jul 10 2006 Caolan McNamara - 2.4-2 -- rh#198174# add extra links from libs to their runtime requirements - -* Wed May 10 2006 Caolan McNamara - 2.4-1 -- next version - -* Fri Feb 17 2006 Karsten Hopp 2.3-4 -- add BuildRequires freetype-devel for ft2build.h - -* Mon Feb 13 2006 Caolan McNamara - 2.3-3 -- BuildRequires - -* Fri Feb 10 2006 Jesse Keating - 2.3-2.1 -- bump again for double-long bug on ppc(64) - -* Wed Feb 08 2006 Caolan McNamara - 2.3-2 -- rh#180341# BuildRequires - -* Tue Feb 07 2006 Jesse Keating - 2.3-1.1 -- rebuilt for new gcc4.1 snapshot and glibc changes - -* Wed Nov 23 2005 Caolan McNamara 2.3-1 -- initial import diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..79f95ed --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +No longer used within Fedora due to changes not accepted upstream from several projects diff --git a/sources b/sources deleted file mode 100644 index a2e7017..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -6fa25317a3024a186d9a93d1513ca9fa agg-free-2.5.tar.gz