Where Are All The Pretty Graphics?

The structure of paint.net Effect plugins

March 30, 2017   -   Filed under: paint.net

Someone recently asked about documentation for creating paint.net plugins. Unfortunately, no official documentation exists. This lead me (and others)  to explain some of the concepts of effect plugins. As part of the discussion, I put together a chart to visualize the structure of both IndirectUI plugins and Custom GUI plugins. It still needs some polish, but here’s the current draft.

Blue Rectangles: Base Classes you derive from.
Black Ellipses: Classes you create
Gray Ellipses: Classes IndirectUI creates “behind the scenes”

Blue Lines: Shows class derivation (shows the base class)
Red Lines: Shows the flow of Token values
Black Lines: Shows Classes being invoked from other classes

Fixing the GUI controls in ReactOS’s sndvol32

March 29, 2017   -   Filed under: ReactOS

Most people won’t bother installing sound drivers on ReactOS, and thus would never see this bug. However, if you do install sound drivers, you’ll be able to open Volume Control (after ignoring a few Assertion Failure messages) and see it’s missing most of its controls.

I discovered incorrect parameters where being passed to the CreateWindowEx function (this was also causing the Assertion Failure messages). After poking around for a little longer, I found this was caused by an index becoming off-by-one when the horizontal separator was created.

Easy fix:

Patch submitted to pre-existing bug report.


UPDATE 2018/01/26:  This fix finally got commited.

Browser notifications on Pandora

March 28, 2017   -   Filed under: Uncategorized

I wrote a simple Greasemonkey script to display a browser notification when a song plays in Pandora.

The script is available on Greasy Fork.

Update to the ‘Two-point Perspective’ plugin

March 27, 2017   -   Filed under: paint.net

I have rewritten much of the ‘Two-point Perspective’ paint.net plugin to make the code much simpler, cleaner, and efficient.

A new feature in this release in the “Draw Vanishing Point Guides” option. It looks like this (the red and blue lines):

Version 1.6 can be downloaded on the official paint.net forum.

The source code is on GitHub.