JPEG Saver 5.0
When I replaced the NSIS installer with a WiX Toolset-built MSI file for version 4.20 of JPEG Saver, I wasn't all that happy with it. It worked fine, it installed and uninstalled the files, but it still had to include the DirectX 9 installer just in case it was installing on a machine that didn't already have it installed. JPEG Saver 5.0 is the first version since 2009 that doesn't need DirectX 9 installed - because it uses DirectX 11 instead.
DirectX 11 should already be installed on Windows 7 and newer, as it is now part of the operating system instead of a separate install. I've tested on 64-bit Windows 10 with Nvidia graphics, 32-bit Windows 10 with AMD graphics, and on a 32-bit Windows 7 virtual machine with no real graphics card at all. JPEG Saver ran without any problems on these, so I'm fairly confident it should run on most configurations.
So what is actually new in this version? Very little, to be honest. I had to rewrite all the 3D rendering code used for the transitions and the real-time items on the main display, but hopefully JPEG Saver shouldn't look or behave much differently to the last DirectX 9 version.
There are two new transitions, because I can't seem to resist adding them. “Fall off” is the result of my testing the “Heavy explode” transition without breaking the image into pieces. The old image basically falls off the screen to reveal the new one.
The other new transition is called “Ring wipe” because it is a wipe transition using rings. I couldn't think of a better name for it, unfortunately. There is another transition on my to-do list with a question mark next to it because I have no idea what to call it - I suspect making it work will be easier than thinking of a name.
There are a couple more DirectX-related changes in this version that I should mention. The first of these is how the gamma and dimmer options work. In JPEG Saver 4.x they both worked by modifying the Direct3D device gamma ramp, which meant the screen had to be in “exclusive” mode. In JPEG Saver 5 they work by using a post-processing pixel shader instead, so they don't change any device settings and they don't require a full-screen exclusive mode. The downside is that the post-processing means an extra step in the rendering process that will reduce performance slightly.
Screen modes are the other DirectX-related change in this version. When you selected a screen mode in JPEG Saver 4.x, the screen mode would be used if possible or it would fall back to a non-DirectX screen otherwise. DirectX 11 will try to use the selected screen mode, or scale the display to the selected resolution if the screen mode can't be used. I'm not convinced I have this working very well at the moment, so I'll take another look at it when I get the chance.
Not DirectX related
Another change that hopefully will go unnoticed is the removal of
SCRNSAVE.LIB from the code.
SCRNSAVE.LIB is a small
piece of code that Microsoft has supplied since the days of Windows 3.x to make
it easier to create screen savers. Screen savers have actually become simpler
since those days (they don't have to include their own password prompts for a
start) so it isn't really necessary. JPEG Saver should now be performing all
the required functions by itself.
One more notable change: there was a bug that made JPEG Saver stop changing images after a while. It was one of those annoying ones that didn't always happen, and didn't happen often enough to make it easy to fix. I'm pretty sure I have it fixed now though, or at least it's not happening often enough for my tests to catch it. If you still experience it with this version, please let me know and I'll implement my plan 'B', the programming equivalent of poking it with a stick.
The JPEG Saver to-do list never seems to get any shorter. At the top of the list are replacing the JPEG 2000 loader with a newer one and improving the folder scanning algorithm. There will be more transitions. Some of the other changes might require splitting JPEG Saver up into bits - I'm not fond of this idea though.
As usual, the new installer files are available from the downloads page.