From 27aee33cb9ab25186e756934c1da5a3f24220c8a Mon Sep 17 00:00:00 2001 From: Emux Date: Wed, 27 Sep 2017 14:39:01 +0300 Subject: [PATCH] Do not catch graphics exception too early, fix #413 --- .../org/oscim/test/AtlasMarkerLayerTest.java | 73 ++++++++++--------- .../oscim/test/ClusterMarkerLayerTest.java | 65 +++++++++-------- .../src/org/oscim/test/LineRenderTest.java | 11 ++- .../src/org/oscim/test/LineTexTest.java | 9 ++- .../src/org/oscim/test/MarkerLayerTest.java | 55 +++++++------- 5 files changed, 120 insertions(+), 93 deletions(-) diff --git a/vtm-playground/src/org/oscim/test/AtlasMarkerLayerTest.java b/vtm-playground/src/org/oscim/test/AtlasMarkerLayerTest.java index 205faf29..27d06021 100644 --- a/vtm-playground/src/org/oscim/test/AtlasMarkerLayerTest.java +++ b/vtm-playground/src/org/oscim/test/AtlasMarkerLayerTest.java @@ -31,6 +31,7 @@ import org.oscim.theme.VtmThemes; import org.oscim.tiling.source.oscimap4.OSciMap4TileSource; import org.oscim.utils.TextureAtlasUtils; +import java.io.IOException; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; @@ -41,51 +42,55 @@ public class AtlasMarkerLayerTest extends MarkerLayerTest { @Override public void createLayers() { - // Map events receiver - mMap.layers().add(new MapEventsReceiver(mMap)); + try { + // Map events receiver + mMap.layers().add(new MapEventsReceiver(mMap)); - VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource()); - mMap.layers().add(new BuildingLayer(mMap, l)); - mMap.layers().add(new LabelLayer(mMap, l)); - mMap.setTheme(VtmThemes.DEFAULT); + VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource()); + mMap.layers().add(new BuildingLayer(mMap, l)); + mMap.layers().add(new LabelLayer(mMap, l)); + mMap.setTheme(VtmThemes.DEFAULT); - mMap.setMapPosition(0, 0, 1 << 2); + mMap.setMapPosition(0, 0, 1 << 2); - Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png")); - Bitmap bitmapFocus = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_focus.png")); + Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png")); + Bitmap bitmapFocus = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_focus.png")); - // Create Atlas from Bitmaps - java.util.Map inputMap = new LinkedHashMap<>(); - java.util.Map regionsMap = new LinkedHashMap<>(); - List atlasList = new ArrayList<>(); + // Create Atlas from Bitmaps + java.util.Map inputMap = new LinkedHashMap<>(); + java.util.Map regionsMap = new LinkedHashMap<>(); + List atlasList = new ArrayList<>(); - inputMap.put("poi", bitmapPoi); - inputMap.put("focus", bitmapFocus); + inputMap.put("poi", bitmapPoi); + inputMap.put("focus", bitmapFocus); - // Bitmaps will never used any more - // With iOS we must flip the Y-Axis - TextureAtlasUtils.createTextureRegions(inputMap, regionsMap, atlasList, true, false); + // Bitmaps will never used any more + // With iOS we must flip the Y-Axis + TextureAtlasUtils.createTextureRegions(inputMap, regionsMap, atlasList, true, false); - MarkerSymbol symbol; - if (BILLBOARDS) - symbol = new MarkerSymbol(regionsMap.get("poi"), HotspotPlace.BOTTOM_CENTER); - else - symbol = new MarkerSymbol(regionsMap.get("poi"), HotspotPlace.CENTER, false); + MarkerSymbol symbol; + if (BILLBOARDS) + symbol = new MarkerSymbol(regionsMap.get("poi"), HotspotPlace.BOTTOM_CENTER); + else + symbol = new MarkerSymbol(regionsMap.get("poi"), HotspotPlace.CENTER, false); - if (BILLBOARDS) - mFocusMarker = new MarkerSymbol(regionsMap.get("focus"), HotspotPlace.BOTTOM_CENTER); - else - mFocusMarker = new MarkerSymbol(regionsMap.get("focus"), HotspotPlace.CENTER, false); + if (BILLBOARDS) + mFocusMarker = new MarkerSymbol(regionsMap.get("focus"), HotspotPlace.BOTTOM_CENTER); + else + mFocusMarker = new MarkerSymbol(regionsMap.get("focus"), HotspotPlace.CENTER, false); - mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList(), symbol, this); - mMap.layers().add(mMarkerLayer); + mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList(), symbol, this); + mMap.layers().add(mMarkerLayer); - List pts = new ArrayList<>(); - for (double lat = -90; lat <= 90; lat += 5) { - for (double lon = -180; lon <= 180; lon += 5) - pts.add(new MarkerItem(lat + "/" + lon, "", new GeoPoint(lat, lon))); + List pts = new ArrayList<>(); + for (double lat = -90; lat <= 90; lat += 5) { + for (double lon = -180; lon <= 180; lon += 5) + pts.add(new MarkerItem(lat + "/" + lon, "", new GeoPoint(lat, lon))); + } + mMarkerLayer.addItems(pts); + } catch (IOException e) { + e.printStackTrace(); } - mMarkerLayer.addItems(pts); } public static void main(String[] args) { diff --git a/vtm-playground/src/org/oscim/test/ClusterMarkerLayerTest.java b/vtm-playground/src/org/oscim/test/ClusterMarkerLayerTest.java index 6c4991ff..8da8ca06 100644 --- a/vtm-playground/src/org/oscim/test/ClusterMarkerLayerTest.java +++ b/vtm-playground/src/org/oscim/test/ClusterMarkerLayerTest.java @@ -30,6 +30,7 @@ import org.oscim.layers.tile.vector.labeling.LabelLayer; import org.oscim.theme.VtmThemes; import org.oscim.tiling.source.oscimap4.OSciMap4TileSource; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -40,43 +41,47 @@ public class ClusterMarkerLayerTest extends MarkerLayerTest { @Override public void createLayers() { - // Map events receiver - mMap.layers().add(new MapEventsReceiver(mMap)); + try { + // Map events receiver + mMap.layers().add(new MapEventsReceiver(mMap)); - VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource()); - mMap.layers().add(new BuildingLayer(mMap, l)); - mMap.layers().add(new LabelLayer(mMap, l)); - mMap.setTheme(VtmThemes.DEFAULT); + VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource()); + mMap.layers().add(new BuildingLayer(mMap, l)); + mMap.layers().add(new LabelLayer(mMap, l)); + mMap.setTheme(VtmThemes.DEFAULT); - mMap.setMapPosition(53.08, 8.83, 1 << 15); + mMap.setMapPosition(53.08, 8.83, 1 << 15); - Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png")); - MarkerSymbol symbol; - if (BILLBOARDS) - symbol = new MarkerSymbol(bitmapPoi, MarkerSymbol.HotspotPlace.BOTTOM_CENTER); - else - symbol = new MarkerSymbol(bitmapPoi, MarkerSymbol.HotspotPlace.CENTER, false); + Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png")); + MarkerSymbol symbol; + if (BILLBOARDS) + symbol = new MarkerSymbol(bitmapPoi, MarkerSymbol.HotspotPlace.BOTTOM_CENTER); + else + symbol = new MarkerSymbol(bitmapPoi, MarkerSymbol.HotspotPlace.CENTER, false); - mMarkerLayer = new ItemizedLayer<>( - mMap, - new ArrayList(), - ClusterMarkerRenderer.factory(symbol, new ClusterMarkerRenderer.ClusterStyle(Color.WHITE, Color.BLUE)), - this); - mMap.layers().add(mMarkerLayer); + mMarkerLayer = new ItemizedLayer<>( + mMap, + new ArrayList(), + ClusterMarkerRenderer.factory(symbol, new ClusterMarkerRenderer.ClusterStyle(Color.WHITE, Color.BLUE)), + this); + mMap.layers().add(mMarkerLayer); - // Create some markers spaced STEP degrees - List pts = new ArrayList<>(); - GeoPoint center = mMap.getMapPosition().getGeoPoint(); - for (int x = -COUNT; x < COUNT; x++) { - for (int y = -COUNT; y < COUNT; y++) { - double random = STEP * Math.random() * 2; - MarkerItem item = new MarkerItem(y + ", " + x, "", - new GeoPoint(center.getLatitude() + y * STEP + random, center.getLongitude() + x * STEP + random) - ); - pts.add(item); + // Create some markers spaced STEP degrees + List pts = new ArrayList<>(); + GeoPoint center = mMap.getMapPosition().getGeoPoint(); + for (int x = -COUNT; x < COUNT; x++) { + for (int y = -COUNT; y < COUNT; y++) { + double random = STEP * Math.random() * 2; + MarkerItem item = new MarkerItem(y + ", " + x, "", + new GeoPoint(center.getLatitude() + y * STEP + random, center.getLongitude() + x * STEP + random) + ); + pts.add(item); + } } + mMarkerLayer.addItems(pts); + } catch (IOException e) { + e.printStackTrace(); } - mMarkerLayer.addItems(pts); } public static void main(String[] args) { diff --git a/vtm-playground/src/org/oscim/test/LineRenderTest.java b/vtm-playground/src/org/oscim/test/LineRenderTest.java index 8fc980a1..aa990949 100644 --- a/vtm-playground/src/org/oscim/test/LineRenderTest.java +++ b/vtm-playground/src/org/oscim/test/LineRenderTest.java @@ -34,6 +34,8 @@ import org.oscim.renderer.bucket.LineTexBucket; import org.oscim.renderer.bucket.TextureItem; import org.oscim.theme.styles.LineStyle; +import java.io.IOException; + public class LineRenderTest extends GdxMap { GeometryBuffer mGeom = new GeometryBuffer(2, 1); @@ -78,8 +80,13 @@ public class LineRenderTest extends GdxMap { line4 = new LineStyle(0, null, Color.LTGRAY, 2.0f, Cap.ROUND, false, 0, 0, 0, 0, 1f, false, null, true, null, LineStyle.REPEAT_START_DEFAULT, LineStyle.REPEAT_GAP_DEFAULT); } - TextureItem tex = new TextureItem(CanvasAdapter.getBitmapAsset("", "patterns/dot.png")); - tex.mipmap = true; + TextureItem tex = null; + try { + tex = new TextureItem(CanvasAdapter.getBitmapAsset("", "patterns/dot.png")); + tex.mipmap = true; + } catch (IOException e) { + e.printStackTrace(); + } line3 = LineStyle.builder() .stippleColor(Color.CYAN) .stipple(8) diff --git a/vtm-playground/src/org/oscim/test/LineTexTest.java b/vtm-playground/src/org/oscim/test/LineTexTest.java index 239c3820..e32d9b3a 100644 --- a/vtm-playground/src/org/oscim/test/LineTexTest.java +++ b/vtm-playground/src/org/oscim/test/LineTexTest.java @@ -33,6 +33,7 @@ import org.oscim.renderer.bucket.TextureItem; import org.oscim.theme.VtmThemes; import org.oscim.tiling.source.oscimap4.OSciMap4TileSource; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -52,8 +53,12 @@ public class LineTexTest extends GdxMapApp { mMap.setMapPosition(0, 0, 1 << 2); - tex = new TextureItem(CanvasAdapter.getBitmapAsset("", "patterns/pike.png")); - tex.mipmap = true; + try { + tex = new TextureItem(CanvasAdapter.getBitmapAsset("", "patterns/pike.png")); + tex.mipmap = true; + } catch (IOException e) { + e.printStackTrace(); + } createLayers(1, true); diff --git a/vtm-playground/src/org/oscim/test/MarkerLayerTest.java b/vtm-playground/src/org/oscim/test/MarkerLayerTest.java index 422b2485..50eb796c 100644 --- a/vtm-playground/src/org/oscim/test/MarkerLayerTest.java +++ b/vtm-playground/src/org/oscim/test/MarkerLayerTest.java @@ -32,6 +32,7 @@ import org.oscim.map.Map; import org.oscim.theme.VtmThemes; import org.oscim.tiling.source.oscimap4.OSciMap4TileSource; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -45,38 +46,42 @@ public class MarkerLayerTest extends GdxMapApp implements ItemizedLayer.OnItemGe @Override public void createLayers() { - // Map events receiver - mMap.layers().add(new MapEventsReceiver(mMap)); + try { + // Map events receiver + mMap.layers().add(new MapEventsReceiver(mMap)); - VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource()); - mMap.layers().add(new BuildingLayer(mMap, l)); - mMap.layers().add(new LabelLayer(mMap, l)); - mMap.setTheme(VtmThemes.DEFAULT); + VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource()); + mMap.layers().add(new BuildingLayer(mMap, l)); + mMap.layers().add(new LabelLayer(mMap, l)); + mMap.setTheme(VtmThemes.DEFAULT); - mMap.setMapPosition(0, 0, 1 << 2); + mMap.setMapPosition(0, 0, 1 << 2); - Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png")); - MarkerSymbol symbol; - if (BILLBOARDS) - symbol = new MarkerSymbol(bitmapPoi, HotspotPlace.BOTTOM_CENTER); - else - symbol = new MarkerSymbol(bitmapPoi, HotspotPlace.CENTER, false); + Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png")); + MarkerSymbol symbol; + if (BILLBOARDS) + symbol = new MarkerSymbol(bitmapPoi, HotspotPlace.BOTTOM_CENTER); + else + symbol = new MarkerSymbol(bitmapPoi, HotspotPlace.CENTER, false); - Bitmap bitmapFocus = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_focus.png")); - if (BILLBOARDS) - mFocusMarker = new MarkerSymbol(bitmapFocus, HotspotPlace.BOTTOM_CENTER); - else - mFocusMarker = new MarkerSymbol(bitmapFocus, HotspotPlace.CENTER, false); + Bitmap bitmapFocus = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_focus.png")); + if (BILLBOARDS) + mFocusMarker = new MarkerSymbol(bitmapFocus, HotspotPlace.BOTTOM_CENTER); + else + mFocusMarker = new MarkerSymbol(bitmapFocus, HotspotPlace.CENTER, false); - mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList(), symbol, this); - mMap.layers().add(mMarkerLayer); + mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList(), symbol, this); + mMap.layers().add(mMarkerLayer); - List pts = new ArrayList<>(); - for (double lat = -90; lat <= 90; lat += 5) { - for (double lon = -180; lon <= 180; lon += 5) - pts.add(new MarkerItem(lat + "/" + lon, "", new GeoPoint(lat, lon))); + List pts = new ArrayList<>(); + for (double lat = -90; lat <= 90; lat += 5) { + for (double lon = -180; lon <= 180; lon += 5) + pts.add(new MarkerItem(lat + "/" + lon, "", new GeoPoint(lat, lon))); + } + mMarkerLayer.addItems(pts); + } catch (IOException e) { + e.printStackTrace(); } - mMarkerLayer.addItems(pts); } @Override