matterhackers / agg-sharp Goto Github PK
View Code? Open in Web Editor NEWA C# port of Anti-Grain Geometry (AGG) with extensions for common scenarios
License: BSD 2-Clause "Simplified" License
A C# port of Anti-Grain Geometry (AGG) with extensions for common scenarios
License: BSD 2-Clause "Simplified" License
MouserInteractionTests.DoClickButtonInWindow:
System.AggregateException : One or more errors occurred.
----> NUnit.Framework.AssertionException : Got left button click
Expected: True
But was: False
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at NUnit.ApplicationDomain.TaskWaitTestResultHandler.Process(Task task)
at NUnit.ApplicationDomain.Internal.InDomainTestMethodRunner.RunSetupAndTest(TestMethodInformation testMethodInfo, Object instance)
at NUnit.ApplicationDomain.Internal.InDomainTestMethodRunner.Execute(TestMethodInformation testMethodInfo)
at NUnit.ApplicationDomain.Internal.InDomainTestMethodRunner.Execute(TestMethodInformation testMethodInfo)
at NUnit.ApplicationDomain.Internal.ParentAppDomainRunner.Run(ITest test, Type appDomainFactoryType)
at NUnit.Framework.RunInApplicationDomainAttribute.RunInApplicationDomain(ITest testDetails)
at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.Execute(TestExecutionContext context)
--AssertionException
at NUnit.Framework.Assert.ReportFailure(String message)
at NUnit.Framework.Assert.That[TActual](TActual actual, IResolveConstraint expression, String message, Object[] args)
at MatterHackers.Agg.UI.Tests.MouseInteractionTests.<>c__DisplayClass0_0.<DoClickButtonInWindow>b__0(AutomationRunner testRunner) in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Submodules\agg-sharp\Tests\Agg.Tests\Agg.UI\MouseInteractionTests.cs:line 64
at MatterHackers.GuiAutomation.AutomationRunner.<>c__DisplayClass71_0.<ShowWindowAndExecuteTests>b__1() in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Submodules\agg-sharp\GuiAutomation\AutomationRunner.cs:line 1089
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at MatterHackers.Agg.UI.Tests.MouseInteractionTests.<DoClickButtonInWindow>d__0.MoveNext() in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Submodules\agg-sharp\Tests\Agg.Tests\Agg.UI\MouseInteractionTests.cs:line 90
**This is one example.
I identified the issue when I tried to install the MatterControll Beta and the UI was totally unresponsive.
Consequently, the MatterControll tests are failing too:**
System.AggregateException : One or more errors occurred.
----> System.Exception : ClickByName Failed: Named GuiWidget not found [-Temporary Row Item Collection]
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at NUnit.ApplicationDomain.TaskWaitTestResultHandler.Process(Task task)
at NUnit.ApplicationDomain.Internal.InDomainTestMethodRunner.RunSetupAndTest(TestMethodInformation testMethodInfo, Object instance)
at NUnit.ApplicationDomain.Internal.InDomainTestMethodRunner.Execute(TestMethodInformation testMethodInfo)
at NUnit.ApplicationDomain.Internal.InDomainTestMethodRunner.Execute(TestMethodInformation testMethodInfo)
at NUnit.ApplicationDomain.Internal.ParentAppDomainRunner.Run(ITest test, Type appDomainFactoryType)
at NUnit.Framework.RunInApplicationDomainAttribute.RunInApplicationDomain(ITest testDetails)
at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.Execute(TestExecutionContext context)
--Exception
at MatterHackers.GuiAutomation.AutomationRunner.ClickByName(String widgetName, SearchRegion searchRegion, Point2D offset, ClickOrigin origin, Boolean isDoubleClick) in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Submodules\agg-sharp\GuiAutomation\AutomationRunner.cs:line 716
at MatterHackers.GuiAutomation.AutomationRunner.DoubleClickByName(String widgetName, SearchRegion searchRegion, Point2D offset, ClickOrigin origin) in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Submodules\agg-sharp\GuiAutomation\AutomationRunner.cs:line 802
at MatterHackers.MatterControl.Tests.Automation.MatterControlUtilities.NavigateToFolder(AutomationRunner testRunner, String libraryRowItemName) in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Tests\MatterControl.Tests\MatterControl\MatterControlUtilities.cs:line 466
at MatterHackers.MatterControl.Tests.Automation.LibraryDownloadsTests.<>c.<CreateFolder>b__6_0(AutomationRunner testRunner) in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Tests\MatterControl.AutomationTests\LibraryDownloadsTest.cs:line 138
at MatterHackers.GuiAutomation.AutomationRunner.<>c__DisplayClass71_0.<ShowWindowAndExecuteTests>b__1() in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Submodules\agg-sharp\GuiAutomation\AutomationRunner.cs:line 1089
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at MatterHackers.MatterControl.Tests.Automation.MatterControlUtilities.<RunTest>d__49.MoveNext() in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Tests\MatterControl.Tests\MatterControl\MatterControlUtilities.cs:line 673
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at MatterHackers.MatterControl.Tests.Automation.LibraryDownloadsTests.<CreateFolder>d__6.MoveNext() in C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Tests\MatterControl.AutomationTests\LibraryDownloadsTest.cs:line 132
Overriding StaticData: C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\StaticData
Overriding ApplicationUserDataPath: C:\Users\Vinicius.Miguel\Source\Repos\MatterControl\Tests\temp\2018-08-14T17-29-03\Test0
Time to '': 928
When converting double-values to text, ".ToString()" uses the settings of the current culture that is configured in the operating system (or the current thread). A call to ".ToString(CultureInfo.InvariantCulture)" must be used instead. If I run the current code on a system with e.g. German culture settings and specify a radius of 5/2 it will generate this code: r=2,5 which obviously doesn't work, because commas are used to separate parameters.
Application locks up and UI (MatterControl) becomes non-responsive for smaller values of idleCallBackTimer.Interval (around 10). Values slightly higher than that seem to cause the application to function correctly.
Allowing idleCallBackTimer.Interval (agg-sharp/PlatformWin32/win32/WinformsSystemWindow.cs:82) to be configurable will allow finetuning the value for systems where System.Timers.Timer doesn't function for an arbitrary Interval value.
OS: ArchLinux 64bit
Application: MatterControl 2.0 beta
The SkiaSharp dll file is too large, close to 10mb.
I'm looking for a 2d graphics library developed in pure C#
Since the OemProfile is no longer unique from PrinterSettings, it should be removed and replace for clarity
How to convert GuiWidget into Winform Control, so the widget can add to existed winform window ?
Upgrade to v10 seems to have broken build
Function is frequently used as a helper method to empty a widget and we almost certainly want CloseChildren in all cases where we're not reusing widgets. Widgets that want the RemoveAllChildren behavior should use RemoveChild, keep their references and reuse as appropriate. This will clarify when the reuse behavior is desired and ensure we clean up resources by always calling close when no reuse was required
Rename CloseAllChildren to simply CloseChildren
As a side note jQuery thought the best way to convey this behavior was with the .Empty() function, which removes all children and releases all event references to prevent memory leaks.
Hi, can this library be used in Android? Any example?
Thanks.-
Regards.-
Consider giving up the gui project because there is a very good open source project.
https://github.com/modern-forms/Modern.Forms
Using agg-sharp to replace the SkiaSharp.
I'm facing the issue of creating an application based on agg-sharp and would like to provide a public API for the application extension. The way agg is designed now, I would need to reference the library directly generating undesired dependency.
My suggestion is to extract interfaces and enumerators from Agg and Gui and create additional interfaces for classes that are not implementing their own interfaces like GuiWidget, for example, creating Agg.Abstractions and Gui.Abstractions assemblies.
This should not generate any breaking change in code level; naturally, child projects like MatterControl need to reference the extra projects to have all the references.
I'm willing to provide a pull request with those changes if you believe the contribution will provide value to the project.
Shows up on Android (can see it in the local library hover effects)
This is to support more theme colors and to be able to reorganize the color list without breaking code.
Specific requests like this #154 should be supported.
Don't let the theme colors be accessed by index it just creates dependencies that are hard to fix.
Other improvements would be to be able to add (and remove) colors at run time.
Hello!
THANK YOU
REGARDS
:)
Win
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.