flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Moore (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLEX-34653) Overriding RuntimeDPIProvider causes incorrect application scalling
Date Thu, 04 Dec 2014 16:56:13 GMT

    [ https://issues.apache.org/jira/browse/FLEX-34653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14234356#comment-14234356
] 

Jason Moore commented on FLEX-34653:
------------------------------------

I'm getting 120 DPI on a Old Mac 24" screen, PC 21" screen , Laptop 15" screen and windows
Surface 13" ? all various resolutons ... I'm sure they can't all be 120 DPI.

If you don't set the applicationDPI then autoscaling is disabled. You then have to manually
define scaling behaviour which includes using the MultiDPIBitmapsource to manually provide
different bitmap assets for different DPIs.

If you define the applicationDPI then flex should do the scalling for you... so a 12 point
text font defined for a 160 DPI application will be scaled to 18 points on a 240 DPI device
automatically so they physically appear the same size if you put the devices side by side.


I've done some more testing and found that the automatic scaling for desktop just does not
work ( mobiles seem fine ). 

Forget overriding the runtimeDPIProvider ( I may need to edit the title of this issue )...
if you simply set the applicationDPI for a desktop application to anything other than 120
DPI the content is incorrectly scaled. See screenshot.

Am I really the only one who is experiancing this error ?



> Overriding RuntimeDPIProvider causes incorrect application scalling
> -------------------------------------------------------------------
>
>                 Key: FLEX-34653
>                 URL: https://issues.apache.org/jira/browse/FLEX-34653
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Layout - General, Skinning
>    Affects Versions: Apache Flex 4.13.0
>         Environment: Windows ( Possible Mac - Not checked ).
>            Reporter: Jason Moore
>              Labels: DPI, Scaling, automatic
>         Attachments: screenshot.png
>
>
> The issue occurs when using automatic scaling and setting the application DPI and overriding
the runtimeDPIProvider to set the runtimeDPI where it is incorrectly returned from the OS
( On desktop devices for instance ).
> If the two values match ie 1:1 scaling, there is no issue. But if they differ then the
application content is scalled correctly , but the stage size is also scaled, incorrect. This
leads to the application being clipped when scaling up and excess space when scaling down..
See code excepts to recreate...
> {code:title=ScaleIssue.mxml|borderStyle=solid}
> <?xml version="1.0" encoding="utf-8"?>
> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
> 					   xmlns:s="library://ns.adobe.com/flex/spark" 
> 					   xmlns:mx="library://ns.adobe.com/flex/mx"
> 					   applicationDPI="160"
> 					   runtimeDPIProvider="myRuntimeDPIProvider">
> 	
> 		<s:Label id="LeftMarker" left="0" verticalCenter="0" text="&lt;--- LEFT" fontSize="24"/>
> 		<s:Label id="MiddleMarker" horizontalCenter="0" verticalCenter="0" text="&gt;
&gt; &gt; MIDDLE &lt; &lt; &lt;" fontSize="24"/>
> 		<s:Label id="RightMarker" right="0" verticalCenter="0" text="RIGHT ---&gt;"
fontSize="24"/>
> 							 
> </s:WindowedApplication>
> {code}
> {code:title=myRuntimeDPIProvider.as|borderStyle=solid}
> package 
> {
> 	
> 	import mx.core.DPIClassification;
> 	import mx.core.RuntimeDPIProvider;
> 	
> 	public class myRuntimeDPIProvider extends RuntimeDPIProvider
> 	{
> 				
> 		/**
> 		 * Overrride getter function so we can set the dpi manually when running on desktop
device
> 		 * This would normally be a bit more sophisticated... 
> 		 * 
> 		 * @return 
> 		 * 
> 		 */		
> 		override public function get runtimeDPI():Number
> 		{			
> 			return DPIClassification.DPI_240;
> 		}
> 		
> 	}
> }
> {code}
> You should see the text labels pointing to the left and right screen edges.. but instead
the right hand label is off screen.
> Hope that makes sense.
> J :)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message