Paint.NET v3.5 – Better font handling, and performance. Again.

June 15, 2009 – 4:16 pm
Last Thursday I release a new alpha of Paint.NET v3.5, build 3450. I have rewritten the way that fonts are handled for and by the Text tool. Even if you don’t use the Text tool much, you will still notice some improvements! (see the bulleted list below) In previous versions of Paint.NET, there are two forms of text rendering supported. The first and the default is called “Smooth”, which utilizes GDI+* to render text. The second is called “Sharp”, and uses GDI. For both, GDI+ is used for font enumeration through the classes in the System.Drawing namespace. Over time, GDI+ has proven to be a poor system for font handling. It has been the cause of many crashes, as GDI+ has a tendency to crash or trample on memory when it encounters fonts that are “bad” (although bad is relative – the font itself may be perfectly fine!). This has led ...

First alpha build of Paint.NET v3.5 is now available

May 17, 2009 – 8:49 pm
Here’s where you can check it out: http://paintdotnet.forumer.com/viewtopic.php?f=46&t=30113 This will not be made available on the website. I don’t even recommend that any download websites host it yet. We’ll wait for the beta for that! In the meantime, please download, install, and post your comments on the forum.

Random April Thoughts

April 7, 2009 – 11:29 am
It's April and we finally have some sun in Seattle and I haven't posted in awhile. Paint.NET runs pretty well with Parallels on my MacBook Pro, although there's a few quirks to squash. Hmm ... they have an affiliate program. I smell a revision to the System Requirements coming soon. Do you know how many requests I get for a Mac version of Paint.NET? :) "Should Competent Programms be "Mathematically Inclined"?" -- Absolutely, Jeff. I can't believe anyone would question this. "Math is hard, let's go shopping!" *faceplant* Paint.NET v3.5 is coming along, but slowly. I haven't had as much time or motivation, and it's difficult when you don't have a build that works because of ancillary code you broke in areas that you don't really like (the Recolor tool comes to mind). Blackjack is fun, especially when you're winning.

Thank you, Akimset spam detector

March 2, 2009 – 1:47 pm
One of the most popular plugins for WordPress blogs is the Akimset spam detector. Mine says it has found and squashed 93,860 spam posts since it was installed. I'm always amazed at what type of spam the robots try and sneak through every day. Here's a recent spam post: "poonnnbvhifiytfyudyufydyddyufytfyufyutfyfyfyutfyfyutfyufytfytfyfyufytftyftftftftftftftttttttttttttttttttttttttttttfffffffffffffffffffffffffttttttttttttttttttttttffffffffffffffffffffffffffffffffffffffffffbut" Thanks for the comment! I'll be sure to raise that issue with management the next time I see them.

Russian is coming to Paint.NET

February 26, 2009 – 9:19 pm
Another great feature for the upcoming version 3.5 release: an official Russian translation! I think this should make 4.16% of the userbase very happy :)

Introducing Paint.NET v3.5’s new selection renderer

February 25, 2009 – 11:56 pm
In my previous post, I mentioned that I had rewritten the selection renderer in Paint.NET v3.5. As a pseudo-warning, this post is pretty technical. The selection renderer in Paint.NET v3.36 uses GDI+. It draws the outline twice: once as a dashed black line, and the second as a dashed white line. A timer fires every 50 milliseconds or so and redraws the outline with a slightly increased “dash offset.” This gives the “dancing ants” animation. Our pal Emma Roberts will demonstrate:   “Pretend I’m animated!” -- Ants There are a few major problems with this implementation. The first is that while you are drawing or modifying a selection, it is only drawn with a black outline (once you are done, it will transition to the “dancing ants” mode). This makes it wickedly difficult to figure out what kind of selection you’re drawing if the underlying area is black. Try it with a solid ...

The theme of Paint.NET v3.5 is … performance

February 5, 2009 – 1:01 am
I sat down to write some notes before starting this blog entry, and I wound up with two full pages in OneNote on the 1920x1200 monitor it was sitting in. The more I’ve been working on it the more I’m excited about the Paint.NET v3.5 release. It isn’t one that introduces a lot of really cool or big-ticket features, but the list of small improvements is really adding up. I’ve been able to do a lot of research and prototyping in esoteric areas of multithreading and concurrency, and have gained both more mastery and more fear for these topics. Performance work in Paint.NET v3.5 has wound up focusing on 3 areas: Scaling up. As everyone’s been saying for years, the future is increasingly multithreaded. My newest CPU upgrade leaves me with 8 threads in Task Manager (Intel Core i7 overclocked to 3.8GHz). A lot of research and work has gone into making ...

Mid-January Progress Update on Paint.NET v3.5

January 16, 2009 – 2:06 am
I think it’s best to quote a private-message between myself and Ed Harvey on the forums: I've got to stop breaking things before I start fixing them ... Paint.NET v3.5 is turning out to be more work than I originally anticipated! What started out as a “simple” rewrite of the selection rendering system has turned into a major refactor of large portions of the code base. I’m done a wholesale adoption of WPF’s mathematics primitives such as Point, Rect, Int32Rect, Vector, Size, and Matrix. These classes do a better job and are more consistent than GDI+’s Point, PointF, Rectangle, RectangleF, Matrix, etc. (I’m still befuddled as to why System.Drawing.Drawing2D.Matrix, which is six floats and 24 bytes, needs a Dispose() method. Give me a struct please.) The goal is to make sure that the entire data flow from the selection tools to the selection renderer is as performant as possible. Right now rendering ...

How to fix: Paint.NET “breaks” with Vista SP2 Beta

December 20, 2008 – 3:31 pm
I've had some reports that installing the Windows Vista SP2 beta (or "CPP") breaks Paint.NET v3.36. You'll get an error message like so: Contrary to the error, Paint.NET v3.36 does not require .NET Framework 3.5 SP1. There are two ways to fix this: 1. Install .NET Framework 3.5 SP1. I recommend doing this anyway, because it has numerous fixes and performance improvements that make Paint.NET happy. 2. Go to the directory you installed Paint.NET, and remove all the files with the ".exe.config" extension. This will un-confuse the .NET loader stuff. This seems to be something related to the .NET Client Profile, although I'm not sure what the root cause is. I'll be reporting this bug to the right people, so that it can be fixed.

Installing .NET 3.5 SP1: Please wait … Forever!

December 13, 2008 – 2:54 am
The very cool thing about Paint.NET v3.5 is that it installs quite fast on a fresh Windows XP SP2 machine. And that includes the installation of prerequisites like Windows Installer 3.1 and the Client Profile version of the .NET Framework 3.5 SP1. Even on my new little Atom 330 box* it is kind of pleasantly fast. I'd even say it's fun. (The unfortunate thing is that Paint.NET v3.5 is not yet out of "pre-alpha" ...) Intel BOXD945GCLF2 Atom 330 Mini ITX Motherboard/CPU Combo Intel BOXD945GCLF2 Atom 330 Intel 945GC Mini ITX Motherboard/CPU Combo Once you jump over to Windows Vista, the story becomes very very very very dire. It took a full hour to install .NET 3.5 SP1. The hard drive was thrashing and yelling the entire time, and CPU usage was quite high. In the middle of this, a Windows Update dialog popped up in the corner ...