dmd-extensions icon indicating copy to clipboard operation
dmd-extensions copied to clipboard

Request: VirtualDMD to override Windows scaling

Open maartenlangeveld opened this issue 3 years ago • 9 comments

edit: narrowed down the issue

Hi,

First, thanks for the great dmd-extensions! ~~I have installed FlexDMD that uses dmd-extensions.~~

Use dmd-extensions for virtualdmd by means of "Use external DMD (dll)" enabled in VPinMAME. ~~For some reason the virtual DMD looks horrible.~~ It's displayed in double (in both directions) size than configured.

Setup: single 4k monitor, VPinMAME: cabinet mode, VPX: full screen Windows 11, display scaling: 200%

~~Properties for VPinballX.exe: Compatibility : High DPI settings : High DPI scaling override: Scaling performed by application~~

Settings for VPinMAME: "Use external DMD (dll)" enabled

When I set Windows 11, display scaling to 100%, everything looks fine. Is it possible to have dmdext override my default display scaling (200%) ?

~~When I configure FlexDMD to use UltraDMD and running a UltraDMD table everythings works as expected (DMD with squared dots). However when I configure FlexDMD to replace UltraDMD (hence use dmd-extensions virtualDMD with the nice rounded dots) the DMD gets enlarged by 2x (probably due to Windows display scaling setting). When I reduce the DMD size by half the pixels in both directions, the DMD-screen size is restored but then it looks horrible.~~

~~Is there a way to have the virtualdmd override the Windows display scaling settings (following VPinballX.exe properties) as UltraDMD does~~ ?

Thanks a lot,

Maarten

maartenlangeveld avatar Jan 23 '23 13:01 maartenlangeveld

Sorry for the late reply. I'm not 100% sure what the difference between "using" UltraDMD and "replacing" UltraDMD is. Maybe @vbousquet could comment?

Also, I never had any scaling issues with dmdext, and I'm running displays at 200% as well. Can you maybe post screenshots of how your DMD looks vs how it's supposed to look?

freezy avatar Apr 18 '23 08:04 freezy

Forget about FlexDMD, it was my fault to think it has anything to do with it, which in fact is not.

Two screen shots:

  • the first DMD in both screenshots is VPX7's built-in dmd, the second is dmd-extentions virtual dmd;
  • above: VPX7.3 while Windows 11 display scaling is set to 200% in settings;
  • below: VPX7.3 while Windows 11 display scaling is set to 100% in settings.

Would be nice if somehow dmd-ext could be configured to override Windows high DPI scaling.

Screenshot 2023-04-20 191241 Screenshot 2023-04-20 190921

maartenlangeveld avatar Apr 20 '23 17:04 maartenlangeveld

Would be nice if somehow dmd-ext could be configured to override Windows high DPI scaling.

Why, wouldn't it just be easier to configure the size directly? You are not changing Windows' scaling settings regularly, are you?

freezy avatar Apr 21 '23 07:04 freezy

Then I have to configure half the size in both directions, which will be expanded by Windows to final size, resulting in blotchy virtual dmd display.

maartenlangeveld avatar Apr 21 '23 08:04 maartenlangeveld

I don't understand. Can you post a screenshot for what you mean by blotchy? The look fine above?

freezy avatar Apr 21 '23 08:04 freezy

Windows 100% scaling

virtualdmd left = 32 virtualdmd top = 32 virtualdmd width = 1152 virtualdmd height = 288

virtual dmd 1152 x 288 windows scaling100 pct

Windows 200% scaling

virtualdmd left = 16 virtualdmd top = 16 virtualdmd width = 576 virtualdmd height = 144

(exactly same output size on screen: 1152 x 288 due to Windows 11 200% display scaling)

virtual dmd 576 x 144 windows scaling 200 pct

maartenlangeveld avatar Apr 21 '23 09:04 maartenlangeveld

Hmm, weird, I don't think I have that effect with 200% scaling. I'll try to repro later.

freezy avatar Apr 21 '23 12:04 freezy

Ok, let me know. Thanks!

Not a surprise things get blotchy since one loses lots of resolution (1/4 pixels : 1/2 h x 1/2 v).

maartenlangeveld avatar Apr 21 '23 13:04 maartenlangeveld

Is it possible to have dmdextension bypass windows 11 display scaling?

That means pixels are not expanded:

virtualdmd left = x virtualdmd top = y virtualdmd width = w virtualdmd height = h

x,y,w,h are actual pixels and not altered when windows 11 desktop has scaling active?

Now, when for example windows scaling is set to 200%: x --> 2 * x y --> 2 * y w --> 2 * w h --> 2 * h

Which needs to cut all dimensions in half while dmdextensions expands which leads to loss of resolution and blotchy displays.

maartenlangeveld avatar May 20 '23 20:05 maartenlangeveld