From 980e9d5e54d99e2518f526d61659a7b8488c6998 Mon Sep 17 00:00:00 2001 From: Longri Date: Fri, 27 Jan 2017 14:35:36 +0100 Subject: [PATCH] Add platform identification (#286) --- .../oscim/android/canvas/AndroidGraphics.java | 3 ++ .../src/org/oscim/awt/AwtGraphics.java | 8 ++++ .../org/oscim/ios/backend/IosGraphics.java | 3 ++ .../org/oscim/gdx/client/GwtGdxGraphics.java | 3 ++ vtm/src/org/oscim/backend/CanvasAdapter.java | 6 +++ vtm/src/org/oscim/backend/GLAdapter.java | 1 + vtm/src/org/oscim/backend/Platform.java | 46 +++++++++++++++++++ 7 files changed, 70 insertions(+) create mode 100644 vtm/src/org/oscim/backend/Platform.java diff --git a/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java b/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java index 5cc117ed..54c0ad25 100644 --- a/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java +++ b/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java @@ -1,6 +1,7 @@ /* * Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2016 devemux86 + * Copyright 2017 Longri * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -23,6 +24,7 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import org.oscim.backend.CanvasAdapter; +import org.oscim.backend.Platform; import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Canvas; import org.oscim.backend.canvas.Paint; @@ -36,6 +38,7 @@ public final class AndroidGraphics extends CanvasAdapter { public static void init() { CanvasAdapter.init(new AndroidGraphics()); + CanvasAdapter.platform = Platform.ANDROID; } public static android.graphics.Paint getAndroidPaint(Paint paint) { diff --git a/vtm-desktop/src/org/oscim/awt/AwtGraphics.java b/vtm-desktop/src/org/oscim/awt/AwtGraphics.java index 1c0c3e1c..e1276dc1 100644 --- a/vtm-desktop/src/org/oscim/awt/AwtGraphics.java +++ b/vtm-desktop/src/org/oscim/awt/AwtGraphics.java @@ -1,6 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 Longri * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -18,6 +19,7 @@ package org.oscim.awt; import org.oscim.backend.CanvasAdapter; +import org.oscim.backend.Platform; import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Canvas; import org.oscim.backend.canvas.Paint; @@ -34,6 +36,12 @@ public class AwtGraphics extends CanvasAdapter { public static void init() { CanvasAdapter.init(new AwtGraphics()); + + String os = System.getProperty("os.name").toLowerCase(); + + if(os.contains("win")) CanvasAdapter.platform = Platform.WINDOWS; + else if(os.contains("mac")) CanvasAdapter.platform = Platform.MAC_OS; + else CanvasAdapter.platform = Platform.LINUX; } public static BufferedImage getBitmap(Bitmap bitmap) { diff --git a/vtm-ios/src/org/oscim/ios/backend/IosGraphics.java b/vtm-ios/src/org/oscim/ios/backend/IosGraphics.java index 3afaafc6..33de99d5 100644 --- a/vtm-ios/src/org/oscim/ios/backend/IosGraphics.java +++ b/vtm-ios/src/org/oscim/ios/backend/IosGraphics.java @@ -1,6 +1,7 @@ /* * Copyright 2016 Longri * Copyright 2016 devemux86 + * Copyright 2017 Longri * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -16,6 +17,7 @@ package org.oscim.ios.backend; import org.oscim.backend.CanvasAdapter; +import org.oscim.backend.Platform; import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Canvas; import org.oscim.backend.canvas.Paint; @@ -34,6 +36,7 @@ public class IosGraphics extends CanvasAdapter { public static void init() { CanvasAdapter.init(new IosGraphics()); + CanvasAdapter.platform = Platform.IOS; } @Override diff --git a/vtm-web/src/org/oscim/gdx/client/GwtGdxGraphics.java b/vtm-web/src/org/oscim/gdx/client/GwtGdxGraphics.java index d62d0534..65c69ba9 100644 --- a/vtm-web/src/org/oscim/gdx/client/GwtGdxGraphics.java +++ b/vtm-web/src/org/oscim/gdx/client/GwtGdxGraphics.java @@ -1,6 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 Longri * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -22,6 +23,7 @@ import com.google.gwt.canvas.dom.client.Context2d; import com.google.gwt.canvas.dom.client.TextMetrics; import org.oscim.backend.CanvasAdapter; +import org.oscim.backend.Platform; import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Paint; @@ -82,5 +84,6 @@ public class GwtGdxGraphics extends CanvasAdapter { public static void init() { CanvasAdapter.init(new GwtGdxGraphics()); + CanvasAdapter.platform = Platform.WEB; } } diff --git a/vtm/src/org/oscim/backend/CanvasAdapter.java b/vtm/src/org/oscim/backend/CanvasAdapter.java index 30eae5b2..e19e6f84 100644 --- a/vtm/src/org/oscim/backend/CanvasAdapter.java +++ b/vtm/src/org/oscim/backend/CanvasAdapter.java @@ -1,6 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2017 Longri * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -53,6 +54,11 @@ public abstract class CanvasAdapter { */ public static float dpi = DEFAULT_DPI; + /** + * The used platform. + */ + public static Platform platform = Platform.UNKNOWN; + /** * The scale. */ diff --git a/vtm/src/org/oscim/backend/GLAdapter.java b/vtm/src/org/oscim/backend/GLAdapter.java index c2bdcd47..72312003 100644 --- a/vtm/src/org/oscim/backend/GLAdapter.java +++ b/vtm/src/org/oscim/backend/GLAdapter.java @@ -43,5 +43,6 @@ public class GLAdapter { public static void init(GL gl20) { gl = gl20; + GDX_DESKTOP_QUIRKS = CanvasAdapter.platform.GDX_DESKTOP_QUIRKS; } } diff --git a/vtm/src/org/oscim/backend/Platform.java b/vtm/src/org/oscim/backend/Platform.java new file mode 100644 index 00000000..b9163c0f --- /dev/null +++ b/vtm/src/org/oscim/backend/Platform.java @@ -0,0 +1,46 @@ +/* + * Copyright 2017 Longri + * + * This program is free software: you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along with + * this program. If not, see . + */ +package org.oscim.backend; + + +public enum Platform { + ANDROID(false, false), + IOS(true, false), + MAC_OS(true, true), + LINUX(false, true), + WINDOWS(false, true), + WEB(false, false), + UNKNOWN(false, false); + + + Platform(boolean buildingLayerTranslucent, boolean desktopQuirks) { + this.BUILDING_LAYER_TRANSLUCENT = buildingLayerTranslucent; + this.GDX_DESKTOP_QUIRKS = desktopQuirks; + } + + + public boolean BUILDING_LAYER_TRANSLUCENT; + + public boolean GDX_DESKTOP_QUIRKS; + + /** + * Returns true when This is WINDOWS, LINUX or MAC_OS other, false + * + * @return boolean + */ + public boolean isAnyDesktop() { + return this == LINUX || this == WINDOWS || this == MAC_OS; + } +}