skin: do not use SWT.EMBEDDED style for display canvas with shm
authorgiwoong.kim <giwoong.kim@samsung.com>
Wed, 23 Jan 2013 08:50:11 +0000 (17:50 +0900)
committergiwoong.kim <giwoong.kim@samsung.com>
Wed, 23 Jan 2013 08:59:38 +0000 (17:59 +0900)
do not use SWT.EMBEDDED style for display canvas
with shared framebuffer design of skin.

Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/skin/client/native_src/make_so_linux.sh
tizen/src/skin/client/native_src/make_so_mac.sh
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSdlSkin.java
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorShmSkin.java
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkinMain.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ISkinComposer.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/PhoneShapeSkinComposer.java

index a8b6967..aaa2603 100755 (executable)
@@ -1,7 +1,9 @@
 #!/bin/bash
-javah -classpath ../bin/:../lib/swt.jar -jni org.tizen.emulator.skin.EmulatorSkin
-rm ./org_tizen_emulator_skin_EmulatorSkin_PollFBThread.h
-rm ./org_tizen_emulator_skin_EmulatorSkin_SkinReopenPolicy.h
+
+#Example
+
+javah -classpath ../bin/:../lib/swt.jar -jni org.tizen.emulator.skin.EmulatorShmSkin
+rm ./org_tizen_emulator_skin_EmulatorShmSkin_PollFBThread.h
 #TODO: jdk path
 gcc -c share.c -o share.o -I /usr/lib/jvm/jdk1.7.0_04/include -I /usr/lib/jvm/jdk1.7.0_04/include/linux
 gcc -shared share.o -o libshared.so -fPIC
index 22469cb..d7262f6 100755 (executable)
@@ -1,7 +1,9 @@
 #!/bin/bash
-javah -classpath ../emulator-skin.jar:../lib/swt.jar -jni org.tizen.emulator.skin.EmulatorSkin
-rm ./org_tizen_emulator_skin_EmulatorSkin_PollFBThread.h
-rm ./org_tizen_emulator_skin_EmulatorSkin_SkinReopenPolicy.h
+
+#Example
+
+javah -classpath ../emulator-skin.jar:../lib/swt.jar -jni org.tizen.emulator.skin.EmulatorShmSkin
+rm ./org_tizen_emulator_skin_EmulatorShmSkin_PollFBThread.h
 #TODO: jdk path
 gcc -c share.c -o share.o -I/System/Library/Frameworks/JavaVM.framework/Headers
 gcc -dynamiclib share.o -o libshared.dylib
