Commit Graph

33 Commits

Author SHA1 Message Date
Zardshard
c6c2c04284 Icon-O-Matic: Add perspective transformations
As part of adding perspective transformations, agg_trans_perspective.h
was patched to fix a multiple definitions error. This change has been
submitted for review to the "upstream" repositories at [1], [2],
and [3].

Also includes various other improvements such as VertexSource being
split into its own file, code style improvements, and documentation
improvements.

[1] https://sourceforge.net/p/agg/patches/6/
[2] https://github.com/ghaerr/agg-2.6/pull/9
[3] https://github.com/aggeom/agg-2.6/pull/7

Change-Id: I4bffd2f87354bde10155e23145a232a925be6ff3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6801
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-22 09:44:49 +00:00
Zardshard
a1c86e7ada agg: Pull in updated perspective transformation
The new version has many more features than the old one. This update
is necessary for an upcoming update to Icon-O-Matic adding perspective
transformers.

This update is pulled from https://github.com/ghaerr/agg-2.6 at commit
e7db22bd12700118257b4cb780539c421e01aa51 with our changes applied on
top. Note that this repository isn't necessarily the chosen upstream
that all future updates should be pulled from. See the discussion
starting at [1] for more information.

This also updates the affine transformation since the newer perspective
transformation requires the newer version.

[1] https://discuss.haiku-os.org/t/gsoc-2023-progress-on-perspective-transformation-haiku-project/13594/34

Change-Id: Ic578eec15fbb9131338b3c605c737ce1bfb252ca
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6808
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-22 09:44:20 +00:00
Michael Brumbelow
950809231f Removed 'register' storage class compiler warnings
Change-Id: Iba89a9d0845bf7e816983f903281d33e273f6e35
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5558
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-09-12 14:03:28 +00:00
X512
9e19c5aea4 libagg: use size_t for operator new argument
Fix Clang 14 build.

Change-Id: Iad914d4be13f19e60a2ad708321cd04db5096d09
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5245
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-04-23 19:55:31 +00:00
Adrien Destugues
eacbae702d agg: fix build. 2020-01-22 19:25:16 +01:00
Ra-V2
1773f0767e agg: agg_curves.h: initialize m_distance_tolerance_square
fix PVS 730

Change-Id: I8dfe11d3f31cc6ef67b96955009c5a57eb5a427d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1997
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-01-22 00:29:58 +00:00
Adrien Destugues
b0890e034b PVS V501: comparing number with itself
I assume the intent was the same as in other similar functions above.

Change-Id: I887cd73d846680a5a5ec5c90f678ad4b12122eb3
Reviewed-on: https://review.haiku-os.org/c/1655
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2019-07-28 10:16:43 +00:00
Augustin Cavalier
1705656eac Add (void*) casts to memcpy/memset invocations to appease GCC 8.
A lot of these classes are not *technically* "trivially copyable"
for one reason or another, but in all of these cases it seems
OK to me to use memcpy/memset on them. Adding a cast to void*
tells GCC that "I know what I'm doing here" and shuts up the
warning.
2019-05-24 14:21:37 -04:00
Rob Gill
434c347111 headers/libs/agg Fix PVS 33
* Fix successive assignment of 'da'

	* also trailing whitespace removal

Change-Id: Ic127150c18c042839d4104ccc5830adf19550399
Reviewed-on: https://review.haiku-os.org/c/954
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-01-29 04:04:01 +00:00
Rob Gill
d1f885b435 headers/libs/agg Fix PVS 11, PVS12
* Replace hard-coded math constants with M_SQRT1_2
	(math.h was already included)

	* also trailing whitespace removal

Change-Id: I5e9511060d2f812830f7621bee3aff9a517576e5
Reviewed-on: https://review.haiku-os.org/c/956
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-01-29 04:02:25 +00:00
Alexander von Gluck IV
8cc5325ad5 agg: Pull in updated scanline + basics header from 2.4
* Resolves #13382
2017-03-18 18:59:30 -05:00
Augustin Cavalier
ad05d1f087 libs/agg: Remove GPC.
It was licensed with a "no commercial usage allowed" license, which if
we were using it would be a gray area at best. We weren't using it at all,
and AGG seems to have disabled building it by default, so just remove it
from the tree entirely.

