Rick Brewster

paint.net 4.2.2 beta build 7186

Recommended Posts

This update has some goodies in it. AV1 (*.avif) support has been added, DirectDraw Surface (*.dds) support has been completely upgraded by way of bundling @null54's excellent DDSFileTypePlus plugin, and there are some great performance improvements and bug fixes.

 

To get this update, make sure you have "Also check for pre-release (beta) versions" enabled in Settings, and then click on the Check Now button.

image.png

 

You can also download directly: https://www.getpaint.net/files/zip/test/paint.net.4.202.7186.33068.install.zip

 

Changes:

 

  • New: AV1 (*.avif) images can now be opened (saving is not supported). Windows 10 v1809+ and Microsoft's AV1 Codec are required (download: https://www.microsoft.com/p/av1-video-extension-beta/9mvzqvxjbq9v)
  • New: DirectDraw Surface (*.dds) support has been greatly improved due to bundling @null54's DDSFileTypePlus plugin. All DX10/DX11 formats should now be supported (e.g. BC4, BC5, BC6H, BC7), and encoding (saving) will make use of the GPU to greatly improve performance. Note that it's not longer necessary to use the ".dds2" file extension.
  • Improved: Startup performance has been improved
  • Fixed: EXIF metadata of type Float and Double are now supported. This ensures GeoTIFF metadata is preserved. 
  • Fixed: Opening an image should no longer flicker because the transparency checkerboard was being drawn first
  • Fixed: TGA images that are 16-bit with 1-bit alpha with a zero'd out alpha channel are now treated as opaque. This allows images from 5CC Map Maker (for Close Combat modding) to work. Thanks @null54 for the fix!
  • Fixed: JPEG XR's file extensions (*.jxr, *.wdp, *.wmp) are now registered with Explorer
  • Fixed: Pasting images that use RGB pixel ordering should now work (this affects PaintTool SAI)
  • Like 2
  • Upvote 1

Share this post


Link to post
Share on other sites

Thanks for the update @Rick Brewster!  Question about bundling @null54's DDS plugin.

I notice I now have a folder under 'paint.net' labelled 'Bundled' in which resides the (3) files for DDS plugin.

I still have them in the 'FileTypes' folder.  Can I delete these or leave them be?

 

Also, when null54 does an update to the plugin do we just replace the ones in the 'Bundled' folder?

 

Thanks for all you do!  :star:  :)

 

Share this post


Link to post
Share on other sites

You can leave the one in FileTypes or you can delete it. It doesn't really matter. The Bundled one takes precedence, if it's the newer version (or same version). 

 

If @null54 releases an update, you can install it into FileTypes and then it will take precedence. You should only need to do that if there's a feature or bugfix that you think is important and that you need ASAP. Otherwise, you can wait for the next Paint.NET update which will already come with the newest version of the plugin.

  • Like 1

Share this post


Link to post
Share on other sites

While checking null's filetype on github, I noticed FileTypeOptions and when updating ORA plugin, VS 2019's Intellisense complained at creating the Document type about recommended dispose pattern to make sure it's disposed on all paths. So I tried putting the whole thing inside using after a bit of googling and now when I try to open a .ora, paint.net crashes.

Removing the using block fixes it back to working order. Don't know if this is something that needs to fixed at all? Or just ignore Intellisense?

Edited by Zagna

Share this post


Link to post
Share on other sites

Why would you dispose the Document before returning it from the FileType? That makes no sense. That destroys the object. You only dispose things that are done being used.

Share this post


Link to post
Share on other sites
36 minutes ago, Rick Brewster said:

Why would you dispose the Document before returning it from the FileType? That makes no sense. That destroys the object. You only dispose things that are done being used.

The return is inside the using. Just tinkering around to see if I could get Intellisense happy.

Or I just misunderstood the stackoverflow search results about combining return&using.

If so, just ignore my ramblings. I just dabble with C#.

Edited by Zagna

Share this post


Link to post
Share on other sites

Yeah don't dispose the Document.

 

using (T thing = expr)
{
    return thing;
}

 

is equivalent to

 

T thing = expr;
try
{
    return thing;
}
finally
{
    if (thing != null) thing.Dispose();
}

 

You can think of the 'finally' block as jumping in and executing right before any 'return' actually happens. So, returning 'thing' doesn't prevent Dispose() from being called on it. The caller will just get a garbage object from your method.

 

More info, straight from the source: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/try-finally

  • Like 1

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.