index 5dac195..b1c76c9 100644 (file)
@@ -51,7 +51,7 @@ public class EmulatorSdlSkin extends EmulatorSkin {
         */
        public EmulatorSdlSkin(EmulatorSkinState state, EmulatorFingers finger,
                        EmulatorConfig config, SkinInformation skinInfo, boolean isOnTop) {
-               super(state, finger, config, skinInfo, isOnTop);
+               super(state, finger, config, skinInfo, SWT.EMBEDDED, isOnTop);
        }
 
        public long initLayout() {
index a1dec15..c2ee193 100644 (file)
@@ -139,7 +139,7 @@ public class EmulatorShmSkin extends EmulatorSkin {
         */
        public EmulatorShmSkin(EmulatorSkinState state, EmulatorFingers finger,
                        EmulatorConfig config, SkinInformation skinInfo, boolean isOnTop) {
-               super(state, finger, config, skinInfo, isOnTop);
+               super(state, finger, config, skinInfo, SWT.NONE, isOnTop);
                this.paletteData = new PaletteData(RED_MASK, GREEN_MASK, BLUE_MASK);
        }
 
index 29d5971..0cd3002 100644 (file)
@@ -130,6 +130,7 @@ public class EmulatorSkin {
        protected Shell shell;
        protected ImageRegistry imageRegistry;
        protected Canvas lcdCanvas;
+       private int displayCanvasStyle;
        protected SkinInformation skinInfo;
        protected ISkinComposer skinComposer;
 
@@ -178,7 +179,8 @@ public class EmulatorSkin {
         * @param isOnTop : always on top flag
        */
        protected EmulatorSkin(EmulatorSkinState state, EmulatorFingers finger,
-                       EmulatorConfig config, SkinInformation skinInfo, boolean isOnTop) {
+                       EmulatorConfig config, SkinInformation skinInfo,
+                       int displayCanvasStyle, boolean isOnTop) {
                this.finger = finger;
                this.config = config;
                this.skinInfo = skinInfo;
@@ -200,6 +202,8 @@ public class EmulatorSkin {
                        SkinUtil.setTopMost(shell, true);
                }
 
+               this.displayCanvasStyle = displayCanvasStyle;
+
                /* generate a pair tag color of key window */
                int red = (int) (Math.random() * 256);
                int green = (int) (Math.random() * 256);
@@ -229,7 +233,7 @@ public class EmulatorSkin {
                        ((GeneralPurposeSkinComposer) skinComposer).addGeneralPurposeListener(shell);
                }
 
-               lcdCanvas = skinComposer.compose();
+               lcdCanvas = skinComposer.compose(displayCanvasStyle);
 
                /* load a hover color */
                currentState.setHoverColor(loadHoverColor());
index 315c514..d8e8d7e 100644 (file)
@@ -69,12 +69,19 @@ public class EmulatorSkinMain {
        public static final String SKIN_PROPERTIES_FILE_NAME = ".skin.properties";
        public static final String CONFIG_PROPERTIES_FILE_NAME = ".skinconfig.properties";
        public static final String DBI_FILE_NAME = "default.dbi";
-       EmulatorSkinState currentState;
+
        private static Logger logger;
 
+       public EmulatorSkinState currentState;
+       private static int useSharedMemory = 0;
+
        static {
+               if (SwtUtil.isMacPlatform() == true) {
+                       useSharedMemory = 1;
+               }
+
                /* shared memory */
-               if (SwtUtil.isMacPlatform()) {
+               if (useSharedMemory == 1) {
                    System.loadLibrary("shared");
                }
         }
@@ -222,7 +229,8 @@ public class EmulatorSkinMain {
                        EmulatorSkinState currentState = new EmulatorSkinState();
                        currentState.setMaxTouchPoint(maxtouchpoint);
                        EmulatorFingers finger = new EmulatorFingers(currentState);
-                       if (SwtUtil.isMacPlatform()) {
+
+                       if (useSharedMemory == 1) {
                                skin = new EmulatorShmSkin(currentState, finger, config, skinInfo, isOnTop);
                        } else { // linux & windows
                                skin = new EmulatorSdlSkin(currentState, finger, config, skinInfo, isOnTop);
index e663fe9..c3accab 100644 (file)
@@ -108,8 +108,8 @@ public class GeneralPurposeSkinComposer implements ISkinComposer {
        }
 
        @Override
-       public Canvas compose() {
-               displayCanvas = new Canvas(shell, SWT.EMBEDDED); //TODO:
+       public Canvas compose(int style) {
+               displayCanvas = new Canvas(shell, style);
 
                int x = config.getSkinPropertyInt(SkinPropertiesConstants.WINDOW_X,
                                EmulatorConfig.DEFAULT_WINDOW_X);
index 402a323..34aee84 100644 (file)
@@ -32,7 +32,7 @@ import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.widgets.Canvas;
 
 public interface ISkinComposer {
-       public abstract Canvas compose();
+       public abstract Canvas compose(int style);
 
        public abstract void composeInternal(Canvas lcdCanvas,
                        int x, int y, int scale, short rotationId);
index 904035e..64d3e96 100644 (file)
@@ -102,8 +102,8 @@ public class PhoneShapeSkinComposer implements ISkinComposer {
        }
 
        @Override
-       public Canvas compose() {
-               lcdCanvas = new Canvas(shell, SWT.EMBEDDED); //TODO:
+       public Canvas compose(int style) {
+               lcdCanvas = new Canvas(shell, style);
 
                int x = config.getSkinPropertyInt(SkinPropertiesConstants.WINDOW_X,
                                EmulatorConfig.DEFAULT_WINDOW_X);