Briefly discussed on IRC.
2017-03-18 19:27:45 -04:00
Jim Barry
d47434c2ec Added "explicit" specifier to constructors that would otherwise allow undesirable implicit conversion from integer types.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2017-03-08 15:59:46 -05:00
John Horigan
3c69a2e24d Add agg_renderer_base::fill(color&) method for blending a color. Complements the clear(color&) method, which copies the color.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2017-03-08 14:59:40 -05:00
John Horigan
cb743deb19 Add const qualifier to multiply and divide operators for agg_trans_affine/perspective
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2017-03-08 14:52:10 -05:00
Murai Takashi
58916d4a36 agg_scanline_u.h: fix wrong base_type
As pointed out at https://sourceforge.net/p/agg/svn/37

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2017-03-08 13:26:56 -05:00
Jérôme Duval
4fb4b32043 Force use of std::isnan() in agg_conv_curve.h.
cmath could be included before inclusion of this header, thus undefining isnan.
2015-07-25 23:42:14 +02:00
Adrien Destugues
9c5d1aa295 Fix infinite recursion in agg when drawing bezier with invalid points
* Patch extracted from http://trac.osgeo.org/mapserver/ticket/3862
* Fixes #6738
2014-10-20 15:54:58 +02:00
Stephan Aßmus
2e7da8455a Fixed execute bits of AGG headers. 2014-02-04 23:51:49 +01:00
Adrien Destugues
756ff6c0bc agg: Werror fixes in previously unused templates. 2013-12-24 09:28:44 +01:00
Jonathan Schleifer
f5a47df37d Fix the agg headers to be proper C++.
Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
2013-12-19 02:00:44 +01:00
Murai Takashi
70b978fd9f Fix the build with GCC4.8
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
2013-12-17 18:01:44 +01:00
Stephan Aßmus
59e13a3f06 Patch by Andrej Spielmann (GSoC):
* Simplified the subpixel related methods for the AGG "pixel format" template
  interface, the ones for the solid cover simply pass through the existing
  methods, so only one subpixel blending function is left which does the actual
  work (this removes a lot of the previously added code)
* Implemented a new rasterizer based on the original AGG rasterizer which
  implements subpixel anti-aliasing for any generic AGG vector pipelines. It
  is now optionally used in Painter and AGGTextRenderer (for vector fonts, ie
  rotated, sheared or big enough fonts) depending on the global subpixel
  setting.
* Put all subpixel variables into the new GlobalSubpixelSettings.h|cpp
* Simplified DesktopSettings related classes a bit and renamed previous
  FontSubpixelAntialiasing to just SubpixelAntialiasing.
* The private libbe functions for subpixel related settings moved from Font.cpp
  to InterfaceDefs.cpp where other such functions live. They are not related
  to fonts only anymore.
* Removed the subpixel related settings again from the Fonts preflet and added
  them to the Appearance preflet instead.

All of the above implements subpixel anti-aliasing on a global scale, which
to my knowledge no other OS is doing at the moment. Any vector rendering
can optionally use subpixel anti-aliasing in Haiku now. The bitmap cached fonts
are still affected by the Freetype complile time #define to enable the patented
subpixel rasterization (three times wide glyphs). Vector fonts and shapes are
not affected though at the moment.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-03 13:40:41 +00:00
Stephan Aßmus
3a0814fdae patch by Andrej Spielmann (GSOC):
* Prepared the AGG base_renderer code with two more functions needed to
  handle subpixel scanline coverage values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:11:04 +00:00
Stephan Aßmus
e39da397f5 * long overdue update to AGG 2.4
* removed the useless parts of AGG (which are only needed for the
  interactive examples)
* make sure to jam -a libagg.a to solve any linking issues


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-14 14:30:17 +00:00
Stephan Aßmus
9d35303f63 added a "reset()" function so that kerning can start clean
and has no left overs from a previous text run


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 21:45:20 +00:00
Stephan Aßmus
f6f44f5538 incorporated fix from AGG mailing list, the problem only showed on Sun hardware though...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12620 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-10 11:34:26 +00:00
Stephan Aßmus
547fd34504 compile fix, changed member to be declared const
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 13:49:15 +00:00
DarkWyrm
d1d811ec70 sync to tree to support stippi's Painter classes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-12 11:09:33 +00:00
DarkWyrm
abd0030237 Sync to AGG tree to support stippi's Painter classes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-12 11:05:58 +00:00
DarkWyrm
e57e5a53a9 A couple more files to include with AGG
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 22:22:58 +00:00
DarkWyrm
328b390762 Invariably, I forget to add *something* to the tree. :(
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-12 22:29:39 +00:00
DarkWyrm
39241fe228 Initial checkin
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-12 02:02:58 +00:00