Page 1 of 1

New AccurateText option

Posted: August 4th, 2013, 2:56 pm
by jsmorley
We are very close to the point where we will be making the use of Direct2D / DirectWrite (D2D) the default rendering engine in Rainmeter. We intend to do one more week of testing with the change "opt-in", then change to using D2D as the default behavior in Rainmeter.

We would ask that everyone use the "Manage" dialog, click the "Settings" tab, and check the the new box "Use D2D rendering". This will dynamically change the setting in Rainmeter.ini and refresh all skins with the new rendering engine. We need as much feedback as we can get on the behavior of String meters with Direct2D this week, before we make this the default setting.
BetaImage2.jpg
Remember that UseD2D=1 (improved font rendering) will only work on systems running Windows 7 with the Platform Update applied, or Windows 8. The Platform Update for Windows 7 should have been automatically installed via Windows Update. If you do not have Windows Update enabled, you will need to manually install this. Systems running Windows XP or Windows Vista will not see any change with UseD2D=1.

This week, we have added a new AccurateText option. The intent of this is to ensure that we protect the backwards compatibility of Rainmeter with older skins available on deviantART and Customize.org, while having the improved string / font rendering with D2D be the default behavior.

AccurateText=0/1 (default 0)
If set to 1, this option will cause String meters to be rendered with the improved spacing and padding offered by Direct2D. If set to 0, the default, strings will be rendered with the old spacing and padding behavior from GDI+.

AccurateText is set in the individual skins in the [Rainmeter] section. This is because while we want the overall UseD2D setting to be both "global" and under the complete control of the end user of Rainmeter, the design of individual skins needs to be under the control of the author of the skin, and something that will work as expected when a skin is distributed in the .rmskin format, no matter what the user has set for UseD2D.

What this means is that with AccurateText=0, setting UseD2D=1 in Rainmeter.ini and using the improved font rendering of D2D should not change the layout, spacing or other design elements of any skin you are currently using. The only visible change should be vastly improved font rendering quality.

With AccurateText=1 set on new skins you create, you will have much finer control over the way you design skins with String meters, as you will not have to work around or design to account for the extra padding and inaccurate spacing that GDI+ has by default.

The various combinations are:

UseD2D=0 and AccurateText=0: Same as today with UseD2D=0.
UseD2D=0 and AccurateText=1: GDI+ measures strings in a similar fashion to D2D.
UseD2D=1 and AccurateText=0: D2D measures strings in a similar fashion to GDI+.
UseD2D=1 and AccurateText=1: Measures the string with D2D.

This image shows some String meters using the various combinations of UseD2D and AccurateText.
BetaImage.jpg
The long and the short of it is that all users who have a system that supports it should be using UseD2D=1 from now on, and in fact we will be making that the default (subject to changing if you really want to) starting next week.

For older skins you created or downloaded, leaving AccurateText=0, or just not adding it at all, will allow those skins to behave as before, just with better quality fonts.

For new skins you create after the release of Rainmeter 3.0, we do recommend using AccurateText=1, which should make designing skins with carefully laid out string meters, their relative positions with each other, and the use of StringAlign with "center" or "right" more flexible and intuitive. This is entirely up to you of course.

Re: New AccurateText option

Posted: January 18th, 2017, 5:11 pm
by raiguard
I can't believe I designed an entire suite of skins without knowing about this option. This would have made my life SO MUCH EASIER.

Time to refactor!