reuk
19edd53842
EdgeTable: Fix issue where edges of paths could be anti-aliased incorrectly at edges of clip regions
2025-02-03 19:16:46 +00:00
attila
83720ac462
EdgeTable: Fix assertion caused by unnecessarily storing prepending zero levels
...
This partially restores the behaviour prior to commit
dda0719d56 , in that we will never store a
segment if its level equals the last stored level.
2024-09-05 17:36:51 +02:00
reuk
5befcd43a9
EdgeTable: Use CopyableHeapBlock in implementation
2024-09-05 12:10:33 +01:00
attila
dda0719d56
EdgeTable: Fix buggy clipToRegion corner case
2024-08-06 17:36:10 +01:00
attila
22ee31f3ff
EdgeTable: Use HeapBlock instead of vector for better Android Debug drawing performance
...
This is reverting 417d97b36e .
2024-08-02 14:48:52 +00:00
reuk
0444e3d69c
EdgeTable: Avoid reinterpret_cast in multiplyLevels
2024-05-20 12:49:55 +01:00
reuk
ce0fe3dc1e
EdgeTable: Keep better track of buffer memory ranges
...
Occasionally, on Linux, Address Sanitizer can complain about a memory
region overlap in the arguments to memcpy, originating in
EdgeTable::intersectWithEdgeTableLine. I haven't been able to reproduce
this personally.
The final memcpy call in this function requires there to be
"srcNum1 * 2" valid entries after the current "src1" ptr, and none of
those entries may overlap with the area starting at "temp".
On inspection, I think that the memory region being read is too large.
At the point of the call, src1 will point to a LineItem::level, not
LineItem::x, so there will actually be (srcNum1 * 2 - 1) valid items
following it.
All this pointer arithmetic is very difficult to understand. In an
effort to make this function slightly more understandable, I've switched
to using Spans to delineate lines of the table, which makes it easier to
keep track of the size of each line.
2024-05-20 12:49:55 +01:00
reuk
417d97b36e
EdgeTable: Implement using vector to simplify special member functions
2024-05-20 12:49:54 +01:00
Tom Poole
94d98a2b10
Update licensing information
2024-04-16 11:39:35 +01:00
reuk
c8c4cdc7d5
EdgeTable: Add offset before truncating to somewhat restore old rounding behaviour
2023-06-08 15:05:43 +01:00
reuk
4f67a18a3f
EdgeTable: Avoid integer truncation when rendering paths with large coordinates
...
Previously, if the PathFlatteningIterator returned a line segment with
very large x or y positions, the result of
roundToInt (iter.y1 * 256.0f)
could be incorrect, if the result was too large to fit in an int.
Using int64_t to store intermediate results, converting to int when
updating the edge table itself produces accurate results for a wider
range of inputs.
2023-06-01 18:49:32 +01:00
Tom Poole
2ec861d99e
Update licensing banners to JUCE 7
2022-05-16 17:55:48 +01:00
Tom Poole
dea3fe60e4
Update copyright banners
2022-04-04 12:36:32 +01:00
reuk
1a4296e98b
EdgeTable: Avoid shifts of negative numbers
2021-09-28 14:04:10 +01:00
reuk
31a7c62baf
Windows: Fix and suppress some analysis warnings
...
This fixes warnings that are emitted when building with the `-analyze`
flag enabled.
2021-05-26 15:34:26 +01:00
ed
009d685179
Updated all license headers
2020-06-29 08:30:22 +01:00
Tom Poole
894e7d2bd2
Updated all license headers
2020-04-23 17:30:39 +01:00
reuk
327f817b9b
Copyrights: Update commercial/gpl headers to be gpl-only
2020-04-09 15:22:56 +01:00
jules
b028f299b8
Fixed some subtle (but benign) undefined behaviour with negative bit-shifts
2017-12-19 14:22:39 +00:00
jules
5e9267e5d8
Simplified the Path class by making it use an Array for starage.
2017-12-18 12:22:02 +00:00
jules
9d56e2990d
Optimised the GL renderer to avoid splitting large rectangles into horizontal strips unnecessarily
2017-11-03 13:51:37 +00:00
jules
24f023bb23
Added some heuristics to EdgeTable to try to improve the table size prediction
2017-10-11 15:28:32 +01:00
jules
93a22599d1
Tweaked the rate at which EdgeTable grows its internal storage, to improve performance rendering large and complex paths
2017-10-09 14:53:56 +01:00
jules
27a6903cac
Changed the way isPositiveAndBelow is written to avoid needing to cast the second parameter to an int
2017-09-27 12:24:02 +01:00
jules
eda613c6db
Moved all "namespace juce" declarations from module headers to the individual .h and .cpp source files. This makes life a lot easier for Intellisense and other IDE autocompletion tools
2017-09-08 08:59:55 +01:00
hogliux
b5afccc37c
Updated file headers and the README with the JUCE 5 license
2017-04-27 14:43:04 +01:00
jules
38d49a5ee7
Modernised a few RectangleList iterators
2017-04-03 16:08:07 +01:00
hogliux
c7b8e77031
Update copyright notice
2015-07-22 15:59:34 +01:00
jules
863895d107
Minor cleanups.
2013-11-10 17:43:02 +00:00
jules
a53110de06
Big speedup to path rendering on GL/software.
2013-11-07 14:38:59 +00:00
jules
59d719cc26
Increased the gamma of software-rendered fonts.
2013-10-29 21:37:36 +00:00
jules
bb98c00d0d
Avoided some pedantic compiler warnings in the audio plugin code.
2013-10-01 11:53:17 +01:00
jules
1c8a03c05e
Fix for edgetable rendering.
2013-09-24 23:02:28 +01:00
jules
abd3babc02
Minor optimisations and clean-ups.
2013-09-21 13:41:16 +01:00
jules
fc772941d6
Fixed some pedantic warnings.
2013-09-16 18:47:28 +01:00
jules
59d8d8172d
Replaced the crappy old juce sortArray function with std::sort, which seems to run twice as fast. This greatly speeds up edge table rendering.
2013-09-05 09:46:30 +01:00
jules
dbf7053861
New method Graphics::fillRectList(), which performs better (and looks better when scaled) than multiple calls to fillRect or drawVerticalLine. Also fixed DPI detection in Windows.
2013-08-30 18:20:51 +01:00
jules
29ada09816
Cleaned up some unused variables.
2013-08-01 12:40:50 +01:00
jules
08c9d5d22f
EdgeTable performance tuning.
2013-07-30 17:18:04 +01:00
jules
32c98223ac
Refactored some lowlevelgraphicscontext classes to remove duplicated code.
2013-07-30 09:59:03 +01:00
jules
1b9a60e52c
Added a templated type to the RectangleList class. If you've used this class and these changes cause syntax errors, all you need to do to your code is to replace "RectangleList" with "RectangleList<int>" and everything will work as it did before.
2013-07-28 18:08:28 +01:00
jules
03c2801f3f
Copyright header update in all module files. juce_core modules are now ISC licensed. All other modules are GPLv2/3/AGPLv3
2013-06-13 13:17:12 +01:00
jules
667a18712f
Added begin()/end() iterators to RectangleList. You should use these in preference to RectangleList::Iterator, as they're faster.
2012-11-15 13:58:49 +00:00
jules
07e7188eb1
Tidied up a few compiler warnings.
2012-11-07 20:50:45 +00:00
jules
295d125142
Stopped using the old BEGIN_JUCE_NAMESPACE macros, and just used hard-coded namespaces where necessary instead. The macro definitions are still there, so this shouldn't affect anyone's code.
2012-02-11 14:09:23 +00:00
jules
aff5fea6b4
Minor introjucer clean-ups.
2012-01-22 10:04:19 +00:00
jules
2c0902833d
Lock for multithreaded font rendering. Tweaks for some openGL settings. Updated the demo to have an openGL rendering engine option.
2011-12-20 13:32:11 +00:00
jules
115a171d76
Big OpenGLRenderer rewrite, plus a revamped OpenGL demo page to demonstrate 2D rendering.
2011-11-01 20:43:19 +00:00
Julian Storer
b70e0a28d2
First check-in of the "jucequake": a major re-organisation of the library to break it up into modules. For more details about this, see the website forum..
2011-08-12 10:04:52 +01:00