Hi Tobias,

On Thu, Mar 31, 2016 at 12:01 AM, Tobias Pape <Das.Linux@gmx.de> wrote:

Hi Eliot,

On 31.03.2016, at 06:53, Eliot Miranda <eliot.miranda@gmail.com> wrote:

>
> Hi Tobias,
>
>    card to say more about this?  I had explicit requests to add this with the given settings and have heard of no complaints yet.  But you disable it below.  Are you sure you're doing the right thing?

The effect of <dpiAware>true</dpiAware> is that Windows expects the application to
handle the actual dpi of the screen the application is currently on.

On typical displays, there's no change, but hi-dpi displays (like a MS Surface, or Retina Macs)
have a higher DPI and Windows in this case does not do anything special.
In effect, the picture is just tiny, fonts near unreadable.

While some people (also people I know) prefer this tinyness, it is actually startling for
new users and "the average" user.

If <dpiAware>false</dpiAware> is set, Windows handles the screen DPI and upscales
the backing store so that everything looks similarly big on screens of different DPI.
This is (imho) the expected behavior.

People preferring the hidpi variant easily can set the dpiAware entry (thats, eg, what
Marcel does for his projects sometimes). The other way round, expecting average/new
users to _disable_ that is probably a bad idea.

Hence the change.

Once we have
        - VMs actually reacting to Screen-DPI-changes and
        - Emitting DPI-changed-Events to the Image and
        - The image actually does something useful with this event
I'll happily change that back. But that time has not come yet.

Best regards
        -Tobias

OK, but the README (generated by scripts/uploadvms) states

"     Windows
     The Windows VMs are "dpiAware", which means that by default the display is
     not scaled and display pixels are mapped 1 to 1 to the screen.  If this
     behaviour is not desired you can enable scaling by either editing the
     relevant manifest file (e.g.  Squeak.exe.manifest), changing the "true" in
     <dpiAware>true</dpiAware> to "false", or simply deleting the manifest file. "

So I'll change this.  (But under protest; it strikes me that it's much easier to delete a file than edit it, so those wanting non-dpiAware Windows VMs have a simple option, whereas those wanting it have to edit the damn file).

In any case, some enterprising soul could add code to the image that would change the setting and relaunch; that would be very nice.  In fact, why not do this, and revert the dpiAware setting?  The Windows VM has been this way for some time, and it's perhaps better to fix the issue flexibly (by providing an in-image menu pick that will try to edit the VM's manifest file).

PS: I also want DPI-awareness for the Mac VM, btw.

(IANOERAGE)  What does this mean?  A simple approach might for the VM to do scaling by integer factors, avoiding fuzziness but yielding chunky pixels.  A better approach is simply to have the image choose larger fonts and larger window sizes in proportion to some "reference" window size such as 1600x1080 or 640x480 (how quaint).  What I expect it /not/ to mean for a while, is replacing the graphics model with a vector graphics one.  Pharo is doing this and we can steal the work when we have energy (and black masks).

What does this cost?  Ho much VM work is there in Linux, Windows and Mac VMs to provide a "useful" form of being dpi-aware?

(IANOGE = I am not even remotely a graphics expert = those of you with a clue, please weigh in and make some decisions, help with crafting a graphics trajectory)


>
> _,,,^..^,,,_ (phone)
>
>> On Mar 30, 2016, at 12:32 AM, commits@squeakvm.org wrote:
>>
>>
>> Revision: 3665
>> Author:   topa
>> Date:     2016-03-30 00:32:09 -0700 (Wed, 30 Mar 2016)
>> Log Message:
>> -----------
>> Squeak is actually not DPI aware (yet?).
>>
>> Modified Paths:
>> --------------
>>   branches/Cog/build.win32x86/newspeak.cog.spur/nsvm.exe.manifest
>>   branches/Cog/build.win32x86/newspeak.stack.spur/nsvm.exe.manifest
>>   branches/Cog/build.win32x86/squeak.cog.spur/Croquet.exe.manifest
>>   branches/Cog/build.win32x86/squeak.cog.spur/Squeak.exe.manifest
>>   branches/Cog/build.win32x86/squeak.cog.v3/Croquet.exe.manifest
>>   branches/Cog/build.win32x86/squeak.cog.v3/Squeak.exe.manifest
>>   branches/Cog/build.win32x86/squeak.stack.spur/Croquet.exe.manifest
>>   branches/Cog/build.win32x86/squeak.stack.spur/Squeak.exe.manifest
>>   branches/Cog/build.win32x86/squeak.stack.v3/Croquet.exe.manifest
>>   branches/Cog/build.win32x86/squeak.stack.v3/Squeak.exe.manifest
>>
>> Modified: branches/Cog/build.win32x86/newspeak.cog.spur/nsvm.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/newspeak.cog.spur/nsvm.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/newspeak.cog.spur/nsvm.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Newspeak Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/newspeak.stack.spur/nsvm.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/newspeak.stack.spur/nsvm.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/newspeak.stack.spur/nsvm.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Newspeak Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/squeak.cog.spur/Croquet.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/squeak.cog.spur/Croquet.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/squeak.cog.spur/Croquet.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Croquet Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/squeak.cog.spur/Squeak.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/squeak.cog.spur/Squeak.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/squeak.cog.spur/Squeak.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Squeak Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/squeak.cog.v3/Croquet.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/squeak.cog.v3/Croquet.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/squeak.cog.v3/Croquet.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Croquet Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/squeak.cog.v3/Squeak.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/squeak.cog.v3/Squeak.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/squeak.cog.v3/Squeak.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Squeak Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/squeak.stack.spur/Croquet.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/squeak.stack.spur/Croquet.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/squeak.stack.spur/Croquet.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Croquet Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/squeak.stack.spur/Squeak.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/squeak.stack.spur/Squeak.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/squeak.stack.spur/Squeak.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Squeak Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/squeak.stack.v3/Croquet.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/squeak.stack.v3/Croquet.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/squeak.stack.v3/Croquet.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Croquet Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>
>> Modified: branches/Cog/build.win32x86/squeak.stack.v3/Squeak.exe.manifest
>> ===================================================================
>> --- branches/Cog/build.win32x86/squeak.stack.v3/Squeak.exe.manifest    2016-03-29 20:18:32 UTC (rev 3664)
>> +++ branches/Cog/build.win32x86/squeak.stack.v3/Squeak.exe.manifest    2016-03-30 07:32:09 UTC (rev 3665)
>> @@ -12,7 +12,7 @@
>> <description>Squeak Smalltalk Virtual Machine</description>
>> <asmv3:application>
>>   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
>> -        <dpiAware>true</dpiAware>
>> +        <dpiAware>false</dpiAware>
>>   </asmv3:windowsSettings>
>> </asmv3:application>
>> <dependency>
>>




--
_,,,^..^,,,_
best, Eliot