JPEG Saver 6.0
Published
Here is version 6.0, after eight years of 5.x. There are some quite big changes in this version, but they are mostly internal and the interesting stuff appears quite small in comparison.
Windows 10?
Windows 10 is now required to run JPEG Saver 6. I have tried to support Windows 7 (and 8, I suppose) for as long as possible, but it has just become too difficult. Recent 5.x releases probably didn't work on Windows 7 either, but that was not deliberate.
What this means for me is that I don't have to restrict my use of newer APIs any more, or dynamically-load DLLs to see if the newer API is available before attempting to use it.
Options rewrite
The biggest change in this version is in how JPEG Saver handles options. I needed a new type of option that could override the global option for a specific display, so I came up with option suffixes.
Here is an example using the background mode option:
bgmode: 10 bgmode/0: 1
The background mode is 10 (Image copy - tiled) but for display 0 it has been overridden by mode 1 (Random colour). This type of option is simple and backwards-compatible, so a config file created by JPEG Saver 6 with suffixed options can be used by JPEG Saver 5.x, ignoring the new suffixed option.
The suffixed options could be used for other things, but at the moment they are only useful for multiple monitors and windows.
Per-display options
The whole point of that change was to support options that can override things for each display*. So now JPEG Saver has a new dialog opened by a button with "D+" on it in the "Position/Resize" tab. The dialog lists all the options that can be overridden, with inputs to change their values.
This might seem like quite a simple change, but it took me a lot of time. I had to go through each option to see if it made sense to change it for each display, how I could make it configurable, then make the code that uses each option ask for the right option for the display it is using. Some options had to be merged or split to make things work.
There are more options that could be configured per-display, but I haven't figured out how I am going to make them configurable yet. Text and other items are the most obvious example of that, but I hope to get them configurable in a future version. Different background image folders for each display is another example, but that one is dependent on a database overhaul that is still on the to-do list.
* By display I mean either a whole physical monitor or a window. JPEG Saver
can be made to open multiple windows using the /g windowed mode
command-line option.
What else?
There are a few more changes in this version, so here they are in order of how useful they might be:
- Faster/slower image changing keys: you can now use keyboard shortcuts in interactive mode to speed up or slow down the rate at which JPEG Saver changes the image.
- Configurable maximum MSAA level: this new option in the "Debug" dialog lets you set the maximum antialiasing level JPEG Saver uses for Direct3D transitions. The default is 4, but you can increase it or even turn antialiasing off.
- Staggered display updates rewrite: the code that controls how transitions are scheduled across multiple displays has been completely rewritten. Now the total change delay is divided by the number of displays and the change happens at that interval, even if the previous display is still in a transition.
- Better Direct3D swap effect: JPEG Saver 6 uses the newer FLIP effect, which is more efficient than the older method.
- Better timers: the timer code has been replaced to reduce latency, and to allow for the faster/slower shortcuts I mentioned above.
What's next?
I don't know. My to-do list is quite long, and full of big, complicated things. There will probably be a version 6.1 fairly soon to fix and clean up anything wrong with this version, but there might be a version 7 some time after that to do the next big thing.
Bugs and things
There are probably bugs. If I find them, I fix them, but I don't tend to find them all. If you find one, please let me know and I'll do my best to fix it.
Download link
The updated installers are available from the downloads page.
