There can be such cases where it fails to find intersection points for
a given position, especially when the polygon is small.
Such an input would result in an error previously, but now it renders
correctly.
* Implement gradient brush similar to PathGradientBrush (#969)
A gradient brush implementation that works similar to
System.Drawing.Drawing2D.PathGradientBrush.
This fixes#969, but only convex paths are supported for now.
* Update submodule to add test fixtures for #989
* Performance optimization
Use LengthSquared() instead of Length() when it's possible.
Avoid unnecessary ordering of elements.
* Avoid using LINQ in a hotspot
* Validate arguments for the public constructor
* Implement IDisposable and ensure inheritance calls base
* add ImageProcessingContextTests and move some other test classes
* loosen up tests and leave TODO notes
* disable multitargeting + TreatWarningsAsErrors to for fast development
* Check if image is disposed
in significant Image and Image<T> methods
* Mutate / Clone: ensure image is not disposed
* Revert "disable multitargeting + TreatWarningsAsErrors to for fast development"
This reverts commit 9ad74f76f6.
* Add support for writing tEXt chunks
* Add support for reading zTXt chunks
* Add check, if keyword is valid
* Add support for reading iTXt chunks
* Add support for writing iTXt chunks
* Remove Test Decode_TextEncodingSetToUnicode_TextIsReadWithCorrectEncoding: Assertion is wrong, the correct keyword name is "Software"
* Add support for writing zTXt chunk
* Add an encoder Option to enable compression when the string is larger than a given threshold
* Moved uncompressing text into separate method
* Remove textEncoding option from png decoder options: the encoding is determined by the specification: https://www.w3.org/TR/PNG/#11zTXt
* Removed invalid compressed zTXt chunk from test image
* Revert accidentally committed changes to Sandbox Program.cs
* Review adjustments
* Using 1024 bytes as a limit when to compress text as recommended by the spec
* Fix inconsistent line endings
* Trim leading and trailing whitespace on png keywords
* Move some metadata related tests into GifMetaDataTests.cs
* Add test case for gif with large text
* Gif text metadata is now a list of strings
* Encoder writes each comment as a separate block
* Adjustment of the Tests to the recent changes
* Move comments to GifMetadata
* Move Png TextData to format PngMetaData
* Added base BokehBlurProcessor class, and kernel parameters
* Added method to calculate the kernel parameters
* Switched to float, added method to create the 1D kernels
* Added complex kernels normalization
* Added BokehBlurExtensions class
* Added the Complex64 struct type
* Switched to Complex64 in the BokehBlurProcessor
* Added caching system for the bokeh processor parameters
* Added WeightedSum method to the Complex64 type
* Added IEquatable<T> interface to the Complex64 type
* New complex types added
* Added method to reshape a DenseMatrix<T> with no copies
* Added bokeh convolution first pass (WIP)
* Added second bokeh convolution pass (WIP)
* Added image sum pass to the bokeh processor (WIP)
* Minor bug fixes (WIP)
* Switched to Vector4 processing in the bokeh computation
* Minor tweaks
* Added Unit test for the bokeh kernel components
* Minor performance improvements
* Minor code refactoring, added gamma parameter (WIP)
* Removed unused temp buffers in the bokeh processing
* Gamma highlight processing implemented
* Speed optimizations, fixed partials computations in target rectangle
* Increased epsilon value in the unit tests
* Fixed for alpha transparency blur
* Fixed a bug when only blurring a target rectangle
* Added bokeh blur image tests (WIP)
* Added IXunitSerializable interface to the test info class
* culture independent parsing in BokehBlurTest.cs
* Performance optimizations in the bokeh processor
* Reduced number of memory allocations, fixed bug with multiple components
* Initialization and other speed improvements
* More initialization speed improvements
* Replaced LINQ with manual loop
* Added BokehBlur overload to just specify the target bounds
* Speed optimizations to the bokeh 1D convolutions
* More speed optimizations to the bokeh processor
* Fixed code style and Complex64.ToString method
* Fixed processing buffer initialization
* Minor performance improvements
* FIxed issue when applying bokeh blur to specific bounds
* Minor speed optimizaations
* Minor code refactoring
* Fixed convolution upper bound in second 1D pass
* improve BokehBlurTest coverage
* use Gray8 instead of Alpha8
* Adjusted guard position in bokeh processor constructor
* Added BokehBlurParameters struct
* Added BokehBlurKernelData struct
* Minor code refactoring
* Fixed API change build errors
* Bug fixes with the pixel premultiplication steps
* Removed unwanted unpremultiplication pass
* Removed unused using directives
* Fixed missing using directives in conditional branches
* Update from latest upstream master
* Update Block8x8F.Generated.cs
* Update GenericBlock8x8.Generated.cs
* Manual checking for files with LF (see gitter)
* Removed unused using directive
* Added IEquatable<ComplexVector4> interface
* Added IEquatable<BokehBlurParameters> interface
* Moved bokeh blur parameters types
* Added reference to original source code
* Complex convolution methods moved to another class
* Switched to MathF in the bokeh blur processor
* Switched to Vector4.Clamp
* Added Buffer2D<T>.Slice API
* Added BokehBlurExecutionMode enum
* Added new bokeh blur processor constructors
* Added new bokeh blur extension overloads with execution mode
* Code refactoring in preparation for the execution mode switch
* Implemented execution mode switch in the bokeh processor
* Moved BokehBlurExecutionMode struct
* Removed unused using directives
* Minor code refactoring
* More minor code refactoring
* Update External
* Fix undisposed buffers
* Bokeh blur processor cache switched to concurrent dictionary
* Minor code refactoring