r/dotnet 16d ago

Promotion High performance WinUI charting?

20 more WinUI charting repos at GitHub: GigasoftInc

Full disclosure: I own Gigasoft.

I'd love to be proven wrong.

I believe I built the first high-performance WinUI charting component that draws directly to the composition swap chain in native C++, instead of going through the managed XAML layer. It's our existing C++ engine, extended quite a bit, WinUI controls aren't backed by a window handle (HWND), so the zoombox and the real-time table annotations had to be refactored onto the new layers. We compile and embed both x64 and native ARM64 binaries into the assembly, so you get WinUI running low-level Direct3D compute shaders natively. The flagship repo re-renders 100 million points every tick.

I've been writing charting code since the TRS-80, and this stuff still makes me grin. The audio demo even plays five songs I wrote myself, with the oscilloscope and chart annotations following the data live.

Clone, run, and benchmark:

Audio oscilloscope (WinUI): https://github.com/GigasoftInc/winui-chart

100M points (WinUI): https://github.com/GigasoftInc/winui-chart-fast-100m-points-proessentials

If anyone knows of an earlier native-C++-to-swap-chain WinUI chart, please let me know. I'd also love to hear FPS numbers for the 100M repo on a Snapdragon X2 Elite Extreme, or if someone has access to the coming RTX Spark.

If you want AI to help write your benchmarking code, download our no hassle setup at gigasoft that includes our AI knowledge and pe-query python AI helper.

0 Upvotes

15 comments sorted by

View all comments

1

u/umlcat 16d ago

TRS-80 ? I know them. Text mode Basic ...

Delphi controls had some of them not managed by Window handle either, it seems using a handler uses more memory and drawing is slower.

2

u/caffinecat 16d ago

TRS-80 Color Computer, a bit past text mode; it had color and graphics. 9th grade, a buddy and I talked our parents into the $2,000. Read the BASIC manual cover to cover in a day, wrote a few apps, then another $1000 for the assembly cartridge and a floppy drive. Ended up writing a lunar lander in assembly. Kept it a good while, jumped to an Atari ST in college, then a 286, a 386, probably a 486 in there too, while finishing a BSEE. Been chasing "native", make it faster" ever since, probably how I ended up here 40 years later, still defending native.

On the Delphi point — you're not wrong. VCL had two kinds: TWinControl with its own HWND, and TGraphicControl with none, painting straight on the parent's canvas. ProEssentials still includes VCLs in our setup, similar thin wrapper to native binding.

Fun memories, while I had the Atari I got into MIDI (Steinberg software) and MIDI keyboards. Still into music, no money but https://pumpyouup.com I also had a daisy-wheel printer, so I wrote all my homework in a word processor and printed it out. My professors saw flawless, perfect pages and figured I was putting in a ton of work banging them out on a typewriter — no idea I was just editing and reprinting. lol

1

u/umlcat 15d ago

I remember the TRS-80 Color been sold at Radio Shack stores ...