Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Different font rendering when using ExplorerBlurMica #136

Open
dxzdxz1 opened this issue Apr 18, 2024 · 11 comments
Open

Different font rendering when using ExplorerBlurMica #136

dxzdxz1 opened this issue Apr 18, 2024 · 11 comments

Comments

@dxzdxz1
Copy link

dxzdxz1 commented Apr 18, 2024

First of all, this is not a bug/issue report, it's a request

Let me explain my scenario and what ExplorerBlurMica did for me (beyond the beautiful Mica effect on Explorer Windows)

I have a OLED TV as monitor (LG C2 42). As some of you may know, Windows ClearType font rendering looks awful on OLED displays given the pixel layout difference between OLED displays vs everything else. A discussion on this topic can be seen here.

For some reason, ExplorerBlurMica (up to v1.0.7) solves the Windows font rendering issue by somehow changing the way Windows Explorer render fonts.

Printscreen:

Without ExplorerBlurMica

With ExplorerBlurMica

Macro photo captured with a camera:

Without ExplorerBlurMica

With ExplorerBlurMica

It's a night and day difference.

And, while there is a tool that can change the Windows font rendering, this tool also breaks the functionality of some programs and games with anticheat software (because it injects itself on every program by default), meanwhile, since ExplorerBlurMica don't touch any other program except built-in Windows programs, this problem doesn't happen.

Now, why am I writing this?

After the 2.0.0 release and the rewrite of ExplorerBlurMica, a lot of issues were corrected, support for the XAML part of Explorer was added and performance was optimized, but on the other side, the change of the explorer font rendering was lost. I don't know nothing about programming, but after reading the changelog, I believe that it has something to do on 'changing of component loading method', from BHO to the new one, but it may be something else, I honestly don't know.

I know that this thing with font rendering was a mistake and wasn't intended to exist (ExplorerBlurMica existence isn't about this at all), but if you take requests, I would be really glad if you guys could bring back this 'mistake' in some form in newer releases. The 1.0.7 release has some bugs don't exist on newer versions.

Btw, I can reproduce these examples on W11 22631 and W11 26100 builds, it probably affects all versions of Windows.

Thank you for your time and thank you for this incredible software! 🙂

@Undisputed00x
Copy link

Undisputed00x commented Apr 18, 2024

Maybe enabling Composited text can help, despite not having an OLED this improves text on translucent background.

@Void48
Copy link

Void48 commented Apr 20, 2024

First of all, this is not a bug/issue report, it's a request

Let me explain my scenario and what ExplorerBlurMica did for me (beyond the beautiful Mica effect on Explorer Windows)

I have a OLED TV as monitor (LG C2 42). As some of you may know, Windows ClearType font rendering looks awful on OLED displays given the pixel layout difference between OLED displays vs everything else. A discussion on this topic can be seen here.

For some reason, ExplorerBlurMica (up to v1.0.7) solves the Windows font rendering issue by somehow changing the way Windows Explorer render fonts.

Printscreen:
Macro photo captured with a camera:
It's a night and day difference.

And, while there is a tool that can change the Windows font rendering, this tool also breaks the functionality of some programs and games with anticheat software (because it injects itself on every program by default), meanwhile, since ExplorerBlurMica don't touch any other program except built-in Windows programs, this problem doesn't happen.

Now, why am I writing this?

After the 2.0.0 release and the rewrite of ExplorerBlurMica, a lot of issues were corrected, support for the XAML part of Explorer was added and performance was optimized, but on the other side, the change of the explorer font rendering was lost. I don't know nothing about programming, but after reading the changelog, I believe that it has something to do on 'changing of component loading method', from BHO to the new one, but it may be something else, I honestly don't know.

I know that this thing with font rendering was a mistake and wasn't intended to exist (ExplorerBlurMica existence isn't about this at all), but if you take requests, I would be really glad if you guys could bring back this 'mistake' in some form in newer releases. The 1.0.7 release has some bugs don't exist on newer versions.

Btw, I can reproduce these examples on W11 22631 and W11 26100 builds, it probably affects all versions of Windows.

Thank you for your time and thank you for this incredible software! 🙂

I agree. I hope this can be brought back in newer versions, as it really helped with color fringing.

@dxzdxz1
Copy link
Author

dxzdxz1 commented Apr 22, 2024

Maybe enabling Composited text can help, despite not having and OLED this improves text on translucent background.

Thanks for trying to help me. Not sure what you mean by 'enabling composited text', couldn't find anything searching for this on Google. Could you explain how can I do this on Windows?

