-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Problem Description
Fullscreen application on second screen with different scaling using direct
renderMode displayed with distortion for Windows.
Sometimes after manual window moving between different screens and re-switching fullscreen it could start to work normally. But it completely unusable.
Tested with multiple AIR versions, even with latest AIR 51.2.2.5 with multiple different Windows devices, with different applications.
The same issue in all cases.
There is no such issue using auto
renderMode.
Related issues:
#3920
#3872
#3823
#3672
#3241
#1669
#1123
#1425
#528
https://tracker.adobe.com/#/view/AIR-3737959
#1699 (reply in thread)
#3672
#3177
Steps to Reproduce
- You need to have Windows device with 2 screens with different scaling.
For screen 1 (main) set up 125% or 200% scaling. For screen 2 set up 100% scaling. - Launch application with code below.
*Note: change setting 1920x1080 width/height of bitmap if you have different resolution for second screen.
It should move application window to second screen and make it fullscreen.
Application example with sources attached.
windows_second_fullscreen_distortion_bug.zip
package {
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.events.Event;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.NativeWindow;
import flash.display.Screen;
import flash.display.StageDisplayState;
public class WindowsSecondFullscreenDistortionBug extends Sprite {
[Embed(source = "test.png")]
private const EmbeddedImage:Class;//Embed image just for simplicity
public function WindowsSecondFullscreenDistortionBug() {
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
private function addedToStage(e:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
var bitmap:Bitmap = new EmbeddedImage();
//Maybe you need to change it for your screen resolution
bitmap.width = 1920;
bitmap.height = 1080;
addChild(bitmap);
var window:NativeWindow = stage.nativeWindow;
const screens:Array = Screen.screens;
if (screens.length > 1){
window.resizeToScreen(screens[1]);//Move to second screen
window.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;//Make it fullscreen
}
}
}
}
Actual Result:
All content of application will be distorted. Scaled a little by vertical. And bottom part of stage will be hidden out of window:
Expected Result:
All content of application displayed without distortion:
Known Workarounds
none