From: GiWoong Kim Date: Mon, 1 Jun 2015 12:34:00 +0000 (+0900) Subject: rotary: remove some delays when rotating X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~78 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e0648f60fe1e9f5e66d2319ad2901375f8d427e6;p=sdk%2Femulator%2Fqemu.git rotary: remove some delays when rotating Change-Id: I420f20c280e015ca32f45ec966474f38dc98d00d Signed-off-by: GiWoong Kim --- diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java index 67578d9533..566329925e 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java @@ -199,7 +199,7 @@ public class GeneralPurposeSkinComposer implements ISkinComposer { } @Override - public void arrangeSkin(int scale, short rotationId) { + public void arrangeSkin(final int scale, final short rotationId) { //TODO: eject the calculation from UI thread /* calculate display bounds */ diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ISkinComposer.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ISkinComposer.java index e12684372d..8b1dade5a9 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ISkinComposer.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ISkinComposer.java @@ -38,7 +38,7 @@ public interface ISkinComposer { public abstract void composeInternal(DisplayCanvas DisplayCanvas, int x, int y, int scale, short rotationId); - public abstract void arrangeSkin(int scale, short rotationId); + public abstract void arrangeSkin(final int scale, final short rotationId); public abstract void updateSkin(); public abstract Rectangle adjustDisplayGeometry( diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileRotarySkinComposer.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileRotarySkinComposer.java index 226d1ee9f1..76f4c4afe7 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileRotarySkinComposer.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileRotarySkinComposer.java @@ -54,23 +54,23 @@ public class ProfileRotarySkinComposer extends ProfileSpecificSkinComposer { } @Override - public void arrangeSkin(int scale, short rotationId) { + public void arrangeSkin(final int scale, final short rotationId) { super.arrangeSkin(scale, rotationId); - rotary.arrange(scale, rotationId); - shell.getDisplay().syncExec(new Runnable() { @Override public void run() { logger.info("arrange a rotary"); - Image rotaryImage = rotary.getImage(); + rotary.arrange(scale, rotationId); + + final Image rotaryImage = rotary.getImage(); if (rotaryImage != null) { final int rotaryW = rotaryImage.getImageData().width; final int rotaryH = rotaryImage.getImageData().height; /* calculate rotary bounds */ - Rectangle displayBounds = currentState.getDisplayBounds(); + final Rectangle displayBounds = currentState.getDisplayBounds(); final int offsetX = (rotaryW - displayBounds.width) / 2; final int offsetY = (rotaryH - displayBounds.height) / 2; rotary.setBounds( @@ -82,7 +82,6 @@ public class ProfileRotarySkinComposer extends ProfileSpecificSkinComposer { Region displayRegion = displayCanvas.getRegion(); displayRegion.translate(offsetX, offsetY); rotaryRegion.subtract(displayRegion); - displayRegion.translate(-offsetX, -offsetY); rotary.setRegion(rotaryRegion); } else { diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java index 9f8b78f405..d9b49c755c 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java @@ -179,7 +179,7 @@ public class ProfileSpecificSkinComposer implements ISkinComposer { } @Override - public void arrangeSkin(int scale, short rotationId) { + public void arrangeSkin(final int scale, final short rotationId) { //TODO: eject the calculation from UI thread /* calculate display bounds */ diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/Rotary.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/Rotary.java index e57766df6a..47363e344d 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/Rotary.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/Rotary.java @@ -92,24 +92,19 @@ public class Rotary extends Canvas { public void arrange(final int scale, final short rotationId) { logger.info("scale : " + scale + ", rotate : " + rotationId); - parent.getDisplay().syncExec(new Runnable() { - @Override - public void run() { - if (image != null) { - image.dispose(); - image = null; - } - - Image imageRotary = imageRegistry.getSkinImage( - rotationId, SkinImageType.DISPLAY_ROTARY_IMAGE); - if (imageRotary != null) { - image = SkinUtil.createScaledImage( - parent.getDisplay(), imageRotary, rotationId, scale); - } - - redraw(); - } - }); + if (image != null) { + image.dispose(); + image = null; + } + + final Image imageRotary = imageRegistry.getSkinImage( + rotationId, SkinImageType.DISPLAY_ROTARY_IMAGE); + if (imageRotary != null) { + image = SkinUtil.createScaledImage( + parent.getDisplay(), imageRotary, rotationId, scale); + } + + redraw(); } private void addListeners() { diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java index 8b05b6c642..99f2e120bd 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java @@ -297,8 +297,8 @@ public class SkinUtil { } ImageData imageData = image.getImageData(); - int width = imageData.width; - int height = imageData.height; + final int width = imageData.width; + final int height = imageData.height; Region region = new Region(); region.add(new Rectangle(0, 0, width, height)); @@ -323,8 +323,8 @@ public class SkinUtil { } ImageData imageData = image.getImageData(); - int right = left + width; - int bottom = top + height; + final int right = left + width; + final int bottom = top + height; Region region = shell.getRegion(); if (region == null) { @@ -376,13 +376,13 @@ public class SkinUtil { return null; } - ImageData imageDataSrc = imageOrigin.getImageData(); + final ImageData imageDataSrc = imageOrigin.getImageData(); ImageData imageDataDst = (ImageData) imageDataSrc.clone(); float convertedScale = convertScale(scale); - int width = (int) (imageDataSrc.width * convertedScale); - int height = (int) (imageDataSrc.height * convertedScale); + final int width = (int) (imageDataSrc.width * convertedScale); + final int height = (int) (imageDataSrc.height * convertedScale); imageDataDst = imageDataDst.scaledTo(width, height); return new Image(display, imageDataDst);