@Undisputed00x
Copy link

Maybe enabling Composited text can help, despite not having and OLED this improves text on translucent background.

Thanks for trying to help me. Not sure what you mean by 'enabling composited text', couldn't find anything searching for this on Google. Could you explain how can I do this on Windows?

Personally the only way i managed this was by modifying system's dlls. Im sure dev can implement this with code which i dont have any knowledge. Also not sure if this will resolve your issue so only way to found out is by testing.
Process is not so easy but i'll show you howto below:

Details

Here is my modified dll that you need to download, extract to Downloads Folder and then copy to system's directory:
ExplorerFrame.dll.zip

First to successfully copy the modified file to system's directory we need the proper permissions and we can do that by using AdvancedRun :
advancedrun-x64.zip

Open AdvancedRun, on top use runmode: CommandPromt, then below copy this to CommandString:

taskkill /F /IM explorer.exe && xcopy /y "%userprofile%/Downloads/ExplorerFrame.dll.mun" "%windir%/systemresources/" && timeout 2 && start explorer

To revert open cmd and execute this:

sfc /scanfile=c:\windows\systemresources\ExplorerFrame.dll.mun

If repair was unsuccessful use first this on cmd wait to complete and then try again the previous command:

dism /Online /Cleanup-Image /restorehealth

@dxzdxz1
Copy link
Author

dxzdxz1 commented Apr 22, 2024

Personally the only way i managed this was by modifying system's dlls. Im sure dev can implement this with code which i dont have any knowledge. Also not sure if this will resolve your issue so only way to found out is by testing. Process is not so easy but i'll show you howto below:

Just tried here, the file was successfully replaced, but nothing changed in the way the fonts are rendered on Explorer. Nice scrolling effect tho, looks like a carrousel. Don't know if it's a bug or if you did change the scrolling effect, but I thought it was nice :)

@Zetsubou-Sensei
Copy link

Zetsubou-Sensei commented Apr 23, 2024

First of all, this is not a bug/issue report, it's a request

Let me explain my scenario and what ExplorerBlurMica did for me (beyond the beautiful Mica effect on Explorer Windows)

I have a OLED TV as monitor (LG C2 42). As some of you may know, Windows ClearType font rendering looks awful on OLED displays given the pixel layout difference between OLED displays vs everything else. A discussion on this topic can be seen here.

For some reason, ExplorerBlurMica (up to v1.0.7) solves the Windows font rendering issue by somehow changing the way Windows Explorer render fonts.
Printscreen:
Macro photo captured with a camera:

It's a night and day difference.

And, while there is a tool that can change the Windows font rendering, this tool also breaks the functionality of some programs and games with anticheat software (because it injects itself on every program by default), meanwhile, since ExplorerBlurMica don't touch any other program except built-in Windows programs, this problem doesn't happen.

Now, why am I writing this?

After the 2.0.0 release and the rewrite of ExplorerBlurMica, a lot of issues were corrected, support for the XAML part of Explorer was added and performance was optimized, but on the other side, the change of the explorer font rendering was lost. I don't know nothing about programming, but after reading the changelog, I believe that it has something to do on 'changing of component loading method', from BHO to the new one, but it may be something else, I honestly don't know.

I know that this thing with font rendering was a mistake and wasn't intended to exist (ExplorerBlurMica existence isn't about this at all), but if you take requests, I would be really glad if you guys could bring back this 'mistake' in some form in newer releases. The 1.0.7 release has some bugs don't exist on newer versions.

Btw, I can reproduce these examples on W11 22631 and W11 26100 builds, it probably affects all versions of Windows.

Thank you for your time and thank you for this incredible software! 🙂

WOW! Dude this is MASSIVE! I've been struggling with this text issue since I got an OLED monitor and your screenshot is a night and day difference!

I'm going to try it on my W11 build tomorrow but I believe it being 23H2 will hamper v1.07 compatibility based on the change log.

Thanks for this awesome find. +1 that it would be amazing if the dev team was able to recreate that functionality ❤️

@Zetsubou-Sensei
Copy link

First of all, this is not a bug/issue report, it's a request

Let me explain my scenario and what ExplorerBlurMica did for me (beyond the beautiful Mica effect on Explorer Windows)

I have a OLED TV as monitor (LG C2 42). As some of you may know, Windows ClearType font rendering looks awful on OLED displays given the pixel layout difference between OLED displays vs everything else. A discussion on this topic can be seen here.

For some reason, ExplorerBlurMica (up to v1.0.7) solves the Windows font rendering issue by somehow changing the way Windows Explorer render fonts.
Printscreen:
Macro photo captured with a camera:

