1) Related to RenderEngine = Direct3D, (Direct2D not an issue), The good news is latest Intel integrated graphics is fairly fast (compared to legacy HD), with one catch, Direct3D MultiSampleAntiAliasing might need to be disabled. We decided to make a change related Intel graphics drivers (integrated graphics). When Intel introduced Iris Xe graphics (we started getting problem reports mid 2021) we discovered the Iris Xe driver was unstable with a SampleCount greater than 1 when rendering charts (no D3DebugLayer errors, warnings, or failed function calls). Now, instead of improving the Intel Iris Xe driver, Intel may have propagated questionable logic to more of their chips and related graphics drivers (UHD) as we have recently received a few problem reports related to 12th gen Intel chips and UHD non Iris Xe. So for now, we are defaulting SampleCount=1 when creating the 3D device context with a driver that includes the word "Intel" in its description. We will again attempt to communicate with Intel to see if they can improve their graphics drivers to prevent crashing software with no reported errors and no failed function calls. SampleCount=1 in other words disables Direct3D inherent MultiSampleAntiAliasing feature. The performance and stability increase related to setting SampleCount=1 definitely far outweighs the minimal degraded visual quality on low end systems with Intel integrated graphics. As always we recommend discreet graphics, for example, laptops with AMD RDNA, NVidia MX or even AMD Vega with older cpus will out perform a new 12th or 13th gen Intel with Iris Xe or UHD at less cost. Stay tuned, and we appreciate customers also emailing the Intel graphics driver support team and mention "Direct3D SampleCount greater than 1 causing stability issues". Customers can control the sample count with our property PEP_nDXMSAA, Pe3do1.PeSpecial.DxMSAA. Customers can avoid the Intel driver check by setting this property to non-zero PEP_nIGNOREDRIVERCHECK (1781). Hopefully Intel will listen and help. We appreciate feedback related to your experiences with systems with Intel integrated graphics, especially 12th or 13th gen Intel. On our end we will be researching the issue and possibly look into an end-of-pipeline anti-aliasing mechanism as a work around. In our many years of providing Direct3D charting, we've never had an issue with graphic drivers (NVidia, AMD, legacy Intel HD) until Intel and Iris Xe. We believe older Intel HD graphics systems are fine (though slow) and we are mostly being proactive related to newer 11th, 12th and 13th gen Intel with integrated UHD graphic drivers; but also believe the Intel HD drivers will benefit in performance from this change.
2) Related to Pesgo and Direct3D, we added logic to test if the graphics driver supports double precision and now optionally choose shaders with float or double precision which resolves issues with zooming inward deeply in 2D.
3) PEsearchsubsetandpoint has been enhanced to handle scenarios of large blocks of identical XData. Identical XData was preventing our logic to consider the data sequential. Now blocks of identical XData will still be considered sequential, we recommend setting PEP_nSEQUENTIALDATAX(2039) to 1 if you know your data might include an initial block of identical XData and wish to use PEsearchsubsetandpoint.
1) Added .Net60 assemblies to the setup. These will be installed at ProEssentials9\DotNet60
2) Added local Nuget packages. The setup will stall the local packages at ProEssentials9\Nuget within the install folder.
3) Updated the walkthroughs and documentation related to .Net60.
4) The setup changes the folder structure where assemblies are installed. Important Note this could require you to change the location where your projects find our assemblies. DotNetAnyCpu, DotNet32, and DotNet64 have been replaced with DotNet48\AnyCpu, DotNet48\x64, and DotNet48\x86. After this latest install, we recommend you delete these older folders.
5) Fixed the High-Low Area plotting method related to hatch fill. The hatch color for the secondary/inverted color was not changing to the secondary color though the border color was changing.
1) Fixed an issue with Pesgo and RenderEngine = Direct3D which was not supporting the NegativeFromXAxis property and Bar plotting methods.
2) Fixed an issue with Pesgo and RenderEngine = Direct3D and having 2 subsets set as Bar plotting method wihin one axis. We also overall improved mixing Bars Line Points Area for Pesgo and RenderEngine = Direct3D.
3) Added a feature DisableOffsettingBars which when set non-zero will cause Bar plotting methods to overlap bars instead of drawing bars next to each other (offset). For now this feature must be set via PEnset, #define PEP_bDISABLEOFFSETTINGBARS 1785 .NET developers can use like Gigasoft.ProEssentials.Api.PEnset(pesgo1.PeSpecial.HObject, 1785)
1) Improved PEconvpixeltograph when last argument ViceVersa is TRUE (finding pixel locations based off data units.) The legacy behavior was for the developer to pass the axis index of the current visible axis index. This is usually hard to determine if enabling our built-in data filtering features or zooming across or into an axis. We added the option to pass in the actual axis index as originally defined by MultiAxeSubsets. To use this option, add 1000 to the axis index passed into PEconvpixeltograph. For example 1003 would represent the actual axis index 3. We recommend this option for retrieving the pixel locations from data units in a chart that uses multi axes.
2) Fixed an issue with function PEsearchsubsetpointindex and use of SubsetsToShow and or Zooming a multi axis chart where the subset index was not correct in some cases.
3) Improved PEsearchsubsetpointindex to store recent actual axis index and current visible axis index that contains the subset and point index closest to pixel coordinates. Property constants #define PEP_nCLOSESTAXISINDEX 1783, and #define PEP_nCLOSESTAXISINDEXVISIBLE 1784. For now .NET developers can use like axis = Gigasoft.ProEssentials.Api.PEnget(pesgo1.PeSpecial.HObject, 1783) and this call should follow the SearchSubsetPointIndex function call. So now the developer can easily learn the axis index that the closest subset/point indices belong to.
1) Added support for inverted log scales. Pesgo, Pe3do, Pego. Note that log data does need to be multiplied by -1 as linear data does when combined with InvertedXAxis, InvertedYAxis, InvertedZAxis. Adding inverted log helped solve several fixes related to MultiAxesSubsets and OverlapMultiAxes, and data zooming via SubsetsToShow or RandomSubsetsToGraph and then zooming via dragging a box, and or mousewheel. Inverted log required retesting a ton of user interface code related to zooming, panning, mousewheel zooming, mouse dragging/panning, PEconvpixeltograph, and so much more. The state of data zooming code combined with MultiAxesSubsets and OverlapMultiAxes is much improved and should be taken advantage of by allowing the user to easily show/hide subsets via SubsetsToShow feature.
2) Pe3do MainTitle and SubTitle will shrink to fit as other controls behave.
3) Fixed a Text Data export format issue and Inverted axes.
4) Fixed an issue with Pe3do coordinate prompting and estimating data value under mouse within a large triangle (sparse data) when using log scales.
5) Fixed an issue with JPEG and PNG export not setting the resolution metadata to reflect the ExportImageDpi property. This was introduced when we removed JPEG open source libraries.
1) Improved the locally installed compiled help file PEONLREF.CHM to document use with VS2022 and NET50 Nuget install of Winforms and WPF interfaces into VS2022 and VS2019.
2) We added the Hungarian language resource to our Download Resources page.
1) Added support for Pesgo RenderEngine=Direct3D and hollow/line-topography symbols such as hollow-square hollow-triangle, cross, plus, dash.
2) Added support for Pe3do Small, Medium, Large Arrow/Vector graph annotation types. Supporting the start of arrow with any width line or tube followed by a small, medium, large arrow head. See demo/example 404 for an example of creating 3 arrows.
3) Added support for Pe3do hot spots for MainTitle, SubTitle, MultiSubTitle, MultiBottomTitle, SubsetLabels(scatter legend and 3dbar zaxis), PointLabels(3dbar xaxis), and X,Y,Z Axis Grid Numbers.
4) Added support for Pe3do hot spots for the text associated with XAxisLineAnnotations, YAxisLineAnnotations, ZAxisLineAnnotations. Currently the only way to recognize this event is by using a MouseDown/Move event to call GetHotSpotData to query for HSData.HotSpotType, similar to demo example 014.
1) Laptops/Computers with Intel Iris Xe Graphics were crashing related to Pe3do and RenderEngine = Direct3D due to Intel graphic driver issues. More info can be found at StackOverflow Iris Xe Fix
2) Fixed a small leak within Direct3D device creation/destruction, there was no leak from repeated frame creation.
1) Improved WPF interface property PersistenceEnabled ...
ProEssentials:PesgoWpf Name="Pesgo1" PersistenceEnabled="True"
... to work with Dock Managers.
Version 9.8 adds .Net50 / .NetCore Winforms and WPF interfaces for Windows Desktop development. The ProEssentials install folder now includes a new sub folder DotNet50 and new VS2019 example projects targeting .Net50 are located in the C#.NET50 and WPF-C#.NET50 sub folders.
Gigasoft also published NuGets on Nuget.org as publisher GigasoftInc
.Net Charting at nuget.org/profiles/GigasoftInc
Note that VS2019 .Net50 projects can only add tools to the toolbox via the Manage NuGets Packages... feature to add our NuGets to the project. Search for Gigasoft.
Note, v9.8 AnyCpu assemblies found in our DotNetAnyCpu sub folder (Winforms, Wpf, Webforms), and DotNet50 sub folder (.Net50-Winforms and .Net50-WPF) now embed our native DLL (PEGRPG.DLL) inside the assembly. This change will change how you distribute your project if using the AnyCpu variations. Our AnyCpu assemblies are now the only file you need to distribute with your exe. When our controls instantiate, if needed, the control will unpack the necessary embedded DLL automatically. See the readme files within our DotNetAnyCpu and DotNet50 folders for more information.
When using our AnyCpu files within Visual Studio, the first time a control is dragged from toolbox to a form, Visual Studio should have been started with Admin privileges. Subsequent sessions will not require Admin.
If you purchased ProEssentials, place the file Gigasoft.ProEssentials.Dll or Gigasoft.ProEssentialsWpf.Dll from our DotNetAnyCpu or DotNet50 folder into the package folder that is holding the NuGet package for your project. This will remove the eval prompt and build and publish the retail version of Gigasoft.ProEssentials.Dll or Gigasoft.ProEssentialsWpf.Dll The Dll files installed with our Setup exe will stamp your company name and serial into files you distribute.
1) Fixed an issue with WPF scroll thumb positions when mouse wheel zooming was followed by a programmatic chart update would cause the thumb postion to revert to beginning of scrollbar.
2) Fixed an issue with CursorMode = DataCross and CursorMode = DataSquare and RenderEngine = Direct3D.
3) Fixed an issue with CursorMode = DataSquare and Direct2D.
4) Fixed PEP_dwaPOINTCOLORSPTR which was broken and preventing the option for application defined data to be used for PointColors.
5) The WPF interfaces have been improved to automatically call Invalidate at end of _Loaded event.
6) The WPF inetfaces include a new read only property PersistenceDataExists.
The above items 5 and 6 improve our WPFs for use within Tab containers, or any container that causes the control to be _Unloaded and _Loaded. See the readme file located with our WPF-C#.NET example projects.
1) Fixed a random issue when exporting charts using RenderEngine = Direct3D as bmps, jpegs, pngs from within an application running on vmware. CreateTexture2D was failing due to the vmware graphics driver randomly not always supporting MSAA. Now we test for this possiblility and revert to non-MSAA export if needed. Since WPF interfaces also use CreateTexture2D as they draw to a texture as part of their normal rendering, we added similar test logic to potentially catch any similar issue running wpf based applications on vmware.
1) Early 9.7's new quick annotation feature interferred with horizontal and vertical line annotation types of NoLine or (-1) so be sure to use latest v9.7 to avoid this issue.
2) Fixed an issue with 2d contours where all magnitude/zdata was negative and also had a max magnitude of zero.
3) Fixed an issue with 2d contours and very many divisions (100s to 1000) causing an odd legend with too many legend labels.
4) Fixed an issue with 3d data and annotation highlight feature where the highlighted symbol was still being shadowed even though DataShadows feature was set to disable shadowing.
Version 9.7 continues to add to RenderEngine = Direct3D rendering technology to mimic features found in Direct2D. v10 is getting closer to release, and will easily support porting, so we greatly appreciate customers taking advantage of buying 9 now and getting 10 for free. v10 is taking longer than expected as we are now also refactoring Direct3D construction onto the gpu. ProEssentials is very fast, but moving to gpu based construction will help with plotting billions of data points and the speed will be the absolute fastest available. ProEssentials will soon once again be the fastest most professionally and meticulously rendered scientific, engineering, large information system charting engine available. v10 is also adding jagged data (individual subsets will have their own new storage) with inherent per subset circular buffer features which the gpu will also utilize incrementally. v10's level of sophistication will be top-class, so because of delays, we decided to release v9.7 with a few v10 additions.1) Pe3do 3D Log scales in X Y Z for all plotting methods, annotations, and features, and Direct3D Pesgo 2D Log support. See examples 139, 402 and 404. See PeGrid.Configure.XAxisScaleControl, and LogScaleExpLabels to optionally show log scales in normal numeric format instead of scientific notation.
2) Pe3do new property GridBandsPatching. Set to false to disable grid patching and enable grid strips of GridBandsColor.
3) New Quick Draw Tooling / Annotation feature as part of Pesgo, Pego, and Pepso. See demo project example 110 for a working demonstration. Running this example, left-click + drag, draws a round rect selection tool with data-coordinate-sizing prompts. This feature allows for a fully customized annotation layer to be constructed and displayed and hidden without overhead of reconstructing the underlying image.
4) New colored Cursor and line styled Cursor are also available as part of the new quick drawing feature. See example 105.
5) The WPF interfaces have been improved to use the new colored and styled cursors by default. The CursorMode feature was problematic with the older WPF interfaces as they attempted to rely on ROP2 drawing logic that was highly efficient at drawing a cursor without any additional memory or processing requirements; however, WPF is too non-Windows to get this to work in all scenarios. The new approach draws the cursor to a prepared bitmap and the composite scene is then refreshed and solves all CursorMode concerns.
6) Fixed a cursor flicker issue when combining CursorMode feature with tooltip CursorPromptTracking feature.
7) Fixed CursorMode repeat keyboard processing when holding arrow keys within the WPF interface.
8) Fixed z order issues with RenderEngine=Direct3D 2D rendering to honor subset order similar to Direct2D and SubsetsToShow and RandomSubsetsToGraph features.
9) Fixed Pego MouseWheel zooming out issue with large data sets.
1) Improved Pego and Pesgo axis grid construction for very small ranges of data.
2) Improved Pego and Pesgo data reduction filtering logic to better handle non-linear distributions of data. For example, cases where over time (x axis) the quantity of data samples exponentally increases. Now the data reduction maintains a visual perfect representation as if all data was plotted.
3) We removed embedded Jpeglib bits from our DLL. We were notified that our DLL was being flagged as having a potential medium vulnerability CVE-2013-6629 when used with corporate license manager FlexNet. ProEssentials does not and did not have this vulnerability as our DLL never used or exposed the respective bits to read a jpeg. This lib was only used to export a jpeg. But still, refactoring our code to work around the need for Jpeglib was the best way to handle this report.
1) Fixed an issue with Pe3do and X and Z Axis line annotations where the axis labels were not positioned correctly when using line annotations to construct a custom axis.
2) Fixed an issue when auto scaling an axis and the range of values resulted in an axis range less than 1e-7.
3) Added support for tool tips and cursor prompt tracking in Polar control.
4) Fixed an issue with Pe3do and order independent DxTransparencyMode and highlighting a data location or annotation.
5) Fixed an issue with WPF interfaces and Pesgo Pego controls and use of CursorMode feature, where pressing Alt key by itself was causing the cursor to disappear.
6) Fixed an issue with the Russian resource DLL.
1) Fixed an issue with table annotations where sometimes the text would overlap. If you added a few spaces to your table annotation text, it likely won"t be necessary and one can tighten the look of the table by removing or reducing such padding.
1) Added support for table annotations to Direct3D Pe3do charts. All locations supported including moveable and pixel located.
2) Fixed an issue when data was located at same pixel as lower or upper edge of axis a hot spot region was not being generated.
3) Fixed an issue with Pe3do Direct3D rendering when using ImageAdjustLeft, ImageAdjustRight, and showing/hiding contour legends changed the visual width-to-height aspect slightly so the image was not exactly square. Now the image is exactly square when using such features.
4) Fixed an issue with Pe3do Direct3D printing where an interim state of chart was flashed to screen while printing.
5) Fixed an issue with Pe3do Direct3D printing where axis labels had a glitch in drop shadow effect when printing and text shadows were enabled.
6) Fixed an issue with ModelessAutoClose setting. We no longer auto close the print dialog as printing to a pdf that opens a window to get filename resulted in closing the print dialog.
7) Fixed issue with RenderEngine = Direct3D, ViewingStyle set to Monochrome, and BorderType set to Shadow, we now hide shadow to be consistent with other Direct3D monochrome bordertypes.
8) Fixed issue with WPF interfaces, changing the quick Color/Monochrome setting within the print dialog was not updating the currently viewed chart as the other interfaces, Winform, DLL, ActiveX, VCL behave.
1) For Pego, fixed an issue where the new virtual data mechanism (9.5) would not chart the first data point when PointsToGraph was non-zero.
2) For Pesgo and Pego, improved the scenario of dragging both edges of the zoomwindow"s zoombox to their respective far edges. Now the chart will undo the zoom state in this case.
3) Fixed an issue with the internal export dialog to handle periods within the name of a subfolder/directory.
1) Fixed an issue with memory usage. 9.5 introduced changes in memory management that were causing out of memory exceptions due to too aggressive predictions in increased demand of memory when arrays grew dynamically in projects that used a large amount of memory. 220.127.116.11 resolves the issue with less aggressive predictions.
2) Fixed an issue with serialization (PEsavetofile) of new feature GraphBmpOpacity
3) Fixed an issue with Setting and Getting the DxZoom property. Setting DxZoom was offsetting by a -7.5 internal factor, but PEvget was not adding back the 7.5 internal factor.
1) Added support for RenderEngine = Direct3D, Pego and Pesgo controls, 2D Bar, BarStacked, BarStackedPercent, and Area plotting methods. 18.104.22.168 fixes Area for double precision data.
2) Added MouseWheelFunction option for Vertical Zoom Only, allowing mouse wheel to only zoom the vertical axis, expanding the HorzAndVertical and Horizontal options.
3) Added property NullDataGapsArea. Set to True to enable the Pego Pesgo Area plotting methods to support NullDataGaps, forming breaks or gaps in the area plot upon null data.
4) Fixed RenderEngine = Direct3D export dpi feature which was not honoring ExportImageDpi and when ExportImageDpi is 0, it now defaults to 96 to match Non Direct3D exports (old Direct3D default was 72).
5) Added properties DeskBmpOpacity, GraphBmpOpacity, TableBmpOpacity, and ZoomWindowBmpOpacity. Now respective background gradients can be combined with background bitmaps and the bitmaps support partial opacity.
6) Added support for MouseWheelZoomEvents = True to also fire ZoomIn event when dragging left or right edge of zoom box in Zoomwindow.
7) Fixed Direct3D support for GraphBmpMinX GraphBmpMaxX GraphBmpMinY GraphBmpMaxY settings when using GraphBmpStyle = Zoomable and the image size was smaller than viewport.
8) Fixed Direct3D DeskGradientStart and DeskGradientEnd colors which had the red and blue components reversed.
9) Fixed Direct3D issue with ShowWireFrame = True combined with surface plotting methods and large surfaces.
10) Fixed VCL interfaces for Pe3do where programmatically sending vertical scroll message was not handling negative scroll positions.
1) 22.214.171.124 Std edition is completed and available, along with Pro edition.
2) New feature to allow randomly setting axis per subset.
.NET: Pego1.PeGrid.SubsetAxes, Default = Empty, when empty this feature is avoided
OCX, VCL: Pesgo.SubsetAxes
This feature allows setting the axis location (0 - 15) for each subset, individually and randomly.
For example modify demo example 012 with...
Pego1.PeGrid.SubsetAxes(0) = 3
Pego1.PeGrid.SubsetAxes(1) = 2
Pego1.PeGrid.SubsetAxes(2) = 1
Pego1.PeGrid.SubsetAxes(3) = 0
This tells the chart that subset 0 is on axis 3, subset 1 is on axis 2, etc. Reversing the order so the first subset is on the bottom, where normally the first subset would be on top. Historically, one would have to alter the order of subsets to achieve having the first subset on bottom.
One must still set MultiAxesSubsets though technically one only needs to make sure that the total subsets allocated within the MultiAxesSubsets items equals or matches the value of Subsets. There is a test within the chart construction that verifies that allocation of MultiAxesSubsets uses all subsets. As long as when setting SubsetAxes, one uses all axes, the chart will alter MultiAxesSubset items for you to reflect the state of SubsetAxes. This allows changing the numbers of subsets per axis without having to change MultiAxesSubsets, as along as the number of total axes stays the same and each axis has at least 1 subset.
3) Fixed WPF interfaces and a Direct3D D3DImage issue causing a fault in debug mode upon application exit.
4) Fixed WPF interfaces where switching between Direct3D and non-Direct3D RenderEngine settings needed an extra Invalidate.
5) Updated the Asp.Net WebForm example projects.
1) 126.96.36.199 polishes the .Net, MFC, and Access example projects; completes the Delphi and Builder example projects; and fixes a few issues related to new Direct3D Pe3do graph annotations.
1) Version 9.5 has many new features. Please study the "New v9 Features" help file topic: New v9.5 Features
1) The only difference is the ActiveX controls are updated.
1) Fixed an issue with Pego, Pesgo, setting ManualMaxY and ManualMinY with certain amounts containing large numbers of decimals causing overlapping text.
2) Fixed an issue with Pe3do, RenderEngine = Direct2D, the surface plotting method was missing first rows.
3) Improved ContourColorProportions for Pe3do and Pesgo. It is important that when using ContourColorProportions to empty the current state of ContourColors and SubsetColors, and then set number of items in SubsetColors with the same number of items in ContourColorProportions, and then set ContourColorSet = 1. This will produce contour divisions and or contour lines at your desired magnitude locations.
4) Added support for True/False setting of DxPsAntiAliasEdges property with the Pesgo"s contour color Direct3D plotting method.
5) Fixed an issue with QuickStyle feature and GraphGradientStart and GraphGradientEnd.
1) Within the built in export dialog, once a filename exists, changing the export type radio button will now automatically change the file extension to the respective type.
2) Fixed Pesgo 2D contour line plotting method. Lines were not using ContourColorProportions resulting in too many contour lines.
3) Fixed an issue with setting SequentialDataX from default 0 (auto) to 1 (sequential) was causing a problem with showing/hiding subsets.
4) Fixed a problem with wrong pen colors when Subsets greater than 250 combined with ZoomWindow showing all subsets, stressing pen resources.
5) Fixed a problem with RenderEngine = Direct2D, combined with x axis annotations feature showing vertical text. The image"s overall translation was being reset to 0,0 when 0.5,0.5 is needed to produce sharp single pixel wide lines.
6) Fixed DisableStackedPercentMenus which was not properly hiding the menus.
7) Fixed LineSymbolThickness feature which was not controlling the symbol line widths. Set to a value of 3 for 2 pixel widths, Set to 4 for 3 pixel widths, etc.
1) New WPF interface property PersistenceEnabled. Default False, set to True if using chart inside a complex container such as Telerik Rad Dock or other container that destroys and re-creates controls as part of their user interface. ProEssentials defaults to not persist as the chart may contain large amounts of data. It"s recommended to only set this property True if necessary (control is being reset to default 4 data points as part of user interface action.)
2) See the New v9 Features topic within the help system for new information related to version 9.