Popular Post Rick Brewster Posted July 21, 2017 Popular Post Share Posted July 21, 2017 This update improves performance and fixes a lot of small issues. As usual, you can download the update directly from the website, or you can use the built-in updater via Settings –> Updates –> Check Now. This is a minor update in the sense that it’s mostly a basket full of fixes and improvements. To me it feels like a larger release though While it doesn’t have any new features, it’s fixing and cleaning out a whole bunch of longstanding things that I’ve wanted to tackle for awhile. I’ve been chipping away at things pretty steadily since the release of 4.0.16, so this really is about 3 full months worth of fixes and improvements! At Microsoft we would’ve called this an “MQ” (Milestone Quality) release. For instance, the animation timer in version 4.0.16 runs at 120Hz. Always. The Win32 APIs for correctly detecting the monitor’s refresh rate are such a maze. They are archaic, bizarre, and the documentation is barely satisfactory. For this release I finally took the time to figure it all out and get the timer to run at the monitor’s actual refresh rate (it also works if you move the window across monitors with different refresh rates). I’m thinking of writing a blog post about it, in fact, because I don’t think anyone else should have to deal with that ever again. It sounds like it should be so simple, but there are always peculiarities and ambiguities that can trip things up. Not too surprisingly, this improves performance if you’re opening a lot of images: the image strip up at the top of the window uses several animations and it really gets bogged down, but now it’s actually much faster. This should also help battery life for laptop users (it won’t change things much for my new overclocked i9-7900X ). Also, there are a handful of bugs in Windows and Direct2D that this release is working around. The “Creators Update” for Windows 10 includes the .NET Framework 4.7 and they totally broke the way mouse cursors work for WinForms in high-DPI situations. The result was that 4.0.16 has some really ugly mouse cursors if you’re running at anything other than 100% scaling (aka 96 DPI). So I spent a bunch of time to work around that and write completely custom cursor loading code, which also came with the bonus of providing me with new control over how this whole system works within Paint.NET. The Win32 cursor system is an old, archaic, weird system, one that’s made worse by the various wrappers which are built on top of it (e.g. WinForms or WPF). Now I’ve got the ability to provide high resolution and high color cursors. I can do pretty much anything with them now, and would like to upgrade the Win95-era cursors in a future release. Also, I’ve implemented a “portable mode” that I’ll be describing in a follow-up post. It redirects the app’s settings into a local JSON file instead of having them in the registry. I know there are at least a handful of people who’ve been hoping for something like this for a long time – now your USB key can carry your personal settings with you from computer to computer. Next up for Paint.NET: Windows Store! Once that’s done, I’m planning to upgrade the brushes system. It desperately needs more built-in brush shapes, as well as the ability to install custom ones. Anyway, without further ado, here’s the change list! Added: "Fluid mouse input" option in Settings -> UI -> Troubleshooting. If you see major glitches while drawing, try disabling this. Improved: Default brush size, font size, and corner radius size now scales with major DPI scaling levels (brush size of 2 at 100% scaling, brush size of 4 at 200% scaling, etc.) Improved: Default image size now scales with major DPI scaling levels (800x600 at 100%, 1600x1200 at 200%, etc.) Improved performance and drawing latency by removing explicit calls to System.GC.Collect() except when low memory conditions are encountered Improved performance by greatly reducing object allocation amplification by reducing the concurrency level when using ConcurrentDictionary, and by removing WeakReference allocations in favor of direct GCHandle usage Improved: Performance and battery usage by ensuring animations always run at the monitor's actual refresh rate Improved (reduced) CPU usage when moving the mouse around the canvas Removed: "Hold Ctrl to hide handle" from the Text tool because it was not useful and caused lots of confusion Fixed: Various high-DPI fixes, including horrible looking mouse cursors caused by a bug in the latest .NET WinForms update Fixed: Gradient tool no longer applies dithering "outside" of the gradient (in areas that should have a solid color) Fixed: Very slow performance opening the Effects menu when lots of plugins are installed after installing the Windows 10 Creators Update Fixed: When cropping and then performing an undo, the scroll position was totally wrong Fixed a rendering glitch in the Save Configuration dialog (it would "wiggle") Fixed: At certain brush sizes, the brush indicator on the canvas had a visual glitch in it due to a bug in Direct2D Fixed: Text tool buttons for Bold, Italics, Underline were not localized for a few languages Fixed a rare crash in the taskbar thumbnails Fixed: Drawing with an aliased brush and opaque color (alpha=255) sometimes resulted in non-opaque pixels due to a bug in Direct2D's ID2D1RenderTarget::FillOpacityMask Fixed: "Olden" effect should no longer cause crashes (it still has some rendering artifacts due to its multithreading problems, however) New: Portable mode can be enabled via a setting in the .exe.config, which will redirect app settings into a local JSON file (see blogpost for details: https://blog.getpaint.net/2017/07/21/portable-mode-in-paint-net-4-0-17/ ) Enjoy! 9 9 The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
LionsDragon Posted July 21, 2017 Share Posted July 21, 2017 I knew there was a reason I didn't go to bed yet! Thank you, @Rick Brewster! Link to comment Share on other sites More sharing options...
hooddy Posted July 21, 2017 Share Posted July 21, 2017 Please point me at portable mode details I can't find it in the blog. Link to comment Share on other sites More sharing options...
Ishi Posted July 21, 2017 Share Posted July 21, 2017 The portable mode is what intrigues me on this when I read about the v.4.0.17. Will wait for feedback from the others though. Link to comment Share on other sites More sharing options...
AndrewDavid Posted July 21, 2017 Share Posted July 21, 2017 And as an added bonus - the Forum software was updated as well (My New Signature) Nickpic was a image hosting source made specifically for RPers and its shutting down. I use postimage.IO for free web hosting. How long before they follow photobucket and NicKPic? Link to comment Share on other sites More sharing options...
MadJik Posted July 21, 2017 Share Posted July 21, 2017 3 hours ago, Rick Brewster said: Next up for Paint.NET: I would suggest the default canvas size could be in the Settings/Tools. 800x600-4/3 is past. Now it's time for HD, Full HD, 4K, etc. Anyhow big thanks for your paint.net. My DeviantArt | My Pictorium | My Plugins | Donate via Paypal Link to comment Share on other sites More sharing options...
barbieq25 Posted July 21, 2017 Share Posted July 21, 2017 Thank you for your hard work Rick. Always very much appreciated. Knowledge is no burden to carry. April Jones, 2012 Gallery My DA Gallery Link to comment Share on other sites More sharing options...
AndrewDavid Posted July 21, 2017 Share Posted July 21, 2017 4 hours ago, Rick Brewster said: Added: "Fluid mouse input" option in Settings -> UI -> Troubleshooting. If you see major glitches while drawing, try disabling this. I have to give credit for this new addition. I don't believe it was in the beta build. The bouncing jitters I experienced was annoying but I failed to realize it was paint causing it. After 1 hour of painting this bouncing is totally gone. Another job well done Rick. (My New Signature) Nickpic was a image hosting source made specifically for RPers and its shutting down. I use postimage.IO for free web hosting. How long before they follow photobucket and NicKPic? Link to comment Share on other sites More sharing options...
null54 Posted July 21, 2017 Share Posted July 21, 2017 3 hours ago, Ishi said: The portable mode is what intrigues me on this when I read about the v.4.0.17. Will wait for feedback from the others though. The portable mode appears to work fine for me, although it took a little digging with Reflector to determine the name of the setting needed to enable it. Interestingly Effects can also query if Paint.NET is running in portable mode through the new PaintDotNet.AppModel.IAppInfoService.InstallType property. Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint Shop Pro Filetype | RAW Filetype | WebP Filetype The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait Link to comment Share on other sites More sharing options...
Rick Brewster Posted July 21, 2017 Author Share Posted July 21, 2017 6 hours ago, MadJik said: I would suggest the default canvas size could be in the Settings/Tools. 800x600-4/3 is past. Now it's time for HD, Full HD, 4K, etc. Anyhow big thanks for your paint.net. The canvas size scales with high-DPI as well now: 1600x1200 at 200% scaling, etc. Note that the scaling of canvas size, brush size, etc. is with the integer of the scaling. So at 150% scaling (144 DPI) you get the same values as at 100% scaling (96 DPI). The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Rick Brewster Posted July 21, 2017 Author Share Posted July 21, 2017 As promised, I've detailed the "portable mode" here: https://blog.getpaint.net/2017/07/21/portable-mode-in-paint-net-4-0-17/ 1 The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Tempreg12 Posted July 21, 2017 Share Posted July 21, 2017 Will you be providing a portable version of paint.net in a zip file already unpacked? Because... 1. Install Paint.NET on any system... This is really dumb for people who want a portable version of paint.net. I also suggest that in the installer when you select "Custom" install, that there be a portable option in there that sets everything up for you, ie. "<add key="PaintDotNet.EnablePortableMode" value="true" />" On another note, I copied my installed version onto another drive and made it portable via the config file, but it seems laggy, opening/closing the program, and opening the option menu, there seems to be a small hang/delay when doing these actions. The installed version it lightning quick, no delay at all. Link to comment Share on other sites More sharing options...
Rick Brewster Posted July 21, 2017 Author Share Posted July 21, 2017 Portable version is still very much in "DIY" territory for now. And, it's still in its infancy so there will probably be glitches and gotcha, and not yet something to broadly advertise and encourage. It's there if you want to try it, but it's not yet refined, in other words. The lagginess could be due to the performance of the USB stick ... I'll keep an eye on this The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Tempreg12 Posted July 21, 2017 Share Posted July 21, 2017 Fair enough, I look forward to the future of this, I've always preferred my programs portable when available and I will definitely be switching to a portable paint.net version once all the bugs get ironed out. And when I said I copied to another drive it was just me copying the folder from C:\Program Files\paint.net to another SSD location, so it wasn't a USB performance problem. Link to comment Share on other sites More sharing options...
Rick Brewster Posted July 21, 2017 Author Share Posted July 21, 2017 The USB key is where the app settings are written to, and that file is updated as the program is running. So, depending on how often that file needs to be rewritten, the performance of the USB stick could affect things in the way you describe. I don't think it's really that the USB stick is "slow" in a relative sense. Just that Paint.NET may just be reading/writing it too much. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
lynxster4 Posted July 21, 2017 Share Posted July 21, 2017 Thank you, @Rick Brewster. Update much appreciated! My Art Gallery | My Shape Packs | ShapeMaker Mini Tut | Air Bubble Stained Glass Chrome Text with Reflections | Porcelain Text w/ Variegated Coloring | Realistic Knit PatternOpalescent Stained Glass | Frosted Snowman Cookie | Leather Texture | Plastic Text | Silk Embroidery Visit my Personal Website "Never, ever lose your sense of humor - you'll live longer" Link to comment Share on other sites More sharing options...
smaragdus Posted July 21, 2017 Share Posted July 21, 2017 (edited) Hello, I joined this forum just because I read about the portable mode. I followed the instructions and paint.net version 4.17.6411.1908 seems to be portable (settings in PaintDotNet.AppSettings.json file inside program folder) but it is not stealth (it still writes to AppData- C:\Users\UserName\AppData\Local\paint.net folder containing two sub-folders- Optimization and SessionData)- a true portable program does not write outside its program folder. After I uninstalled paint.net I also found some remnants in Windows registry but I am not sure whether they were skipped by the uninstaller or they were re-created after I launched PaintDotNet.exe in portable mode. I second Tempreg12's suggestion for portable mode installation (or a dedicated portable version). Anyway, thanks to the developer(s) for adding portable mode! Edited July 23, 2017 by smaragdus typo Link to comment Share on other sites More sharing options...
Rick Brewster Posted July 21, 2017 Author Share Posted July 21, 2017 The Optimization folder may not be valid on other systems. It's used for something called Multicore JIT and does not affect the operation of the app (only the performance). https://blogs.msdn.microsoft.com/dotnet/2012/10/18/an-easy-solution-for-improving-app-launch-performance/ The SessionData folder is expected to be pretty heavy in terms of write activity and size of data. I would not want that to be stored on a USB key, it could totally make the app run really slow and burn out your USB key. I am concerned that "Paint.NET User Files", which is parked under the Documents folder, is not stored locally to the app. So I will need to address that in the next update. So, the goal of my "portable mode" here was not that it wouldn't leave any files behind on the system ("stealth" as you call it). At least, it wasn't what I targeted so far. 1 The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
smaragdus Posted July 23, 2017 Share Posted July 23, 2017 @Rick Brewster Thanks for your response. I am dabbler in graphics but I like your program very much and I will follow the development more closely. I forgot to mention in my previous post that in my opinion the installation was very (I am tempted to say extremely) slow (Windows 8 x64, 16 GB RAM), especially the "optimizing performance". Link to comment Share on other sites More sharing options...
Rick Brewster Posted July 23, 2017 Author Share Posted July 23, 2017 How fast "optimizing performance" takes will depend almost entirely on your CPU. And, if you've very recently done a Windows or .NET update, it may take a lot longer. It's just how things work. The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Seerose Posted July 24, 2017 Share Posted July 24, 2017 @Rick Brewster! Thank you so much for your effort and for the new version paint.net. Live as if you were to die tomorrow. Learn as if you were to live forever. Gandhi Link to comment Share on other sites More sharing options...
TrevorOutlaw Posted July 30, 2017 Share Posted July 30, 2017 Appreciate the update. I run PDN on Windows 10 laptop with AMD processor. In the previous version, clicking on any of the menu was cumbersome for the laptop to process, and if I am reading the inital post correct, this update fixed the issue. It's a "snap" to open the menu at a click. Thank you, Rick. Paint.NET Gallery | Remove Foreground Object Tutorial | Dispersion Effect Tutorial Link to comment Share on other sites More sharing options...
Rick Brewster Posted August 17, 2017 Author Share Posted August 17, 2017 That's a Windows thing, not Paint.NET. Should be in the "Sound" control panel on the tab called "Sounds". 1 The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
badbob001 Posted September 22, 2017 Share Posted September 22, 2017 When I downloaded and ran the 4.0.17 installer separately, it would freeze right after the express/custom screen. But the setup > updates method worked fine. Maybe it's just me. Link to comment Share on other sites More sharing options...
Drountint Posted September 29, 2017 Share Posted September 29, 2017 Thanks for introducing us with those news, so i have just downloaded it from that link! Big thanks! Link to comment Share on other sites More sharing options...
Recommended Posts