It's a night and day difference.

And, while there is a tool that can change the Windows font rendering, this tool also breaks the functionality of some programs and games with anticheat software (because it injects itself on every program by default), meanwhile, since ExplorerBlurMica don't touch any other program except built-in Windows programs, this problem doesn't happen.

Now, why am I writing this?

After the 2.0.0 release and the rewrite of ExplorerBlurMica, a lot of issues were corrected, support for the XAML part of Explorer was added and performance was optimized, but on the other side, the change of the explorer font rendering was lost. I don't know nothing about programming, but after reading the changelog, I believe that it has something to do on 'changing of component loading method', from BHO to the new one, but it may be something else, I honestly don't know.

I know that this thing with font rendering was a mistake and wasn't intended to exist (ExplorerBlurMica existence isn't about this at all), but if you take requests, I would be really glad if you guys could bring back this 'mistake' in some form in newer releases. The 1.0.7 release has some bugs don't exist on newer versions.

Btw, I can reproduce these examples on W11 22631 and W11 26100 builds, it probably affects all versions of Windows.

Thank you for your time and thank you for this incredible software! 🙂

Confirmed that v1.07 has fixed text rendering on 23H2! This is amazing!

@Maplespe
Copy link
Owner

In fact, since DwmExtendFrameIntoClientArea causes non-alpha rendered windows to display exceptions, we added composited buffer rendering text to each of the Explorer's windows that don't support alpha in order to work around this issue.
For 1.0.7 the global inline hook was used so it could delay performance by additionally processing parts that didn't need to be processed.
So for 2.0.0 we switched to an IAT hook and only used it for file explorer windows.
For the desktop, this was an accident, so we fixed it.

I might consider adding an option to use the old hook, but that would make maintenance a pain in the ass.

@dxzdxz1
Copy link
Author

dxzdxz1 commented Apr 25, 2024

In fact, since DwmExtendFrameIntoClientArea causes non-alpha rendered windows to display exceptions, we added composited buffer rendering text to each of the Explorer's windows that don't support alpha in order to work around this issue. For 1.0.7 the global inline hook was used so it could delay performance by additionally processing parts that didn't need to be processed. So for 2.0.0 we switched to an IAT hook and only used it for file explorer windows. For the desktop, this was an accident, so we fixed it.

I might consider adding an option to use the old hook, but that would make maintenance a pain in the ass.

I can't imagine how hard is to adapt/modify a software, so if it's not easy, then don't mind. I'm really glad that this software exists, the change of the font rendering was just a happy coincidence.

If I may suggest (and if it's not hard to create), you could create a software that only changes the font rendering, without everything else ExplorerBlurMica does and maintain then separately. I'm pretty sure that a lot of people would like because almost all of the laptops that has OLED screens and people who use OLED Monitors and OLED TVs as monitors would benefit on this.

@Void48
Copy link

Void48 commented May 5, 2024

In fact, since DwmExtendFrameIntoClientArea causes non-alpha rendered windows to display exceptions, we added composited buffer rendering text to each of the Explorer's windows that don't support alpha in order to work around this issue. For 1.0.7 the global inline hook was used so it could delay performance by additionally processing parts that didn't need to be processed. So for 2.0.0 we switched to an IAT hook and only used it for file explorer windows. For the desktop, this was an accident, so we fixed it.
I might consider adding an option to use the old hook, but that would make maintenance a pain in the ass.

I can't imagine how hard is to adapt/modify a software, so if it's not easy, then don't mind. I'm really glad that this software exists, the change of the font rendering was just a happy coincidence.

If I may suggest (and if it's not hard to create), you could create a software that only changes the font rendering, without everything else ExplorerBlurMica does and maintain then separately. I'm pretty sure that a lot of people would like because almost all of the laptops that has OLED screens and people who use OLED Monitors and OLED TVs as monitors would benefit on this.

I'm also sure that if Maplespe can separate the font rendering side and implement it into a new app, it would definitely gain a lot of popularity among OLED monitor owners. Posting it on the r/OLED_Gaming subreddit would certainly guarantee a popularity spike :)

@mdrejhon
Copy link

Fantastic improvement for OLEDs!

This is NOT subpixel rendering, but might very well be one of the best greyscale-antialiasing renderers.

We still need improved subpixel rendering for lower-DPI 240Hz OLEDs like large 1440p desktop OLEDs, but this route is probably fine and easier when you have enough pixels (4K 240Hz OLEDs)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants