From f6d85ce8bd4187647272c3f79a53660315654eb6 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Thu, 4 Sep 2014 20:14:57 +0200 Subject: [PATCH] refactor: rename render 'layers' to 'buckets' - the name I was looking for for a long time :) also less confusion with map layers - move renderer.elements -> renderer.bucket - rename RenderBuckets functions - rename BucketRenderer.layers -> buckets --- vtm-desktop/src/org/oscim/awt/AwtBitmap.java | 12 +- .../src/org/oscim/layers/JeoVectorLayer.java | 10 +- vtm-jeo/src/org/oscim/layers/JtsLayer.java | 8 +- .../src/org/oscim/layers/OSMIndoorLayer.java | 20 +- .../src/org/oscim/test/HairLineTest.java | 18 +- .../src/org/oscim/test/LineRenderTest.java | 26 +- .../src/org/oscim/test/LineTest.java | 12 +- .../src/org/oscim/test/SpriteManager.java | 4 +- .../org/oscim/test/gdx/poi3d/Poi3DLayer.java | 6 +- .../org/oscim/test/renderer/AtlasTest.java | 20 +- .../org/oscim/test/renderer/BezierTest.java | 12 +- .../test/renderer/HexagonRenderTest.java | 4 +- .../test/renderer/SymbolRenderLayer.java | 12 +- .../gdx/emu/org/oscim/utils/Tessellator.java | 2 +- vtm/src/org/oscim/layers/PathLayer.java | 24 +- .../oscim/layers/marker/MarkerRenderer.java | 22 +- vtm/src/org/oscim/layers/tile/MapTile.java | 8 +- .../org/oscim/layers/tile/TileRenderer.java | 4 +- .../oscim/layers/tile/VectorTileRenderer.java | 96 +++---- .../layers/tile/bitmap/BitmapTileLayer.java | 2 +- .../layers/tile/bitmap/BitmapTileLoader.java | 10 +- .../layers/tile/buildings/BuildingLayer.java | 18 +- .../tile/buildings/BuildingRenderer.java | 16 +- .../layers/tile/buildings/S3DBTileLoader.java | 18 +- .../layers/tile/example/TestTileLayer.java | 8 +- .../layers/tile/vector/VectorTileLayer.java | 10 +- .../layers/tile/vector/VectorTileLoader.java | 24 +- .../layers/tile/vector/labeling/Debug.java | 38 +-- .../layers/tile/vector/labeling/Label.java | 2 +- .../tile/vector/labeling/LabelPlacement.java | 8 +- .../tile/vector/labeling/LabelPool.java | 2 +- .../tile/vector/labeling/LabelTask.java | 16 +- .../tile/vector/labeling/LabelTileData.java | 4 +- .../vector/labeling/LabelTileLoaderHook.java | 8 +- .../tile/vector/labeling/TextRenderer.java | 18 +- .../tile/vector/labeling/WayDecorator.java | 2 +- .../layers/vector/AbstractVectorLayer.java | 14 +- .../org/oscim/renderer/BitmapRenderer.java | 12 +- ...ementRenderer.java => BucketRenderer.java} | 100 ++++---- .../org/oscim/renderer/ExtrusionRenderer.java | 16 +- vtm/src/org/oscim/renderer/GridRenderer.java | 33 ++- vtm/src/org/oscim/renderer/MapRenderer.java | 10 +- .../oscim/renderer/atlas/TextureAtlas.java | 2 +- .../oscim/renderer/atlas/TextureRegion.java | 2 +- .../BitmapBucket.java} | 16 +- .../ExtrusionBucket.java} | 18 +- .../ExtrusionBuckets.java} | 22 +- .../HairLineBucket.java} | 14 +- .../LineLayer.java => bucket/LineBucket.java} | 33 ++- .../LineTexBucket.java} | 18 +- .../MeshLayer.java => bucket/MeshBucket.java} | 16 +- .../PolygonBucket.java} | 36 +-- .../RenderBucket.java} | 6 +- .../RenderBuckets.java} | 240 +++++++++--------- .../SymbolBucket.java} | 12 +- .../{elements => bucket}/SymbolItem.java | 2 +- .../TextLayer.java => bucket/TextBucket.java} | 10 +- .../{elements => bucket}/TextItem.java | 2 +- .../TextureBucket.java} | 14 +- .../{elements => bucket}/TextureItem.java | 2 +- .../{elements => bucket}/VertexData.java | 8 +- vtm/src/org/oscim/theme/XmlThemeBuilder.java | 2 +- vtm/src/org/oscim/theme/styles/AreaStyle.java | 2 +- vtm/src/org/oscim/utils/Tessellator.java | 2 +- 64 files changed, 595 insertions(+), 593 deletions(-) rename vtm/src/org/oscim/renderer/{ElementRenderer.java => BucketRenderer.java} (58%) rename vtm/src/org/oscim/renderer/{elements/BitmapLayer.java => bucket/BitmapBucket.java} (93%) rename vtm/src/org/oscim/renderer/{elements/ExtrusionLayer.java => bucket/ExtrusionBucket.java} (97%) rename vtm/src/org/oscim/renderer/{elements/ExtrusionLayers.java => bucket/ExtrusionBuckets.java} (77%) rename vtm/src/org/oscim/renderer/{elements/HairLineLayer.java => bucket/HairLineBucket.java} (89%) rename vtm/src/org/oscim/renderer/{elements/LineLayer.java => bucket/LineBucket.java} (95%) rename vtm/src/org/oscim/renderer/{elements/LineTexLayer.java => bucket/LineTexBucket.java} (96%) rename vtm/src/org/oscim/renderer/{elements/MeshLayer.java => bucket/MeshBucket.java} (92%) rename vtm/src/org/oscim/renderer/{elements/PolygonLayer.java => bucket/PolygonBucket.java} (94%) rename vtm/src/org/oscim/renderer/{elements/RenderElement.java => bucket/RenderBucket.java} (95%) rename vtm/src/org/oscim/renderer/{elements/ElementLayers.java => bucket/RenderBuckets.java} (54%) rename vtm/src/org/oscim/renderer/{elements/SymbolLayer.java => bucket/SymbolBucket.java} (94%) rename vtm/src/org/oscim/renderer/{elements => bucket}/SymbolItem.java (98%) rename vtm/src/org/oscim/renderer/{elements/TextLayer.java => bucket/TextBucket.java} (96%) rename vtm/src/org/oscim/renderer/{elements => bucket}/TextItem.java (98%) rename vtm/src/org/oscim/renderer/{elements/TextureLayer.java => bucket/TextureBucket.java} (91%) rename vtm/src/org/oscim/renderer/{elements => bucket}/TextureItem.java (99%) rename vtm/src/org/oscim/renderer/{elements => bucket}/VertexData.java (97%) diff --git a/vtm-desktop/src/org/oscim/awt/AwtBitmap.java b/vtm-desktop/src/org/oscim/awt/AwtBitmap.java index ec67cc24..177efcbe 100644 --- a/vtm-desktop/src/org/oscim/awt/AwtBitmap.java +++ b/vtm-desktop/src/org/oscim/awt/AwtBitmap.java @@ -25,7 +25,7 @@ import java.nio.IntBuffer; import javax.imageio.ImageIO; import org.oscim.backend.canvas.Bitmap; -import org.oscim.renderer.elements.TextureLayer; +import org.oscim.renderer.bucket.TextureBucket; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; @@ -77,10 +77,10 @@ public class AwtBitmap implements Bitmap { public void eraseColor(int transparent) { } - private final static IntBuffer tmpBuffer = BufferUtils.newIntBuffer(TextureLayer.TEXTURE_HEIGHT - * TextureLayer.TEXTURE_WIDTH); - private final static int[] tmpPixel = new int[TextureLayer.TEXTURE_HEIGHT - * TextureLayer.TEXTURE_WIDTH]; + private final static IntBuffer tmpBuffer = BufferUtils.newIntBuffer(TextureBucket.TEXTURE_HEIGHT + * TextureBucket.TEXTURE_WIDTH); + private final static int[] tmpPixel = new int[TextureBucket.TEXTURE_HEIGHT + * TextureBucket.TEXTURE_WIDTH]; private final static boolean WRITE_TEX = false; private int dbgCnt; @@ -90,7 +90,7 @@ public class AwtBitmap implements Bitmap { int[] pixels; IntBuffer buffer; - if (width * height < TextureLayer.TEXTURE_HEIGHT * TextureLayer.TEXTURE_WIDTH) { + if (width * height < TextureBucket.TEXTURE_HEIGHT * TextureBucket.TEXTURE_WIDTH) { pixels = tmpPixel; buffer = tmpBuffer; buffer.clear(); diff --git a/vtm-jeo/src/org/oscim/layers/JeoVectorLayer.java b/vtm-jeo/src/org/oscim/layers/JeoVectorLayer.java index 60a41530..d78447df 100644 --- a/vtm-jeo/src/org/oscim/layers/JeoVectorLayer.java +++ b/vtm-jeo/src/org/oscim/layers/JeoVectorLayer.java @@ -13,8 +13,8 @@ import org.jeo.map.RuleList; import org.jeo.map.Style; import org.oscim.jeo.JeoUtils; import org.oscim.map.Map; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.MeshLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.MeshBucket; import org.oscim.theme.styles.AreaStyle; import org.oscim.theme.styles.LineStyle; import org.slf4j.Logger; @@ -113,7 +113,7 @@ public class JeoVectorLayer extends JtsLayer { return; } - LineLayer ll = t.layers.getLineLayer(2); + LineBucket ll = t.buckets.getLineBucket(2); if (ll.line == null) { RGB color = rule.color(f, CartoCSS.LINE_COLOR, RGB.black); float width = rule.number(f, CartoCSS.LINE_WIDTH, 1.2f); @@ -126,7 +126,7 @@ public class JeoVectorLayer extends JtsLayer { protected void addPolygon(Task t, Feature f, Rule rule, Geometry g) { - LineLayer ll = t.layers.getLineLayer(1); + LineBucket ll = t.buckets.getLineBucket(1); if (ll.line == null) { float width = rule.number(f, CartoCSS.LINE_WIDTH, 1.2f); @@ -135,7 +135,7 @@ public class JeoVectorLayer extends JtsLayer { ll.setDropDistance(0.5f); } - MeshLayer mesh = t.layers.getMeshLayer(0); + MeshBucket mesh = t.buckets.getMeshBucket(0); if (mesh.area == null) { int color = JeoUtils.color(rule.color(f, CartoCSS.POLYGON_FILL, RGB.red)); mesh.area = new AreaStyle(color); diff --git a/vtm-jeo/src/org/oscim/layers/JtsLayer.java b/vtm-jeo/src/org/oscim/layers/JtsLayer.java index 6a1cf5e3..6430e6e1 100644 --- a/vtm-jeo/src/org/oscim/layers/JtsLayer.java +++ b/vtm-jeo/src/org/oscim/layers/JtsLayer.java @@ -8,8 +8,8 @@ import org.oscim.core.MercatorProjection; import org.oscim.core.Tile; import org.oscim.layers.vector.AbstractVectorLayer; import org.oscim.map.Map; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.MeshLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.MeshBucket; import org.oscim.utils.geom.SimplifyDP; import org.oscim.utils.geom.SimplifyVW; @@ -69,7 +69,7 @@ public abstract class JtsLayer extends AbstractVectorLayer { SimplifyDP mSimpDP = new SimplifyDP(); SimplifyVW mSimpVW = new SimplifyVW(); - protected void addPolygon(Task t, Geometry g, MeshLayer ml, LineLayer ll) { + protected void addPolygon(Task t, Geometry g, MeshBucket ml, LineBucket ll) { mGeom.clear(); mGeom.startPolygon(); @@ -90,7 +90,7 @@ public abstract class JtsLayer extends AbstractVectorLayer { ml.addMesh(mGeom); } - protected void addLine(Task t, Geometry g, LineLayer ll) { + protected void addLine(Task t, Geometry g, LineBucket ll) { mGeom.clear(); mGeom.startLine(); diff --git a/vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java b/vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java index 688145cb..3aae9036 100644 --- a/vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java +++ b/vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java @@ -11,10 +11,10 @@ import org.jeo.map.Style; import org.oscim.backend.canvas.Color; import org.oscim.jeo.JeoUtils; import org.oscim.map.Map; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.MeshLayer; -import org.oscim.renderer.elements.TextItem; -import org.oscim.renderer.elements.TextLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.MeshBucket; +import org.oscim.renderer.bucket.TextBucket; +import org.oscim.renderer.bucket.TextItem; import org.oscim.theme.styles.AreaStyle; import org.oscim.theme.styles.LineStyle; import org.oscim.theme.styles.TextStyle; @@ -26,7 +26,7 @@ import com.vividsolutions.jts.geom.LineString; public class OSMIndoorLayer extends JeoVectorLayer { - protected TextLayer mTextLayer; + protected TextBucket mTextLayer; protected TextStyle mText = new TextBuilder() .setFontSize(16).setColor(Color.BLACK) .setStrokeWidth(2.2f).setStroke(Color.WHITE) @@ -40,7 +40,9 @@ public class OSMIndoorLayer extends JeoVectorLayer { @Override protected void processFeatures(Task t, Envelope b) { - mTextLayer = t.layers.addTextLayer(new TextLayer()); + mTextLayer = new TextBucket(); + + t.buckets.set(mTextLayer); super.processFeatures(t, b); @@ -58,7 +60,7 @@ public class OSMIndoorLayer extends JeoVectorLayer { int level = getLevel(f); - LineLayer ll = t.layers.getLineLayer(level * 3 + 2); + LineBucket ll = t.buckets.getLineBucket(level * 3 + 2); if (ll.line == null) { RGB color = rule.color(f, CartoCSS.LINE_COLOR, RGB.black); float width = rule.number(f, CartoCSS.LINE_WIDTH, 1.2f); @@ -73,7 +75,7 @@ public class OSMIndoorLayer extends JeoVectorLayer { protected void addPolygon(Task t, Feature f, Rule rule, Geometry g) { int level = getLevel(f); - LineLayer ll = t.layers.getLineLayer(level * 3 + 1); + LineBucket ll = t.buckets.getLineBucket(level * 3 + 1); boolean active = activeLevels[level + 1]; @@ -89,7 +91,7 @@ public class OSMIndoorLayer extends JeoVectorLayer { ll.setDropDistance(0); } - MeshLayer mesh = t.layers.getMeshLayer(level * 3); + MeshBucket mesh = t.buckets.getMeshBucket(level * 3); if (mesh.area == null) { int color = JeoUtils.color(rule.color(f, CartoCSS.POLYGON_FILL, RGB.red)); if (level > -2 && !active) diff --git a/vtm-playground/src/org/oscim/test/HairLineTest.java b/vtm-playground/src/org/oscim/test/HairLineTest.java index bd39d7a5..7cfdcc96 100644 --- a/vtm-playground/src/org/oscim/test/HairLineTest.java +++ b/vtm-playground/src/org/oscim/test/HairLineTest.java @@ -6,12 +6,12 @@ import org.oscim.core.GeometryBuffer; import org.oscim.gdx.GdxMap; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.GenericLayer; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.HairLineLayer; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.PolygonLayer; +import org.oscim.renderer.bucket.HairLineBucket; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.PolygonBucket; import org.oscim.theme.styles.AreaStyle; import org.oscim.theme.styles.LineStyle; import org.oscim.theme.styles.LineStyle.LineBuilder; @@ -31,24 +31,24 @@ public class HairLineTest extends GdxMap { return in; } - static class Renderer extends ElementRenderer { + static class Renderer extends BucketRenderer { boolean init; LineBuilder l = new LineStyle.LineBuilder() .color(Color.WHITE) .width(1.5f) .cap(Cap.ROUND); - HairLineLayer ll = layers.addHairLineLayer(1, l.build()); + HairLineBucket ll = buckets.addHairLineBucket(1, l.build()); //LineLayer ll = layers.addLineLayer(1, new LineStyle(Color.fade(Color.CYAN, 0.6f), 2.5f)); LineStyle style = new LineStyle(Color.fade(Color.MAGENTA, 0.6f), 2.5f); - HairLineLayer l1 = layers.addHairLineLayer(2, style); + HairLineBucket l1 = buckets.addHairLineBucket(2, style); //style = new LineStyle(Color.fade(Color.LTGRAY, 0.8f), 1.5f); - LineLayer l2 = layers.addLineLayer(3, style); + LineBucket l2 = buckets.addLineBucket(3, style); - PolygonLayer pl = layers.addPolygonLayer(4, new AreaStyle.AreaBuilder() + PolygonBucket pl = buckets.addPolygonBucket(4, new AreaStyle.AreaBuilder() .color(Color.BLUE) //.outline(Color.CYAN, 1) .build()); diff --git a/vtm-playground/src/org/oscim/test/LineRenderTest.java b/vtm-playground/src/org/oscim/test/LineRenderTest.java index 26f06ecd..5011e5a1 100644 --- a/vtm-playground/src/org/oscim/test/LineRenderTest.java +++ b/vtm-playground/src/org/oscim/test/LineRenderTest.java @@ -6,11 +6,11 @@ import org.oscim.core.GeometryBuffer; import org.oscim.gdx.GdxMap; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.GenericLayer; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.LineTexLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.LineTexBucket; import org.oscim.theme.styles.LineStyle; import com.badlogic.gdx.Input; @@ -75,10 +75,10 @@ public class LineRenderTest extends GdxMap { LineStyle outline2 = new LineStyle(0, null, Color.RED, 2.0f, Cap.ROUND, false, 0, 0, 0, 0, 0, true); - LineLayer ol = l.layers.addLineLayer(0, outline); - LineLayer ol2 = l.layers.addLineLayer(5, outline2); + LineBucket ol = l.buckets.addLineBucket(0, outline); + LineBucket ol2 = l.buckets.addLineBucket(5, outline2); - LineLayer ll = l.layers.addLineLayer(10, line1); + LineBucket ll = l.buckets.addLineBucket(10, line1); ll.addLine(g.translate(0, -20)); ll.addLine(g.translate(0, 10.5f)); addCircle(-200, -200, 100, ll); @@ -86,7 +86,7 @@ public class LineRenderTest extends GdxMap { if (addOutline) ol.addOutline(ll); - ll = l.layers.addLineLayer(20, line2); + ll = l.buckets.addLineBucket(20, line2); ll.addLine(g.translate(0, 10.5f)); ll.addLine(g.translate(0, 10.5f)); addCircle(200, -200, 100, ll); @@ -94,7 +94,7 @@ public class LineRenderTest extends GdxMap { if (addOutline) ol.addOutline(ll); - LineTexLayer lt = l.layers.getLineTexLayer(30); + LineTexBucket lt = l.buckets.getLineTexBucket(30); lt.line = line3; lt.addLine(g.translate(0, 10.5f)); lt.addLine(g.translate(0, 10.5f)); @@ -103,7 +103,7 @@ public class LineRenderTest extends GdxMap { // if (addOutline) // ol2.addOutline(ll); - ll = l.layers.addLineLayer(40, line4); + ll = l.buckets.addLineBucket(40, line4); ll.addLine(g.translate(0, 10.5f)); ll.addLine(g.translate(0, 10.5f)); addCircle(-200, 200, 100, ll); @@ -112,7 +112,7 @@ public class LineRenderTest extends GdxMap { ol2.addOutline(ll); } - void addCircle(float cx, float cy, float radius, LineLayer ll) { + void addCircle(float cx, float cy, float radius, LineBucket ll) { GeometryBuffer g = mGeom; g.clear(); @@ -128,7 +128,7 @@ public class LineRenderTest extends GdxMap { } } - void addCircle(float cx, float cy, float radius, LineTexLayer ll) { + void addCircle(float cx, float cy, float radius, LineTexBucket ll) { GeometryBuffer g = mGeom; g.clear(); @@ -173,14 +173,14 @@ public class LineRenderTest extends GdxMap { return true; } - class LineTest extends ElementRenderer { + class LineTest extends BucketRenderer { public LineTest() { mMapPosition.scale = 0; } public synchronized void clear() { - layers.clear(); + buckets.clear(); setReady(false); } diff --git a/vtm-playground/src/org/oscim/test/LineTest.java b/vtm-playground/src/org/oscim/test/LineTest.java index fd7c8680..d7e7a6a5 100644 --- a/vtm-playground/src/org/oscim/test/LineTest.java +++ b/vtm-playground/src/org/oscim/test/LineTest.java @@ -5,10 +5,10 @@ import org.oscim.core.GeometryBuffer; import org.oscim.gdx.GdxMap; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.GenericLayer; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.LineLayer; +import org.oscim.renderer.bucket.LineBucket; import org.oscim.theme.styles.LineStyle; import com.badlogic.gdx.Gdx; @@ -38,10 +38,10 @@ public class LineTest extends GdxMap { @Override protected void createLayers() { - mMap.layers().add(new GenericLayer(mMap, new ElementRenderer() { + mMap.layers().add(new GenericLayer(mMap, new BucketRenderer() { boolean init; - LineLayer ll = layers.addLineLayer(0, + LineBucket ll = buckets.addLineBucket(0, new LineStyle(Color.fade(Color.CYAN, 0.5f), 1.5f)); GeometryBuffer g = new GeometryBuffer(10, 1); @@ -79,8 +79,8 @@ public class LineTest extends GdxMap { // compile(); } - layers.clear(); - layers.setBaseLayers(ll); + buckets.clear(); + buckets.setBaseBuckets(ll); g.clear(); for (int i = 0; i < 60; i++) { g.startLine(); diff --git a/vtm-playground/src/org/oscim/test/SpriteManager.java b/vtm-playground/src/org/oscim/test/SpriteManager.java index 47224595..34a12c13 100644 --- a/vtm-playground/src/org/oscim/test/SpriteManager.java +++ b/vtm-playground/src/org/oscim/test/SpriteManager.java @@ -20,8 +20,8 @@ import org.oscim.backend.CanvasAdapter; import org.oscim.backend.canvas.Canvas; import org.oscim.renderer.atlas.TextureAtlas; import org.oscim.renderer.atlas.TextureAtlas.Rect; -import org.oscim.renderer.elements.TextureItem; -import org.oscim.renderer.elements.TextureItem.TexturePool; +import org.oscim.renderer.bucket.TextureItem; +import org.oscim.renderer.bucket.TextureItem.TexturePool; import org.oscim.utils.pool.Inlist; /** diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/Poi3DLayer.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/Poi3DLayer.java index 35967955..9f021f48 100644 --- a/vtm-playground/src/org/oscim/test/gdx/poi3d/Poi3DLayer.java +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/Poi3DLayer.java @@ -16,8 +16,8 @@ import org.oscim.layers.tile.TileSet; import org.oscim.layers.tile.vector.VectorTileLayer; import org.oscim.layers.tile.vector.VectorTileLayer.TileLoaderProcessHook; import org.oscim.map.Map; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.SymbolItem; +import org.oscim.renderer.bucket.RenderBuckets; +import org.oscim.renderer.bucket.SymbolItem; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,7 +59,7 @@ public class Poi3DLayer extends Layer implements Map.UpdateListener { tileLayer.addHook(new TileLoaderProcessHook() { @Override - public boolean process(MapTile tile, ElementLayers layers, MapElement element) { + public boolean process(MapTile tile, RenderBuckets buckets, MapElement element) { if (!element.tags.contains(TREE_TAG)) return false; diff --git a/vtm-playground/src/org/oscim/test/renderer/AtlasTest.java b/vtm-playground/src/org/oscim/test/renderer/AtlasTest.java index 10dd48aa..398fef7a 100644 --- a/vtm-playground/src/org/oscim/test/renderer/AtlasTest.java +++ b/vtm-playground/src/org/oscim/test/renderer/AtlasTest.java @@ -7,14 +7,14 @@ import org.oscim.backend.canvas.Paint.Cap; import org.oscim.gdx.GdxMap; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.GenericLayer; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; import org.oscim.renderer.atlas.TextureAtlas; import org.oscim.renderer.atlas.TextureAtlas.Rect; import org.oscim.renderer.atlas.TextureAtlas.Slot; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.TextItem; -import org.oscim.renderer.elements.TextLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.TextBucket; +import org.oscim.renderer.bucket.TextItem; import org.oscim.theme.styles.LineStyle; import org.oscim.theme.styles.TextStyle; import org.oscim.theme.styles.TextStyle.TextBuilder; @@ -34,7 +34,7 @@ public class AtlasTest extends GdxMap { GdxMapApp.run(new AtlasTest(), null, 400); } - static class AtlasRenderLayer extends ElementRenderer { + static class AtlasRenderLayer extends BucketRenderer { Logger log = LoggerFactory.getLogger(AtlasRenderLayer.class); @@ -42,21 +42,21 @@ public class AtlasTest extends GdxMap { TextureAtlas mAtlas = TextureAtlas.create(2048, 2048, 1); - LineLayer ll = layers.getLineLayer(0); + LineBucket ll = buckets.getLineBucket(0); ll.line = new LineStyle(Color.BLUE, 3, Cap.BUTT); ll.scale = 1f; - LineLayer ll2 = layers.getLineLayer(1); + LineBucket ll2 = buckets.getLineBucket(1); ll2.line = new LineStyle(Color.RED, 3, Cap.BUTT); ll2.scale = 1f; - LineLayer ll3 = layers.getLineLayer(2); + LineBucket ll3 = buckets.getLineBucket(2); ll3.line = new LineStyle(Color.GREEN, 3, Cap.BUTT); ll3.scale = 1f; - TextLayer tl = new TextLayer(); + TextBucket tl = new TextBucket(); TextStyle t = new TextBuilder().setFontSize(20).setColor(Color.BLACK).build(); - layers.setTextureLayers(tl); + buckets.setTextureBuckets(tl); float[] points = new float[10]; diff --git a/vtm-playground/src/org/oscim/test/renderer/BezierTest.java b/vtm-playground/src/org/oscim/test/renderer/BezierTest.java index 373e76b0..d475854f 100644 --- a/vtm-playground/src/org/oscim/test/renderer/BezierTest.java +++ b/vtm-playground/src/org/oscim/test/renderer/BezierTest.java @@ -8,9 +8,9 @@ import org.oscim.core.Point; import org.oscim.gdx.GdxMap; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.GenericLayer; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; -import org.oscim.renderer.elements.LineLayer; +import org.oscim.renderer.bucket.LineBucket; import org.oscim.theme.styles.LineStyle; import org.oscim.utils.geom.BezierPath; @@ -26,7 +26,7 @@ public class BezierTest extends GdxMap { GdxMapApp.run(new BezierTest(), null, 400); } - static class BezierPathLayer extends ElementRenderer { + static class BezierPathLayer extends BucketRenderer { public BezierPathLayer() { mMapPosition.scale = 0; @@ -42,7 +42,7 @@ public class BezierTest extends GdxMap { // System.out.println(pts[i]); g.addPoint(pts[i]); } - LineLayer ll = layers.addLineLayer(0, new LineStyle(Color.BLUE, 2f)); + LineBucket ll = buckets.addLineBucket(0, new LineStyle(Color.BLUE, 2f)); ll.addLine(g); List ctrl = BezierPath.cubicSplineControlPoints(pts, 0.1f); @@ -64,13 +64,13 @@ public class BezierTest extends GdxMap { } p0 = p3; } - ll = layers.addLineLayer(1, new LineStyle(Color.CYAN, 2f)); + ll = buckets.addLineBucket(1, new LineStyle(Color.CYAN, 2f)); ll.addLine(g); } public synchronized void clear() { - layers.clear(); + buckets.clear(); setReady(false); } diff --git a/vtm-playground/src/org/oscim/test/renderer/HexagonRenderTest.java b/vtm-playground/src/org/oscim/test/renderer/HexagonRenderTest.java index b348d61c..603a685b 100644 --- a/vtm-playground/src/org/oscim/test/renderer/HexagonRenderTest.java +++ b/vtm-playground/src/org/oscim/test/renderer/HexagonRenderTest.java @@ -8,7 +8,7 @@ import org.oscim.gdx.GdxMap; import org.oscim.gdx.GdxMapApp; import org.oscim.layers.GenericLayer; import org.oscim.renderer.BufferObject; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLShader; import org.oscim.renderer.GLState; import org.oscim.renderer.GLUtils; @@ -35,7 +35,7 @@ public class HexagonRenderTest extends GdxMap { * based on chapter 2 from: * https://github.com/dalinaum/opengl-es-book-samples/tree/master/Android */ - static class HexagonRenderer extends ElementRenderer { + static class HexagonRenderer extends BucketRenderer { private int mProgramObject; private int hVertexPosition; diff --git a/vtm-playground/src/org/oscim/test/renderer/SymbolRenderLayer.java b/vtm-playground/src/org/oscim/test/renderer/SymbolRenderLayer.java index e736cb5f..8288ce68 100644 --- a/vtm-playground/src/org/oscim/test/renderer/SymbolRenderLayer.java +++ b/vtm-playground/src/org/oscim/test/renderer/SymbolRenderLayer.java @@ -17,17 +17,17 @@ package org.oscim.test.renderer; import org.oscim.backend.CanvasAdapter; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; -import org.oscim.renderer.elements.SymbolItem; -import org.oscim.renderer.elements.SymbolLayer; +import org.oscim.renderer.bucket.SymbolBucket; +import org.oscim.renderer.bucket.SymbolItem; -public class SymbolRenderLayer extends ElementRenderer { +public class SymbolRenderLayer extends BucketRenderer { boolean initialize = true; public SymbolRenderLayer() { - SymbolLayer l = new SymbolLayer(); - layers.setTextureLayers(l); + SymbolBucket l = new SymbolBucket(); + buckets.setTextureBuckets(l); SymbolItem it = SymbolItem.pool.get(); it.billboard = false; diff --git a/vtm-web/src/org/oscim/gdx/emu/org/oscim/utils/Tessellator.java b/vtm-web/src/org/oscim/gdx/emu/org/oscim/utils/Tessellator.java index 4c4edcb1..fac67faa 100644 --- a/vtm-web/src/org/oscim/gdx/emu/org/oscim/utils/Tessellator.java +++ b/vtm-web/src/org/oscim/gdx/emu/org/oscim/utils/Tessellator.java @@ -1,7 +1,7 @@ package org.oscim.utils; import org.oscim.core.GeometryBuffer; -import org.oscim.renderer.elements.VertexData; +import org.oscim.renderer.bucket.VertexData; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/vtm/src/org/oscim/layers/PathLayer.java b/vtm/src/org/oscim/layers/PathLayer.java index bfc3a203..ca09804c 100644 --- a/vtm/src/org/oscim/layers/PathLayer.java +++ b/vtm/src/org/oscim/layers/PathLayer.java @@ -28,10 +28,10 @@ import org.oscim.core.MapPosition; import org.oscim.core.MercatorProjection; import org.oscim.core.Tile; import org.oscim.map.Map; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.LineLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.theme.styles.LineStyle; import org.oscim.utils.FastMath; import org.oscim.utils.async.SimpleWorker; @@ -188,11 +188,11 @@ public class PathLayer extends Layer { /*** * everything below runs on GL- and Worker-Thread ***/ - final class RenderPath extends ElementRenderer { + final class RenderPath extends BucketRenderer { public RenderPath() { - layers.addLineLayer(0, mLineStyle); + buckets.addLineBucket(0, mLineStyle); } private int mCurX = -1; @@ -221,13 +221,13 @@ public class PathLayer extends Layer { mMapPosition.copy(t.pos); // compile new layers - layers.setBaseLayers(t.layer.getBaseLayers()); + buckets.setBaseBuckets(t.bucket.getBaseBuckets()); compile(); } } final static class Task { - ElementLayers layer = new ElementLayers(); + RenderBuckets bucket = new RenderBuckets(); MapPosition pos = new MapPosition(); } @@ -294,16 +294,16 @@ public class PathLayer extends Layer { } if (size == 0) { - if (task.layer.getBaseLayers() != null) { - task.layer.clear(); + if (task.bucket.getBaseBuckets() != null) { + task.bucket.clear(); mMap.render(); } return true; } - ElementLayers layers = task.layer; + RenderBuckets layers = task.bucket; - LineLayer ll = layers.getLineLayer(0); + LineBucket ll = layers.getLineBucket(0); ll.line = mLineStyle; ll.scale = ll.line.width; @@ -398,7 +398,7 @@ public class PathLayer extends Layer { @Override public void cleanup(Task task) { - task.layer.clear(); + task.bucket.clear(); } private int addPoint(float[] points, int i, int x, int y) { diff --git a/vtm/src/org/oscim/layers/marker/MarkerRenderer.java b/vtm/src/org/oscim/layers/marker/MarkerRenderer.java index eab5bcd6..6ce3e712 100644 --- a/vtm/src/org/oscim/layers/marker/MarkerRenderer.java +++ b/vtm/src/org/oscim/layers/marker/MarkerRenderer.java @@ -22,18 +22,18 @@ import java.util.Comparator; import org.oscim.core.MercatorProjection; import org.oscim.core.Point; import org.oscim.core.Tile; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; -import org.oscim.renderer.elements.SymbolItem; -import org.oscim.renderer.elements.SymbolLayer; +import org.oscim.renderer.bucket.SymbolBucket; +import org.oscim.renderer.bucket.SymbolItem; import org.oscim.utils.TimSort; import org.oscim.utils.geom.GeometryUtils; -public class MarkerRenderer extends ElementRenderer { +public class MarkerRenderer extends BucketRenderer { protected final MarkerSymbol mDefaultMarker; - private final SymbolLayer mSymbolLayer; + private final SymbolBucket mSymbolLayer; private final float[] mBox = new float[8]; private final MarkerLayer mMarkerLayer; private final Point mMapPoint = new Point(); @@ -61,7 +61,7 @@ public class MarkerRenderer extends ElementRenderer { } public MarkerRenderer(MarkerLayer markerLayer, MarkerSymbol defaultSymbol) { - mSymbolLayer = new SymbolLayer(); + mSymbolLayer = new SymbolBucket(); mMarkerLayer = markerLayer; mDefaultMarker = defaultSymbol; } @@ -86,8 +86,8 @@ public class MarkerRenderer extends ElementRenderer { long flip = (long) (Tile.SIZE * v.pos.scale) >> 1; if (mItems == null) { - if (layers.getTextureLayers() != null) { - layers.clear(); + if (buckets.getTextureBuckets() != null) { + buckets.clear(); compile(); } return; @@ -131,7 +131,7 @@ public class MarkerRenderer extends ElementRenderer { * or more than 10 of the current items became invisible */ //if ((numVisible == 0) && (changedVisible == 0 && changesInvisible < 10)) // return; - layers.clear(); + buckets.clear(); if (numVisible == 0) { compile(); @@ -162,8 +162,8 @@ public class MarkerRenderer extends ElementRenderer { mSymbolLayer.pushSymbol(s); } - layers.setTextureLayers(mSymbolLayer); - layers.prepare(); + buckets.setTextureBuckets(mSymbolLayer); + buckets.prepare(); compile(); } diff --git a/vtm/src/org/oscim/layers/tile/MapTile.java b/vtm/src/org/oscim/layers/tile/MapTile.java index 00f56d2c..25a182e0 100644 --- a/vtm/src/org/oscim/layers/tile/MapTile.java +++ b/vtm/src/org/oscim/layers/tile/MapTile.java @@ -23,7 +23,7 @@ import static org.oscim.layers.tile.MapTile.State.READY; import org.oscim.core.Tile; import org.oscim.layers.tile.vector.VectorTileLoader; import org.oscim.layers.tile.vector.labeling.LabelTileLoaderHook; -import org.oscim.renderer.elements.ElementLayers; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.utils.pool.Inlist; import org.oscim.utils.quadtree.TileIndex; import org.oscim.utils.quadtree.TreeNode; @@ -266,11 +266,11 @@ public class MapTile extends Tile { * Get the default ElementLayers which are added * by {@link VectorTileLoader} */ - public ElementLayers getLayers() { - if (!(data instanceof ElementLayers)) + public RenderBuckets getLayers() { + if (!(data instanceof RenderBuckets)) return null; - return (ElementLayers) data; + return (RenderBuckets) data; } public TileData getData(Object id) { diff --git a/vtm/src/org/oscim/layers/tile/TileRenderer.java b/vtm/src/org/oscim/layers/tile/TileRenderer.java index b3a7c156..ab0e0b78 100644 --- a/vtm/src/org/oscim/layers/tile/TileRenderer.java +++ b/vtm/src/org/oscim/layers/tile/TileRenderer.java @@ -26,7 +26,7 @@ import org.oscim.renderer.BufferObject; import org.oscim.renderer.GLViewport; import org.oscim.renderer.LayerRenderer; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.ElementLayers; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.utils.ScanBox; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -175,7 +175,7 @@ public abstract class TileRenderer extends LayerRenderer { private static int uploadTileData(MapTile tile) { tile.state = READY; - ElementLayers layers = tile.getLayers(); + RenderBuckets layers = tile.getLayers(); /* tile might only contain label layers */ if (layers == null) diff --git a/vtm/src/org/oscim/layers/tile/VectorTileRenderer.java b/vtm/src/org/oscim/layers/tile/VectorTileRenderer.java index cda638b9..b3805a0c 100644 --- a/vtm/src/org/oscim/layers/tile/VectorTileRenderer.java +++ b/vtm/src/org/oscim/layers/tile/VectorTileRenderer.java @@ -5,12 +5,12 @@ import static org.oscim.layers.tile.MapTile.PROXY_GRAMPA; import static org.oscim.layers.tile.MapTile.PROXY_PARENT; import static org.oscim.layers.tile.MapTile.State.READY; import static org.oscim.renderer.MapRenderer.COORD_SCALE; -import static org.oscim.renderer.elements.RenderElement.BITMAP; -import static org.oscim.renderer.elements.RenderElement.HAIRLINE; -import static org.oscim.renderer.elements.RenderElement.LINE; -import static org.oscim.renderer.elements.RenderElement.MESH; -import static org.oscim.renderer.elements.RenderElement.POLYGON; -import static org.oscim.renderer.elements.RenderElement.TEXLINE; +import static org.oscim.renderer.bucket.RenderBucket.BITMAP; +import static org.oscim.renderer.bucket.RenderBucket.HAIRLINE; +import static org.oscim.renderer.bucket.RenderBucket.LINE; +import static org.oscim.renderer.bucket.RenderBucket.MESH; +import static org.oscim.renderer.bucket.RenderBucket.POLYGON; +import static org.oscim.renderer.bucket.RenderBucket.TEXLINE; import org.oscim.backend.GL20; import org.oscim.backend.canvas.Color; @@ -19,14 +19,14 @@ import org.oscim.core.Tile; import org.oscim.renderer.GLMatrix; import org.oscim.renderer.GLViewport; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.BitmapLayer; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.HairLineLayer; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.LineTexLayer; -import org.oscim.renderer.elements.MeshLayer; -import org.oscim.renderer.elements.PolygonLayer; -import org.oscim.renderer.elements.RenderElement; +import org.oscim.renderer.bucket.BitmapBucket; +import org.oscim.renderer.bucket.HairLineBucket; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.LineTexBucket; +import org.oscim.renderer.bucket.MeshBucket; +import org.oscim.renderer.bucket.PolygonBucket; +import org.oscim.renderer.bucket.RenderBucket; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.utils.FastMath; public class VectorTileRenderer extends TileRenderer { @@ -55,7 +55,7 @@ public class VectorTileRenderer extends TileRenderer { mClipProj.setValue(14, 0); mClipProj.multiplyRhs(v.view); - mClipMode = PolygonLayer.CLIP_STENCIL; + mClipMode = PolygonBucket.CLIP_STENCIL; int tileCnt = mDrawTiles.cnt + mProxyTileCnt; @@ -77,7 +77,7 @@ public class VectorTileRenderer extends TileRenderer { * draw where tiles were already drawn */ GL.glDepthFunc(GL20.GL_ALWAYS); - mClipMode = PolygonLayer.CLIP_DEPTH; + mClipMode = PolygonBucket.CLIP_DEPTH; drawProxies = true; break; @@ -150,11 +150,11 @@ public class VectorTileRenderer extends TileRenderer { tile.lastDraw = mDrawSerial; /* use holder proxy when it is set */ - ElementLayers layers = (tile.holder == null) + RenderBuckets buckets = (tile.holder == null) ? tile.getLayers() : tile.holder.getLayers(); - if (layers == null || layers.vbo == null) + if (buckets == null || buckets.vbo == null) return; MapPosition pos = v.pos; @@ -174,63 +174,63 @@ public class VectorTileRenderer extends TileRenderer { mClipMVP.setTransScale(x, y, scale / COORD_SCALE); mClipMVP.multiplyLhs(mClipProj); - layers.bind(); + buckets.bind(); - RenderElement l = layers.getBaseLayers(); - PolygonLayer.Renderer.clip(mClipMVP, mClipMode); + PolygonBucket.Renderer.clip(mClipMVP, mClipMode); + + RenderBucket b = buckets.getBaseBuckets(); boolean first = true; - while (l != null) { - if (l.type == POLYGON) { - l = PolygonLayer.Renderer.draw(l, v, div, first); + while (b != null) { + if (b.type == POLYGON) { + b = PolygonBucket.Renderer.draw(b, v, div, first); first = false; /* set test for clip to tile region */ GL.glStencilFunc(GL_EQUAL, 0x80, 0x80); continue; } - if (l.type == LINE) { - l = LineLayer.Renderer.draw(l, v, scale, layers); + if (b.type == LINE) { + b = LineBucket.Renderer.draw(b, v, scale, buckets); continue; } - if (l.type == TEXLINE) { - l = LineTexLayer.Renderer.draw(l, v, div, layers); - if (layers.ibo != null) - layers.ibo.bind(); + if (b.type == TEXLINE) { + b = LineTexBucket.Renderer.draw(b, v, div, buckets); + if (buckets.ibo != null) + buckets.ibo.bind(); continue; } - if (l.type == MESH) { - l = MeshLayer.Renderer.draw(l, v); + if (b.type == MESH) { + b = MeshBucket.Renderer.draw(b, v); continue; } - if (l.type == HAIRLINE) { - l = HairLineLayer.Renderer.draw(l, v); + if (b.type == HAIRLINE) { + b = HairLineBucket.Renderer.draw(b, v); continue; } /* just in case */ - log.error("unknown layer {}", l.type); - l = l.next; + log.error("unknown layer {}", b.type); + b = b.next; } - l = layers.getTextureLayers(); - while (l != null) { - if (l.type == BITMAP) { - l = BitmapLayer.Renderer.draw(l, v, 1, mLayerAlpha); + b = buckets.getTextureBuckets(); + while (b != null) { + if (b.type == BITMAP) { + b = BitmapBucket.Renderer.draw(b, v, 1, mLayerAlpha); continue; } - log.error("unknown layer {}", l.type); - l = l.next; + log.error("unknown layer {}", b.type); + b = b.next; } if (debugOverdraw) { - if (tile.zoomLevel > pos.zoomLevel) - PolygonLayer.Renderer.drawOver(mClipMVP, Color.BLUE, 0.5f); + PolygonBucket.Renderer.drawOver(mClipMVP, Color.BLUE, 0.5f); else if (tile.zoomLevel < pos.zoomLevel) - PolygonLayer.Renderer.drawOver(mClipMVP, Color.RED, 0.5f); + PolygonBucket.Renderer.drawOver(mClipMVP, Color.RED, 0.5f); else - PolygonLayer.Renderer.drawOver(mClipMVP, Color.GREEN, 0.5f); + PolygonBucket.Renderer.drawOver(mClipMVP, Color.GREEN, 0.5f); return; } @@ -244,12 +244,12 @@ public class VectorTileRenderer extends TileRenderer { long dTime = MapRenderer.frametime - tile.fadeTime; if (mOverdrawColor == 0 || dTime > FADE_TIME) { - PolygonLayer.Renderer.drawOver(mClipMVP, 0, 1); + PolygonBucket.Renderer.drawOver(mClipMVP, 0, 1); return; } float fade = 1 - dTime / FADE_TIME; - PolygonLayer.Renderer.drawOver(mClipMVP, mOverdrawColor, fade * fade); + PolygonBucket.Renderer.drawOver(mClipMVP, mOverdrawColor, fade * fade); MapRenderer.animate(); } diff --git a/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLayer.java b/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLayer.java index 18523309..e80ea636 100644 --- a/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLayer.java +++ b/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLayer.java @@ -23,7 +23,7 @@ import org.oscim.layers.tile.TileLoader; import org.oscim.layers.tile.TileManager; import org.oscim.layers.tile.VectorTileRenderer; import org.oscim.map.Map; -import org.oscim.renderer.elements.TextureItem.TexturePool; +import org.oscim.renderer.bucket.TextureItem.TexturePool; import org.oscim.tiling.TileSource; import org.oscim.utils.FastMath; import org.slf4j.Logger; diff --git a/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLoader.java b/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLoader.java index 7035585e..d65839b4 100644 --- a/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/bitmap/BitmapTileLoader.java @@ -22,8 +22,8 @@ import org.oscim.backend.canvas.Bitmap; import org.oscim.core.Tile; import org.oscim.layers.tile.MapTile; import org.oscim.layers.tile.TileLoader; -import org.oscim.renderer.elements.BitmapLayer; -import org.oscim.renderer.elements.ElementLayers; +import org.oscim.renderer.bucket.BitmapBucket; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.tiling.ITileDataSource; import org.oscim.tiling.TileSource; import org.slf4j.Logger; @@ -58,11 +58,11 @@ public class BitmapTileLoader extends TileLoader { if (isCanceled() || mTile.state(CANCEL)) return; - BitmapLayer l = new BitmapLayer(false); + BitmapBucket l = new BitmapBucket(false); l.setBitmap(bitmap, Tile.SIZE, Tile.SIZE, mLayer.pool); - ElementLayers layers = new ElementLayers(); - layers.setTextureLayers(l); + RenderBuckets layers = new RenderBuckets(); + layers.setTextureBuckets(l); mTile.data = layers; } diff --git a/vtm/src/org/oscim/layers/tile/buildings/BuildingLayer.java b/vtm/src/org/oscim/layers/tile/buildings/BuildingLayer.java index 2113e4f7..8350f003 100644 --- a/vtm/src/org/oscim/layers/tile/buildings/BuildingLayer.java +++ b/vtm/src/org/oscim/layers/tile/buildings/BuildingLayer.java @@ -27,9 +27,9 @@ import org.oscim.map.Map; import org.oscim.renderer.ExtrusionRenderer; import org.oscim.renderer.OffscreenRenderer; import org.oscim.renderer.OffscreenRenderer.Mode; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.ExtrusionLayer; -import org.oscim.renderer.elements.ExtrusionLayers; +import org.oscim.renderer.bucket.ExtrusionBucket; +import org.oscim.renderer.bucket.ExtrusionBuckets; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.theme.styles.ExtrusionStyle; import org.oscim.theme.styles.RenderStyle; import org.slf4j.Logger; @@ -77,7 +77,7 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook { /** TileLoaderThemeHook */ @Override - public boolean render(MapTile tile, ElementLayers layers, MapElement element, + public boolean render(MapTile tile, RenderBuckets buckets, MapElement element, RenderStyle style, int level) { if (!(style instanceof ExtrusionStyle)) @@ -95,14 +95,14 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook { if (v != null) minHeight = Integer.parseInt(v); - ExtrusionLayers el = get(tile); + ExtrusionBuckets el = get(tile); if (el.layers == null) { double lat = MercatorProjection.toLatitude(tile.y); float groundScale = (float) MercatorProjection .groundResolution(lat, 1 << tile.zoomLevel); - el.layers = new ExtrusionLayer(0, groundScale, extrusion.colors); + el.layers = new ExtrusionBucket(0, groundScale, extrusion.colors); } /* 12m default */ @@ -114,10 +114,10 @@ public class BuildingLayer extends Layer implements TileLoaderThemeHook { return true; } - public static ExtrusionLayers get(MapTile tile) { - ExtrusionLayers el = (ExtrusionLayers) tile.getData(BUILDING_DATA); + public static ExtrusionBuckets get(MapTile tile) { + ExtrusionBuckets el = (ExtrusionBuckets) tile.getData(BUILDING_DATA); if (el == null) { - el = new ExtrusionLayers(tile); + el = new ExtrusionBuckets(tile); tile.addData(BUILDING_DATA, el); } return el; diff --git a/vtm/src/org/oscim/layers/tile/buildings/BuildingRenderer.java b/vtm/src/org/oscim/layers/tile/buildings/BuildingRenderer.java index 92b9c1af..b2b2edea 100644 --- a/vtm/src/org/oscim/layers/tile/buildings/BuildingRenderer.java +++ b/vtm/src/org/oscim/layers/tile/buildings/BuildingRenderer.java @@ -12,8 +12,8 @@ import org.oscim.layers.tile.TileSet; import org.oscim.renderer.ExtrusionRenderer; import org.oscim.renderer.GLViewport; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.ExtrusionLayers; +import org.oscim.renderer.bucket.ExtrusionBuckets; +import org.oscim.renderer.bucket.RenderBuckets; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -102,7 +102,7 @@ public class BuildingRenderer extends ExtrusionRenderer { /* keep a list of tiles available for rendering */ if (mExtrusionLayerSet == null || mExtrusionLayerSet.length < mTileSet.cnt * 4) - mExtrusionLayerSet = new ExtrusionLayers[mTileSet.cnt * 4]; + mExtrusionLayerSet = new ExtrusionBuckets[mTileSet.cnt * 4]; /* compile one tile max per frame */ boolean compiled = false; @@ -114,7 +114,7 @@ public class BuildingRenderer extends ExtrusionRenderer { /* TODO - if tile is not available try parent or children */ for (int i = 0; i < mTileSet.cnt; i++) { - ExtrusionLayers els = getLayer(tiles[i]); + ExtrusionBuckets els = getLayer(tiles[i]); if (els == null) continue; @@ -137,7 +137,7 @@ public class BuildingRenderer extends ExtrusionRenderer { // if (c == t) // continue O; - ExtrusionLayers els = getLayer(t); + ExtrusionBuckets els = getLayer(t); if (els == null) continue; @@ -158,7 +158,7 @@ public class BuildingRenderer extends ExtrusionRenderer { continue; MapTile c = t.node.child(j); - ExtrusionLayers el = getLayer(c); + ExtrusionBuckets el = getLayer(c); if (el == null || !el.compiled) continue; @@ -192,8 +192,8 @@ public class BuildingRenderer extends ExtrusionRenderer { mTileLayer.releaseTiles(mTileSet); } - private static ExtrusionLayers getLayer(MapTile t) { - ElementLayers layers = t.getLayers(); + private static ExtrusionBuckets getLayer(MapTile t) { + RenderBuckets layers = t.getLayers(); if (layers != null && !t.state(READY | NEW_DATA)) return null; diff --git a/vtm/src/org/oscim/layers/tile/buildings/S3DBTileLoader.java b/vtm/src/org/oscim/layers/tile/buildings/S3DBTileLoader.java index b05db8f6..1dabccb6 100644 --- a/vtm/src/org/oscim/layers/tile/buildings/S3DBTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/buildings/S3DBTileLoader.java @@ -11,8 +11,8 @@ import org.oscim.core.Tag; import org.oscim.layers.tile.MapTile; import org.oscim.layers.tile.TileLoader; import org.oscim.layers.tile.TileManager; -import org.oscim.renderer.elements.ExtrusionLayer; -import org.oscim.renderer.elements.ExtrusionLayers; +import org.oscim.renderer.bucket.ExtrusionBucket; +import org.oscim.renderer.bucket.ExtrusionBuckets; import org.oscim.tiling.ITileDataSource; import org.oscim.tiling.TileSource; import org.slf4j.Logger; @@ -24,8 +24,8 @@ class S3DBTileLoader extends TileLoader { /** current TileDataSource used by this MapTileLoader */ private final ITileDataSource mTileDataSource; - private ExtrusionLayer mLayers; - private ExtrusionLayer mRoofs; + private ExtrusionBucket mLayers; + private ExtrusionBucket mRoofs; private float mGroundScale; @@ -75,13 +75,13 @@ class S3DBTileLoader extends TileLoader { mGroundScale = (float) MercatorProjection .groundResolution(lat, 1 << mTile.zoomLevel); - mRoofs = new ExtrusionLayer(0, mGroundScale, Color.get(247, 249, 250)); + mRoofs = new ExtrusionBucket(0, mGroundScale, Color.get(247, 249, 250)); - mLayers = new ExtrusionLayer(0, mGroundScale, Color.get(255, 254, 252)); + mLayers = new ExtrusionBucket(0, mGroundScale, Color.get(255, 254, 252)); //mRoofs = new ExtrusionLayer(0, mGroundScale, Color.get(207, 209, 210)); mRoofs.next = mLayers; - ExtrusionLayers layers = BuildingLayer.get(tile); + ExtrusionBuckets layers = BuildingLayer.get(tile); layers.setLayers(mRoofs); @@ -127,13 +127,13 @@ class S3DBTileLoader extends TileLoader { return; } - for (ExtrusionLayer l = mLayers; l != null; l = l.next()) { + for (ExtrusionBucket l = mLayers; l != null; l = l.next()) { if (l.color == c) { l.add(element); return; } } - ExtrusionLayer l = new ExtrusionLayer(0, mGroundScale, c); + ExtrusionBucket l = new ExtrusionBucket(0, mGroundScale, c); l.next = mLayers.next; mLayers.next = l; diff --git a/vtm/src/org/oscim/layers/tile/example/TestTileLayer.java b/vtm/src/org/oscim/layers/tile/example/TestTileLayer.java index a20ebc6b..a3b057dd 100644 --- a/vtm/src/org/oscim/layers/tile/example/TestTileLayer.java +++ b/vtm/src/org/oscim/layers/tile/example/TestTileLayer.java @@ -26,8 +26,8 @@ import org.oscim.layers.tile.TileLoader; import org.oscim.layers.tile.TileManager; import org.oscim.layers.tile.VectorTileRenderer; import org.oscim.map.Map; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.LineLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.theme.styles.LineStyle; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,10 +58,10 @@ public class TestTileLayer extends TileLayer { @Override public boolean loadTile(MapTile tile) { log.debug("load tile " + tile); - ElementLayers layers = new ElementLayers(); + RenderBuckets layers = new RenderBuckets(); tile.data = layers; - LineLayer ll = layers.getLineLayer(0); + LineBucket ll = layers.getLineBucket(0); ll.line = mLineStyle; ll.scale = 2; diff --git a/vtm/src/org/oscim/layers/tile/vector/VectorTileLayer.java b/vtm/src/org/oscim/layers/tile/vector/VectorTileLayer.java index f406cf3c..db3277a5 100644 --- a/vtm/src/org/oscim/layers/tile/vector/VectorTileLayer.java +++ b/vtm/src/org/oscim/layers/tile/vector/VectorTileLayer.java @@ -23,7 +23,7 @@ import org.oscim.layers.tile.TileLoader; import org.oscim.layers.tile.TileManager; import org.oscim.layers.tile.VectorTileRenderer; import org.oscim.map.Map; -import org.oscim.renderer.elements.ElementLayers; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.theme.IRenderTheme; import org.oscim.theme.styles.RenderStyle; import org.oscim.tiling.TileSource; @@ -132,7 +132,7 @@ public class VectorTileLayer extends TileLayer { * loader threads, so dont keep tile specific state. */ public interface TileLoaderProcessHook { - public boolean process(MapTile tile, ElementLayers layers, MapElement element); + public boolean process(MapTile tile, RenderBuckets layers, MapElement element); /** Called on loader thread when tile loading is completed */ public void complete(MapTile tile, boolean success); @@ -145,7 +145,7 @@ public class VectorTileLayer extends TileLayer { */ public interface TileLoaderThemeHook { /** Called for each RenderStyle found for a MapElement. */ - public boolean render(MapTile tile, ElementLayers layers, + public boolean render(MapTile tile, RenderBuckets buckets, MapElement element, RenderStyle style, int level); /** Called on loader thread when tile loading is completed */ @@ -172,7 +172,7 @@ public class VectorTileLayer extends TileLayer { mTileSource.close(); } - public void callThemeHooks(MapTile tile, ElementLayers layers, MapElement element, + public void callThemeHooks(MapTile tile, RenderBuckets layers, MapElement element, RenderStyle style, int level) { LList th = mLoaderThemeHooks.head(); @@ -184,7 +184,7 @@ public class VectorTileLayer extends TileLayer { } } - public boolean callProcessHooks(MapTile tile, ElementLayers layers, MapElement element) { + public boolean callProcessHooks(MapTile tile, RenderBuckets layers, MapElement element) { LList ph = mLoaderProcessHooks.head(); while (ph != null) { diff --git a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java index 6b5462b1..4ac13450 100644 --- a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java @@ -26,11 +26,11 @@ import org.oscim.core.TagSet; import org.oscim.core.Tile; import org.oscim.layers.tile.MapTile; import org.oscim.layers.tile.TileLoader; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.LineTexLayer; -import org.oscim.renderer.elements.MeshLayer; -import org.oscim.renderer.elements.PolygonLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.LineTexBucket; +import org.oscim.renderer.bucket.MeshBucket; +import org.oscim.renderer.bucket.PolygonBucket; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.theme.IRenderTheme; import org.oscim.theme.RenderTheme; import org.oscim.theme.styles.AreaStyle; @@ -63,7 +63,7 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac protected MapElement mElement; /** current line layer (will be used for outline layers) */ - protected LineLayer mCurLineLayer; + protected LineBucket mCurLineLayer; /** Current layer for adding elements */ protected int mCurLayer; @@ -71,7 +71,7 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac /** Line-scale-factor depending on zoom and latitude */ protected float mLineScale = 1.0f; - protected ElementLayers mLayers; + protected RenderBuckets mLayers; private final VectorTileLayer mTileLayer; @@ -109,7 +109,7 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac /* scale line width relative to latitude + PI * thumb */ mLineScale *= 0.4f + 0.6f * ((float) Math.sin(Math.abs(lat) * (Math.PI / 180))); - mLayers = new ElementLayers(); + mLayers = new RenderBuckets(); tile.data = mLayers; try { @@ -244,7 +244,7 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac return; } - LineLayer ll = mLayers.getLineLayer(numLayer); + LineBucket ll = mLayers.getLineBucket(numLayer); if (ll.line == null) { ll.line = line; @@ -263,7 +263,7 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac mCurLineLayer = ll; } else { - LineTexLayer ll = mLayers.getLineTexLayer(numLayer); + LineTexBucket ll = mLayers.getLineTexBucket(numLayer); if (ll.line == null) { ll.line = line; @@ -287,11 +287,11 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac public void renderArea(AreaStyle area, int level) { int numLayer = mCurLayer + level; if (USE_MESH_POLY) { - MeshLayer l = mLayers.getMeshLayer(numLayer); + MeshBucket l = mLayers.getMeshBucket(numLayer); l.area = area; l.addMesh(mElement); } else { - PolygonLayer l = mLayers.getPolygonLayer(numLayer); + PolygonBucket l = mLayers.getPolygonBucket(numLayer); l.area = area; l.addPolygon(mElement.points, mElement.index); } diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/Debug.java b/vtm/src/org/oscim/layers/tile/vector/labeling/Debug.java index fa8c69ca..1c86eb5c 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/Debug.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/Debug.java @@ -19,38 +19,38 @@ package org.oscim.layers.tile.vector.labeling; import org.oscim.backend.canvas.Color; import org.oscim.core.MapPosition; import org.oscim.renderer.GLViewport; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.TextItem; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.RenderBuckets; +import org.oscim.renderer.bucket.TextItem; import org.oscim.theme.styles.LineStyle; class Debug { private final static float[] mDebugPoints = new float[8]; // TODO Auto-generated method stub - static ElementLayers dbg; + static RenderBuckets dbg; static void addDebugBox(Label l, TextItem ti, int overlaps, boolean prev, float scale) { - LineLayer ll; + LineBucket ll; if (prev) { if (overlaps == 1) - ll = dbg.getLineLayer(4); + ll = dbg.getLineBucket(4); else - ll = dbg.getLineLayer(5); + ll = dbg.getLineBucket(5); } else { if (ti.width > ti.length * scale) { - ll = dbg.getLineLayer(1); + ll = dbg.getLineBucket(1); overlaps = 3; } else if (overlaps == 1) - ll = dbg.getLineLayer(0); + ll = dbg.getLineBucket(0); else if (overlaps == 2) - ll = dbg.getLineLayer(3); + ll = dbg.getLineBucket(3); else - ll = dbg.getLineLayer(2); + ll = dbg.getLineBucket(2); } float[] points = mDebugPoints; float width = (ti.x2 - ti.x1) / 2f; @@ -67,19 +67,19 @@ class Debug { } } - static void addDebugLayers(ElementLayers dbg) { + static void addDebugLayers(RenderBuckets dbg) { int alpha = 0xaaffffff; dbg.clear(); - dbg.addLineLayer(0, new LineStyle((Color.BLUE & alpha), 2)); - dbg.addLineLayer(1, new LineStyle((Color.RED & alpha), 2)); - dbg.addLineLayer(3, new LineStyle((Color.YELLOW & alpha), 2)); - dbg.addLineLayer(2, new LineStyle((Color.GREEN & alpha), 2)); - dbg.addLineLayer(4, new LineStyle((Color.CYAN & alpha), 2)); - dbg.addLineLayer(5, new LineStyle((Color.MAGENTA & alpha), 2)); + dbg.addLineBucket(0, new LineStyle((Color.BLUE & alpha), 2)); + dbg.addLineBucket(1, new LineStyle((Color.RED & alpha), 2)); + dbg.addLineBucket(3, new LineStyle((Color.YELLOW & alpha), 2)); + dbg.addLineBucket(2, new LineStyle((Color.GREEN & alpha), 2)); + dbg.addLineBucket(4, new LineStyle((Color.CYAN & alpha), 2)); + dbg.addLineBucket(5, new LineStyle((Color.MAGENTA & alpha), 2)); } - public static void draw(MapPosition pos, GLViewport m, ElementLayers layers) { + public static void draw(MapPosition pos, GLViewport m, RenderBuckets layers) { // if (layers.baseLayers != null) { // //setMatrix(pos, m, true); // diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/Label.java b/vtm/src/org/oscim/layers/tile/vector/labeling/Label.java index 93feb93d..00efeda1 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/Label.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/Label.java @@ -16,7 +16,7 @@ */ package org.oscim.layers.tile.vector.labeling; -import org.oscim.renderer.elements.TextItem; +import org.oscim.renderer.bucket.TextItem; import org.oscim.utils.geom.OBB2D; final class Label extends TextItem { diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelPlacement.java b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelPlacement.java index 9bcc3e3e..5bd1c48c 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelPlacement.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelPlacement.java @@ -9,9 +9,9 @@ import org.oscim.layers.tile.MapTile; import org.oscim.layers.tile.TileRenderer; import org.oscim.layers.tile.TileSet; import org.oscim.map.Map; -import org.oscim.renderer.elements.SymbolItem; -import org.oscim.renderer.elements.SymbolLayer; -import org.oscim.renderer.elements.TextItem; +import org.oscim.renderer.bucket.SymbolBucket; +import org.oscim.renderer.bucket.SymbolItem; +import org.oscim.renderer.bucket.TextItem; import org.oscim.utils.FastMath; import org.oscim.utils.geom.OBB2D; @@ -322,7 +322,7 @@ public class LabelPlacement { int maxx = Tile.SIZE << (zoom - 1); // FIXME ??? - SymbolLayer sl = work.symbolLayer; + SymbolBucket sl = work.symbolLayer; sl.clearItems(); double tileX = (pos.x * (Tile.SIZE << zoom)); diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelPool.java b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelPool.java index b81d8505..179e1afc 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelPool.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelPool.java @@ -1,6 +1,6 @@ package org.oscim.layers.tile.vector.labeling; -import org.oscim.renderer.elements.TextItem; +import org.oscim.renderer.bucket.TextItem; import org.oscim.utils.pool.Pool; final class LabelPool extends Pool { diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTask.java b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTask.java index 19a5596f..3bc51be6 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTask.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTask.java @@ -1,23 +1,23 @@ package org.oscim.layers.tile.vector.labeling; import org.oscim.core.MapPosition; -import org.oscim.renderer.elements.SymbolLayer; -import org.oscim.renderer.elements.TextLayer; -import org.oscim.renderer.elements.TextureLayer; +import org.oscim.renderer.bucket.SymbolBucket; +import org.oscim.renderer.bucket.TextBucket; +import org.oscim.renderer.bucket.TextureBucket; final class LabelTask { - final TextureLayer layers; - final TextLayer textLayer; - final SymbolLayer symbolLayer; + final TextureBucket layers; + final TextBucket textLayer; + final SymbolBucket symbolLayer; final MapPosition pos; LabelTask() { pos = new MapPosition(); - symbolLayer = new SymbolLayer(); - textLayer = new TextLayer(); + symbolLayer = new SymbolBucket(); + textLayer = new TextBucket(); layers = symbolLayer; symbolLayer.next = textLayer; diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileData.java b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileData.java index 6d8fd1bb..37dcecf9 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileData.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileData.java @@ -1,8 +1,8 @@ package org.oscim.layers.tile.vector.labeling; import org.oscim.layers.tile.MapTile.TileData; -import org.oscim.renderer.elements.SymbolItem; -import org.oscim.renderer.elements.TextItem; +import org.oscim.renderer.bucket.SymbolItem; +import org.oscim.renderer.bucket.TextItem; public class LabelTileData extends TileData { public final List symbols = new List(); diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileLoaderHook.java b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileLoaderHook.java index 72322187..b30b8e31 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileLoaderHook.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileLoaderHook.java @@ -9,9 +9,9 @@ import org.oscim.core.MapElement; import org.oscim.core.PointF; import org.oscim.layers.tile.MapTile; import org.oscim.layers.tile.vector.VectorTileLayer.TileLoaderThemeHook; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.SymbolItem; -import org.oscim.renderer.elements.TextItem; +import org.oscim.renderer.bucket.RenderBuckets; +import org.oscim.renderer.bucket.SymbolItem; +import org.oscim.renderer.bucket.TextItem; import org.oscim.theme.styles.RenderStyle; import org.oscim.theme.styles.SymbolStyle; import org.oscim.theme.styles.TextStyle; @@ -31,7 +31,7 @@ public class LabelTileLoaderHook implements TileLoaderThemeHook { } @Override - public boolean render(MapTile tile, ElementLayers layers, MapElement element, + public boolean render(MapTile tile, RenderBuckets buckets, MapElement element, RenderStyle style, int level) { if (style instanceof TextStyle) { diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java b/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java index 072587ef..ad565852 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/TextRenderer.java @@ -31,15 +31,15 @@ package org.oscim.layers.tile.vector.labeling; // import org.oscim.layers.tile.vector.labeling.LabelLayer.Worker; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLState; import org.oscim.renderer.GLViewport; -import org.oscim.renderer.elements.RenderElement; -import org.oscim.renderer.elements.TextureLayer; +import org.oscim.renderer.bucket.RenderBucket; +import org.oscim.renderer.bucket.TextureBucket; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -class TextRenderer extends ElementRenderer { +class TextRenderer extends BucketRenderer { static final Logger log = LoggerFactory.getLogger(TextRenderer.class); static final boolean dbg = false; @@ -63,11 +63,11 @@ class TextRenderer extends ElementRenderer { } return; } - layers.clear(); + buckets.clear(); } // set new TextLayer to be uploaded and rendered - layers.setTextureLayers(t.layers); + buckets.setTextureBuckets(t.layers); mMapPosition = t.pos; compile(); } @@ -77,14 +77,14 @@ class TextRenderer extends ElementRenderer { GLState.test(false, false); //Debug.draw(pos, layers); - layers.vbo.bind(); + buckets.vbo.bind(); float scale = (float) (v.pos.scale / mMapPosition.scale); setMatrix(v, false); - for (RenderElement l = layers.getTextureLayers(); l != null;) - l = TextureLayer.Renderer.draw(layers, l, v, scale); + for (RenderBucket l = buckets.getTextureBuckets(); l != null;) + l = TextureBucket.Renderer.draw(buckets, l, v, scale); } } diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/WayDecorator.java b/vtm/src/org/oscim/layers/tile/vector/labeling/WayDecorator.java index f0802bff..23268503 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/WayDecorator.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/WayDecorator.java @@ -18,7 +18,7 @@ package org.oscim.layers.tile.vector.labeling; import org.oscim.core.Tile; -import org.oscim.renderer.elements.TextItem; +import org.oscim.renderer.bucket.TextItem; import org.oscim.theme.styles.TextStyle; import org.oscim.utils.geom.GeometryUtils; import org.oscim.utils.geom.LineClipper; diff --git a/vtm/src/org/oscim/layers/vector/AbstractVectorLayer.java b/vtm/src/org/oscim/layers/vector/AbstractVectorLayer.java index 26260434..0eecc25e 100644 --- a/vtm/src/org/oscim/layers/vector/AbstractVectorLayer.java +++ b/vtm/src/org/oscim/layers/vector/AbstractVectorLayer.java @@ -9,9 +9,9 @@ import org.oscim.layers.Layer; import org.oscim.map.Map; import org.oscim.map.Map.UpdateListener; import org.oscim.map.Viewport; -import org.oscim.renderer.ElementRenderer; +import org.oscim.renderer.BucketRenderer; import org.oscim.renderer.GLViewport; -import org.oscim.renderer.elements.ElementLayers; +import org.oscim.renderer.bucket.RenderBuckets; import org.oscim.utils.async.SimpleWorker; import org.oscim.utils.geom.TileClipper; import org.slf4j.Logger; @@ -64,7 +64,7 @@ public abstract class AbstractVectorLayer extends Layer implements UpdateList abstract protected void processFeatures(Task t, BoundingBox b); protected static class Task { - public final ElementLayers layers = new ElementLayers(); + public final RenderBuckets buckets = new RenderBuckets(); public final MapPosition position = new MapPosition(); } @@ -77,8 +77,8 @@ public abstract class AbstractVectorLayer extends Layer implements UpdateList /** automatically in sync with worker thread */ @Override public void cleanup(Task t) { - if (t.layers != null) - t.layers.clear(); + if (t.buckets != null) + t.buckets.clear(); } /** running on worker thread */ @@ -103,7 +103,7 @@ public abstract class AbstractVectorLayer extends Layer implements UpdateList } - public class Renderer extends ElementRenderer { + public class Renderer extends BucketRenderer { MapPosition mTmpPos = new MapPosition(); @Override @@ -117,7 +117,7 @@ public abstract class AbstractVectorLayer extends Layer implements UpdateList mMapPosition.copy(t.position); mMapPosition.setScale(mMapPosition.scale / UNSCALE_COORD); - layers.setFrom(t.layers); + buckets.setFrom(t.buckets); compile(); //log.debug("is ready " + isReady() + " " + layers.getSize()); diff --git a/vtm/src/org/oscim/renderer/BitmapRenderer.java b/vtm/src/org/oscim/renderer/BitmapRenderer.java index 76e46399..238cfb71 100644 --- a/vtm/src/org/oscim/renderer/BitmapRenderer.java +++ b/vtm/src/org/oscim/renderer/BitmapRenderer.java @@ -17,14 +17,14 @@ package org.oscim.renderer; import org.oscim.backend.canvas.Bitmap; -import org.oscim.renderer.elements.BitmapLayer; +import org.oscim.renderer.bucket.BitmapBucket; /** * RenderLayer to draw a custom Bitmap. * NOTE: Only modify the Bitmap within a synchronized block! * synchronized(bitmap){} Then call updateBitmap(). */ -public class BitmapRenderer extends ElementRenderer { +public class BitmapRenderer extends BucketRenderer { private Bitmap mBitmap; private int mWidth; @@ -56,11 +56,11 @@ public class BitmapRenderer extends ElementRenderer { @Override protected synchronized void update(GLViewport v) { if (!initialized) { - layers.clear(); + buckets.clear(); - BitmapLayer l = new BitmapLayer(true); + BitmapBucket l = new BitmapBucket(true); l.setBitmap(mBitmap, mWidth, mHeight); - layers.setTextureLayers(l); + buckets.setTextureBuckets(l); mUpdateBitmap = true; } @@ -84,6 +84,6 @@ public class BitmapRenderer extends ElementRenderer { @Override protected synchronized void render(GLViewport v) { v.useScreenCoordinates(false, 8); - BitmapLayer.Renderer.draw(layers.getTextureLayers(), v, 1, 1); + BitmapBucket.Renderer.draw(buckets.getTextureBuckets(), v, 1, 1); } } diff --git a/vtm/src/org/oscim/renderer/ElementRenderer.java b/vtm/src/org/oscim/renderer/BucketRenderer.java similarity index 58% rename from vtm/src/org/oscim/renderer/ElementRenderer.java rename to vtm/src/org/oscim/renderer/BucketRenderer.java index a337a441..63bd7dfb 100644 --- a/vtm/src/org/oscim/renderer/ElementRenderer.java +++ b/vtm/src/org/oscim/renderer/BucketRenderer.java @@ -16,35 +16,35 @@ */ package org.oscim.renderer; -import static org.oscim.renderer.elements.RenderElement.BITMAP; -import static org.oscim.renderer.elements.RenderElement.LINE; -import static org.oscim.renderer.elements.RenderElement.MESH; -import static org.oscim.renderer.elements.RenderElement.POLYGON; -import static org.oscim.renderer.elements.RenderElement.SYMBOL; -import static org.oscim.renderer.elements.RenderElement.TEXLINE; +import static org.oscim.renderer.bucket.RenderBucket.BITMAP; +import static org.oscim.renderer.bucket.RenderBucket.LINE; +import static org.oscim.renderer.bucket.RenderBucket.MESH; +import static org.oscim.renderer.bucket.RenderBucket.POLYGON; +import static org.oscim.renderer.bucket.RenderBucket.SYMBOL; +import static org.oscim.renderer.bucket.RenderBucket.TEXLINE; import org.oscim.core.MapPosition; import org.oscim.core.Tile; -import org.oscim.renderer.elements.BitmapLayer; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.HairLineLayer; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.LineTexLayer; -import org.oscim.renderer.elements.MeshLayer; -import org.oscim.renderer.elements.PolygonLayer; -import org.oscim.renderer.elements.RenderElement; -import org.oscim.renderer.elements.TextureLayer; +import org.oscim.renderer.bucket.BitmapBucket; +import org.oscim.renderer.bucket.HairLineBucket; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.LineTexBucket; +import org.oscim.renderer.bucket.MeshBucket; +import org.oscim.renderer.bucket.PolygonBucket; +import org.oscim.renderer.bucket.RenderBucket; +import org.oscim.renderer.bucket.RenderBuckets; +import org.oscim.renderer.bucket.TextureBucket; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Base class to use the renderer.elements for drawing. * - * All methods that modify 'layers' MUST be synchronized! + * All methods that modify 'buckets' MUST be synchronized! */ -public abstract class ElementRenderer extends LayerRenderer { +public abstract class BucketRenderer extends LayerRenderer { - public static final Logger log = LoggerFactory.getLogger(ElementRenderer.class); + public static final Logger log = LoggerFactory.getLogger(BucketRenderer.class); /** * Use mMapPosition.copy(position) to keep the position for which @@ -56,11 +56,11 @@ public abstract class ElementRenderer extends LayerRenderer { /** Wrap around dateline */ protected boolean mFlipOnDateLine = true; - /** Layer data for rendering */ - public final ElementLayers layers; + /** Buckets for rendering */ + public final RenderBuckets buckets; - public ElementRenderer() { - layers = new ElementLayers(); + public BucketRenderer() { + buckets = new RenderBuckets(); mMapPosition = new MapPosition(); } @@ -71,70 +71,70 @@ public abstract class ElementRenderer extends LayerRenderer { protected synchronized void render(GLViewport v) { MapPosition layerPos = mMapPosition; - layers.bind(); + buckets.bind(); GLState.test(false, false); GLState.blend(true); float div = (float) (v.pos.scale / layerPos.scale); - RenderElement l = layers.getBaseLayers(); + RenderBucket b = buckets.getBaseBuckets(); - if (l != null) + if (b != null) setMatrix(v, true); - while (l != null) { - if (l.type == POLYGON) { - l = PolygonLayer.Renderer.draw(l, v, 1, true); + while (b != null) { + if (b.type == POLYGON) { + b = PolygonBucket.Renderer.draw(b, v, 1, true); continue; } - if (l.type == LINE) { - l = LineLayer.Renderer.draw(l, v, div, layers); + if (b.type == LINE) { + b = LineBucket.Renderer.draw(b, v, div, buckets); continue; } - if (l.type == TEXLINE) { - l = LineTexLayer.Renderer.draw(l, v, div, layers); + if (b.type == TEXLINE) { + b = LineTexBucket.Renderer.draw(b, v, div, buckets); // rebind - layers.ibo.bind(); + buckets.ibo.bind(); continue; } - if (l.type == MESH) { - l = MeshLayer.Renderer.draw(l, v); + if (b.type == MESH) { + b = MeshBucket.Renderer.draw(b, v); continue; } - if (l.type == RenderElement.HAIRLINE) { - l = HairLineLayer.Renderer.draw(l, v); + if (b.type == RenderBucket.HAIRLINE) { + b = HairLineBucket.Renderer.draw(b, v); continue; } - log.error("invalid layer {}", l.type); + log.error("invalid bucket {}", b.type); break; } - l = layers.getTextureLayers(); - if (l != null) + b = buckets.getTextureBuckets(); + if (b != null) setMatrix(v, false); - while (l != null) { - if (l.type == BITMAP) { - l = BitmapLayer.Renderer.draw(l, v, 1, 1); + while (b != null) { + if (b.type == BITMAP) { + b = BitmapBucket.Renderer.draw(b, v, 1, 1); continue; } - if (l.type == SYMBOL) { - l = TextureLayer.Renderer.draw(layers, l, v, div); + if (b.type == SYMBOL) { + b = TextureBucket.Renderer.draw(buckets, b, v, div); continue; } - log.error("invalid layer {}", l.type); + log.error("invalid bucket {}", b.type); break; } } /** - * Compile all layers into one BufferObject. Sets renderer to be ready - * when successful. When no data is available (layer.countVboSize() == 0) - * then BufferObject will be released and layers will not be rendered. + * Compile all buckets into one BufferObject. Sets renderer to be ready + * when successful. When no data is available (buckets.countVboSize() == 0) + * then BufferObject will be released and buckets will not be rendered. */ protected synchronized void compile() { - boolean ok = layers.compile(true); + boolean ok = buckets.compile(true); setReady(ok); } diff --git a/vtm/src/org/oscim/renderer/ExtrusionRenderer.java b/vtm/src/org/oscim/renderer/ExtrusionRenderer.java index d9a35a1b..2ba33ba3 100644 --- a/vtm/src/org/oscim/renderer/ExtrusionRenderer.java +++ b/vtm/src/org/oscim/renderer/ExtrusionRenderer.java @@ -18,8 +18,8 @@ package org.oscim.renderer; import org.oscim.backend.GL20; import org.oscim.core.Tile; -import org.oscim.renderer.elements.ExtrusionLayer; -import org.oscim.renderer.elements.ExtrusionLayers; +import org.oscim.renderer.bucket.ExtrusionBucket; +import org.oscim.renderer.bucket.ExtrusionBuckets; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,7 +30,7 @@ public abstract class ExtrusionRenderer extends LayerRenderer { private final int mMode; private Shader mShader; - protected ExtrusionLayers[] mExtrusionLayerSet; + protected ExtrusionBuckets[] mExtrusionLayerSet; protected int mExtrusionLayerCnt; protected float mAlpha = 1; @@ -65,9 +65,9 @@ public abstract class ExtrusionRenderer extends LayerRenderer { return true; } - private void renderCombined(int vertexPointer, ExtrusionLayers els) { + private void renderCombined(int vertexPointer, ExtrusionBuckets els) { - for (ExtrusionLayer el = els.layers; el != null; el = el.next()) { + for (ExtrusionBucket el = els.layers; el != null; el = el.next()) { GL.glVertexAttribPointer(vertexPointer, 3, GL20.GL_SHORT, false, 8, 0); @@ -105,7 +105,7 @@ public abstract class ExtrusionRenderer extends LayerRenderer { GL.glDepthFunc(GL20.GL_LESS); GL.glUniform1f(s.uAlpha, mAlpha); - ExtrusionLayers[] els = mExtrusionLayerSet; + ExtrusionBuckets[] els = mExtrusionLayerSet; if (mTranslucent) { /* only draw to depth buffer */ @@ -150,7 +150,7 @@ public abstract class ExtrusionRenderer extends LayerRenderer { v.mvp.setAsUniform(s.uMVP); } - ExtrusionLayer el = els[i].getLayers(); + ExtrusionBucket el = els[i].getLayers(); for (; el != null; el = el.next()) { if (el.colors != currentColor) { @@ -243,7 +243,7 @@ public abstract class ExtrusionRenderer extends LayerRenderer { GL.glBindBuffer(GL20.GL_ELEMENT_ARRAY_BUFFER, 0); } - private static void setMatrix(GLViewport v, ExtrusionLayers l, boolean offset) { + private static void setMatrix(GLViewport v, ExtrusionBuckets l, boolean offset) { int z = l.zoomLevel; double curScale = Tile.SIZE * v.pos.scale; diff --git a/vtm/src/org/oscim/renderer/GridRenderer.java b/vtm/src/org/oscim/renderer/GridRenderer.java index 12853c6c..0feb8979 100644 --- a/vtm/src/org/oscim/renderer/GridRenderer.java +++ b/vtm/src/org/oscim/renderer/GridRenderer.java @@ -20,17 +20,17 @@ import org.oscim.backend.canvas.Color; import org.oscim.backend.canvas.Paint.Cap; import org.oscim.core.GeometryBuffer; import org.oscim.core.Tile; -import org.oscim.renderer.elements.LineLayer; -import org.oscim.renderer.elements.TextItem; -import org.oscim.renderer.elements.TextLayer; +import org.oscim.renderer.bucket.LineBucket; +import org.oscim.renderer.bucket.TextBucket; +import org.oscim.renderer.bucket.TextItem; import org.oscim.theme.styles.LineStyle; import org.oscim.theme.styles.TextStyle; import org.oscim.theme.styles.TextStyle.TextBuilder; -public class GridRenderer extends ElementRenderer { - private final TextLayer mTextLayer; +public class GridRenderer extends BucketRenderer { + private final TextBucket mTextBucket; private final TextStyle mText; - private final LineLayer mLineLayer; + private final LineBucket mLineBucket; private final GeometryBuffer mLines; private final StringBuilder mStringBuffer; @@ -67,14 +67,13 @@ public class GridRenderer extends ElementRenderer { mText = textStyle; - if (mText != null) { - mTextLayer = layers.addTextLayer(new TextLayer()); - } else { - mTextLayer = null; - } + if (mText != null) + mTextBucket = buckets.addTextBucket(new TextBucket()); + else + mTextBucket = null; - mLineLayer = layers.addLineLayer(0, lineStyle); - mLineLayer.addLine(mLines); + mLineBucket = buckets.addLineBucket(0, lineStyle); + mLineBucket.addLine(mLines); mStringBuffer = new StringBuilder(32); } @@ -82,7 +81,7 @@ public class GridRenderer extends ElementRenderer { private void addLabels(int x, int y, int z) { int s = Tile.SIZE; - TextLayer tl = mTextLayer; + TextBucket tl = mTextBucket; tl.clear(); StringBuilder sb = mStringBuffer; @@ -133,11 +132,11 @@ public class GridRenderer extends ElementRenderer { if (mText != null) { addLabels(x, y, v.pos.zoomLevel); - layers.setBaseLayers(mLineLayer); - mLineLayer.addLine(mLines); + buckets.setBaseBuckets(mLineBucket); + mLineBucket.addLine(mLines); compile(); - } else if (layers.vbo == null) { + } else if (buckets.vbo == null) { compile(); } } diff --git a/vtm/src/org/oscim/renderer/MapRenderer.java b/vtm/src/org/oscim/renderer/MapRenderer.java index dba15975..120b5714 100644 --- a/vtm/src/org/oscim/renderer/MapRenderer.java +++ b/vtm/src/org/oscim/renderer/MapRenderer.java @@ -24,9 +24,9 @@ import org.oscim.backend.GL20; import org.oscim.backend.GLAdapter; import org.oscim.backend.canvas.Color; import org.oscim.map.Map; -import org.oscim.renderer.elements.ElementLayers; -import org.oscim.renderer.elements.TextureItem; -import org.oscim.renderer.elements.TextureLayer; +import org.oscim.renderer.bucket.RenderBuckets; +import org.oscim.renderer.bucket.TextureBucket; +import org.oscim.renderer.bucket.TextureItem; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -165,7 +165,7 @@ public class MapRenderer { int[] vboIds = GLUtils.glGenBuffers(2); mQuadIndicesID = vboIds[0]; - int maxIndices = maxQuads * TextureLayer.INDICES_PER_SPRITE; + int maxIndices = maxQuads * TextureBucket.INDICES_PER_SPRITE; short[] indices = new short[maxIndices]; for (int i = 0, j = 0; i < maxIndices; i += 6, j += 4) { indices[i + 0] = (short) (j + 0); @@ -225,7 +225,7 @@ public class MapRenderer { BufferObject.init(GL, 200); // classes that require GL context for initialization - ElementLayers.initRenderer(GL); + RenderBuckets.initRenderer(GL); LayerRenderer.init(GL); mNewSurface = true; diff --git a/vtm/src/org/oscim/renderer/atlas/TextureAtlas.java b/vtm/src/org/oscim/renderer/atlas/TextureAtlas.java index b81e95eb..482f7320 100644 --- a/vtm/src/org/oscim/renderer/atlas/TextureAtlas.java +++ b/vtm/src/org/oscim/renderer/atlas/TextureAtlas.java @@ -64,7 +64,7 @@ package org.oscim.renderer.atlas; import java.util.HashMap; import org.oscim.backend.canvas.Bitmap; -import org.oscim.renderer.elements.TextureItem; +import org.oscim.renderer.bucket.TextureItem; import org.oscim.utils.pool.Inlist; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/vtm/src/org/oscim/renderer/atlas/TextureRegion.java b/vtm/src/org/oscim/renderer/atlas/TextureRegion.java index fd37f7f2..ed5fcb9d 100644 --- a/vtm/src/org/oscim/renderer/atlas/TextureRegion.java +++ b/vtm/src/org/oscim/renderer/atlas/TextureRegion.java @@ -17,7 +17,7 @@ package org.oscim.renderer.atlas; import org.oscim.renderer.atlas.TextureAtlas.Rect; -import org.oscim.renderer.elements.TextureItem; +import org.oscim.renderer.bucket.TextureItem; public class TextureRegion { diff --git a/vtm/src/org/oscim/renderer/elements/BitmapLayer.java b/vtm/src/org/oscim/renderer/bucket/BitmapBucket.java similarity index 93% rename from vtm/src/org/oscim/renderer/elements/BitmapLayer.java rename to vtm/src/org/oscim/renderer/bucket/BitmapBucket.java index 7fe49ca7..53134b39 100644 --- a/vtm/src/org/oscim/renderer/elements/BitmapLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/BitmapBucket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import java.nio.ShortBuffer; @@ -24,12 +24,12 @@ import org.oscim.renderer.GLShader; import org.oscim.renderer.GLState; import org.oscim.renderer.GLViewport; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.TextureItem.TexturePool; +import org.oscim.renderer.bucket.TextureItem.TexturePool; /** * Renderer for a single bitmap, width and height must be power of 2. */ -public class BitmapLayer extends TextureLayer { +public class BitmapBucket extends TextureBucket { // TODO share layers.vbo() between BitmapTileLayers // static final Logger log = LoggerFactory.getLogger(BitmapLayer.class); @@ -42,8 +42,8 @@ public class BitmapLayer extends TextureLayer { * @param reuseBitmap false if the Bitmap should be disposed * after loading to texture. */ - public BitmapLayer(boolean reuseBitmap) { - super(RenderElement.BITMAP); + public BitmapBucket(boolean reuseBitmap) { + super(RenderBucket.BITMAP); mReuseBitmap = reuseBitmap; mVertices = new short[24]; @@ -75,7 +75,7 @@ public class BitmapLayer extends TextureLayer { } TextureItem t = textures; - t.indices = TextureLayer.INDICES_PER_SPRITE; + t.indices = TextureBucket.INDICES_PER_SPRITE; } private void setVertices(ShortBuffer vboData) { @@ -192,14 +192,14 @@ public class BitmapLayer extends TextureLayer { shader = new Shader("texture_alpha"); } - public static RenderElement draw(RenderElement renderElement, GLViewport v, + public static RenderBucket draw(RenderBucket renderElement, GLViewport v, float scale, float alpha) { GLState.blend(true); Shader s = shader; s.useProgram(); - TextureLayer tl = (TextureLayer) renderElement; + TextureBucket tl = (TextureBucket) renderElement; GL.glUniform1f(s.uAlpha, alpha); v.mvp.setAsUniform(s.uMVP); diff --git a/vtm/src/org/oscim/renderer/elements/ExtrusionLayer.java b/vtm/src/org/oscim/renderer/bucket/ExtrusionBucket.java similarity index 97% rename from vtm/src/org/oscim/renderer/elements/ExtrusionLayer.java rename to vtm/src/org/oscim/renderer/bucket/ExtrusionBucket.java index 7cb38cf0..760d9955 100644 --- a/vtm/src/org/oscim/renderer/elements/ExtrusionLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/ExtrusionBucket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import java.nio.ShortBuffer; @@ -33,8 +33,8 @@ import org.oscim.utils.pool.Pool; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ExtrusionLayer extends RenderElement { - static final Logger log = LoggerFactory.getLogger(ExtrusionLayer.class); +public class ExtrusionBucket extends RenderBucket { + static final Logger log = LoggerFactory.getLogger(ExtrusionBucket.class); private static final float S = MapRenderer.COORD_SCALE; @@ -68,8 +68,8 @@ public class ExtrusionLayer extends RenderElement { /** * ExtrusionLayer for polygon geometries. */ - public ExtrusionLayer(int level, float groundResolution, float[] colors) { - super(RenderElement.EXTRUSION); + public ExtrusionBucket(int level, float groundResolution, float[] colors) { + super(RenderBucket.EXTRUSION); this.level = level; this.colors = colors; this.color = 0; @@ -87,8 +87,8 @@ public class ExtrusionLayer extends RenderElement { /** * ExtrusionLayer for triangle geometries. */ - public ExtrusionLayer(int level, float groundResolution, int color) { - super(RenderElement.EXTRUSION); + public ExtrusionBucket(int level, float groundResolution, int color) { + super(RenderBucket.EXTRUSION); this.level = level; this.color = color; @@ -620,7 +620,7 @@ public class ExtrusionLayer extends RenderElement { } } - public ExtrusionLayer next() { - return (ExtrusionLayer) next; + public ExtrusionBucket next() { + return (ExtrusionBucket) next; } } diff --git a/vtm/src/org/oscim/renderer/elements/ExtrusionLayers.java b/vtm/src/org/oscim/renderer/bucket/ExtrusionBuckets.java similarity index 77% rename from vtm/src/org/oscim/renderer/elements/ExtrusionLayers.java rename to vtm/src/org/oscim/renderer/bucket/ExtrusionBuckets.java index 59298801..cbf35981 100644 --- a/vtm/src/org/oscim/renderer/elements/ExtrusionLayers.java +++ b/vtm/src/org/oscim/renderer/bucket/ExtrusionBuckets.java @@ -1,4 +1,4 @@ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import java.nio.ShortBuffer; @@ -10,10 +10,10 @@ import org.oscim.renderer.MapRenderer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ExtrusionLayers extends TileData { - static final Logger log = LoggerFactory.getLogger(ExtrusionLayers.class); +public class ExtrusionBuckets extends TileData { + static final Logger log = LoggerFactory.getLogger(ExtrusionBuckets.class); - public ExtrusionLayer layers; + public ExtrusionBucket layers; public boolean compiled; @@ -25,7 +25,7 @@ public class ExtrusionLayers extends TileData { public BufferObject ibo; public BufferObject vbo; - public ExtrusionLayers(MapTile tile) { + public ExtrusionBuckets(MapTile tile) { zoomLevel = tile.zoomLevel; x = tile.x; y = tile.y; @@ -34,14 +34,14 @@ public class ExtrusionLayers extends TileData { /** * Set new ExtrusionLayers and clear previous. */ - public void setLayers(ExtrusionLayer el) { - for (RenderElement l = layers; l != null; l = l.next) + public void setLayers(ExtrusionBucket el) { + for (RenderBucket l = layers; l != null; l = l.next) l.clear(); layers = el; } - public ExtrusionLayer getLayers() { + public ExtrusionBucket getLayers() { return layers; } @@ -57,7 +57,7 @@ public class ExtrusionLayers extends TileData { } public void prepare() { - for (RenderElement l = layers; l != null; l = l.next) + for (RenderBucket l = layers; l != null; l = l.next) l.prepare(); } @@ -69,7 +69,7 @@ public class ExtrusionLayers extends TileData { int sumIndices = 0; int sumVertices = 0; - for (ExtrusionLayer l = layers; l != null; l = l.next()) { + for (ExtrusionBucket l = layers; l != null; l = l.next()) { sumIndices += l.numIndices; sumVertices += l.numVertices; } @@ -79,7 +79,7 @@ public class ExtrusionLayers extends TileData { ShortBuffer vboData = MapRenderer.getShortBuffer(sumVertices * 4); ShortBuffer iboData = MapRenderer.getShortBuffer(sumIndices); - for (ExtrusionLayer l = layers; l != null; l = l.next()) { + for (ExtrusionBucket l = layers; l != null; l = l.next()) { l.compile(vboData, iboData); } int size = sumIndices * 2; diff --git a/vtm/src/org/oscim/renderer/elements/HairLineLayer.java b/vtm/src/org/oscim/renderer/bucket/HairLineBucket.java similarity index 89% rename from vtm/src/org/oscim/renderer/elements/HairLineLayer.java rename to vtm/src/org/oscim/renderer/bucket/HairLineBucket.java index b2be922a..26361105 100644 --- a/vtm/src/org/oscim/renderer/elements/HairLineLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/HairLineBucket.java @@ -1,4 +1,4 @@ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import static org.oscim.backend.GL20.GL_LINES; import static org.oscim.backend.GL20.GL_SHORT; @@ -14,13 +14,13 @@ import org.oscim.theme.styles.LineStyle; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class HairLineLayer extends RenderElement { - static final Logger log = LoggerFactory.getLogger(HairLineLayer.class); +public class HairLineBucket extends RenderBucket { + static final Logger log = LoggerFactory.getLogger(HairLineBucket.class); public LineStyle line; - public HairLineLayer(int level) { - super(RenderElement.HAIRLINE); + public HairLineBucket(int level) { + super(RenderBucket.HAIRLINE); this.level = level; } @@ -112,7 +112,7 @@ public class HairLineLayer extends RenderElement { } } - public static RenderElement draw(RenderElement l, GLViewport v) { + public static RenderBucket draw(RenderBucket l, GLViewport v) { GLState.blend(true); Shader s = shader; @@ -120,7 +120,7 @@ public class HairLineLayer extends RenderElement { s.set(v); for (; l != null && l.type == HAIRLINE; l = l.next) { - HairLineLayer ll = (HairLineLayer) l; + HairLineBucket ll = (HairLineBucket) l; GLUtils.setColor(s.uColor, ll.line.color, 1); diff --git a/vtm/src/org/oscim/renderer/elements/LineLayer.java b/vtm/src/org/oscim/renderer/bucket/LineBucket.java similarity index 95% rename from vtm/src/org/oscim/renderer/elements/LineLayer.java rename to vtm/src/org/oscim/renderer/bucket/LineBucket.java index 0ac90fea..0f0baf35 100644 --- a/vtm/src/org/oscim/renderer/elements/LineLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/LineBucket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import org.oscim.backend.GL20; import org.oscim.backend.GLAdapter; @@ -36,8 +36,8 @@ import org.slf4j.LoggerFactory; * resolution for coordinates is 0.25 as points will be converted * to fixed point values. */ -public final class LineLayer extends RenderElement { - static final Logger log = LoggerFactory.getLogger(LineLayer.class); +public final class LineBucket extends RenderBucket { + static final Logger log = LoggerFactory.getLogger(LineBucket.class); private static final float COORD_SCALE = MapRenderer.COORD_SCALE; /** scale factor mapping extrusion vector to short values */ @@ -59,7 +59,7 @@ public final class LineLayer extends RenderElement { private static final int DIR_MASK = 0xFFFFFFFC; /* lines referenced by this outline layer */ - public LineLayer outlines; + public LineBucket outlines; public LineStyle line; public float scale = 1; @@ -70,13 +70,13 @@ public final class LineLayer extends RenderElement { private int tmin = Integer.MIN_VALUE, tmax = Integer.MAX_VALUE; - LineLayer(int layer) { - super(RenderElement.LINE); + public LineBucket(int layer) { + super(RenderBucket.LINE); this.level = layer; } - public void addOutline(LineLayer link) { - for (LineLayer l = outlines; l != null; l = l.outlines) + public void addOutline(LineBucket link) { + for (LineBucket l = outlines; l != null; l = l.outlines) if (link == l) return; @@ -526,7 +526,7 @@ public final class LineLayer extends RenderElement { /* factor to normalize extrusion vector and scale to coord scale */ private final static float COORD_SCALE_BY_DIR_SCALE = - MapRenderer.COORD_SCALE / LineLayer.DIR_SCALE; + MapRenderer.COORD_SCALE / LineBucket.DIR_SCALE; private final static int CAP_THIN = 0; private final static int CAP_BUTT = 1; @@ -565,8 +565,8 @@ public final class LineLayer extends RenderElement { return true; } - public static RenderElement draw(RenderElement curLayer, GLViewport v, - float scale, ElementLayers layers) { + public static RenderBucket draw(RenderBucket curLayer, GLViewport v, + float scale, RenderBuckets buckets) { if (curLayer == null) return null; @@ -578,7 +578,6 @@ public final class LineLayer extends RenderElement { Shader s = shaders[mode]; s.useProgram(); - //GLState.useProgram(lineProgram[mode]); GLState.blend(true); /* Somehow we loose the texture after an indefinite @@ -595,7 +594,7 @@ public final class LineLayer extends RenderElement { int uLineHeight = s.uHeight; GL.glVertexAttribPointer(s.aPos, 4, GL20.GL_SHORT, - false, 0, layers.offset[LINE]); + false, 0, buckets.offset[LINE]); v.mvp.setAsUniform(s.uMVP); @@ -620,9 +619,9 @@ public final class LineLayer extends RenderElement { float heightOffset = 0; GL.glUniform1f(uLineHeight, heightOffset); - RenderElement l = curLayer; - for (; l != null && l.type == RenderElement.LINE; l = l.next) { - LineLayer ll = (LineLayer) l; + RenderBucket l = curLayer; + for (; l != null && l.type == RenderBucket.LINE; l = l.next) { + LineBucket ll = (LineBucket) l; LineStyle line = ll.line.current(); if (ll.heightOffset != heightOffset) { @@ -693,7 +692,7 @@ public final class LineLayer extends RenderElement { /* draw LineLayers references by this outline */ - for (LineLayer ref = ll.outlines; ref != null; ref = ref.outlines) { + for (LineBucket ref = ll.outlines; ref != null; ref = ref.outlines) { LineStyle core = ref.line.current(); // core width diff --git a/vtm/src/org/oscim/renderer/elements/LineTexLayer.java b/vtm/src/org/oscim/renderer/bucket/LineTexBucket.java similarity index 96% rename from vtm/src/org/oscim/renderer/elements/LineTexLayer.java rename to vtm/src/org/oscim/renderer/bucket/LineTexBucket.java index 9d021052..2c0277d0 100644 --- a/vtm/src/org/oscim/renderer/elements/LineTexLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/LineTexBucket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -76,9 +76,9 @@ import org.slf4j.LoggerFactory; * - in our case there is always the polygon fill array at start * - see addLine hack otherwise. */ -public final class LineTexLayer extends RenderElement { +public final class LineTexBucket extends RenderBucket { - static final Logger log = LoggerFactory.getLogger(LineTexLayer.class); + static final Logger log = LoggerFactory.getLogger(LineTexBucket.class); private static final float COORD_SCALE = MapRenderer.COORD_SCALE; /* scale factor mapping extrusion vector to short values */ @@ -94,7 +94,7 @@ public final class LineTexLayer extends RenderElement { protected boolean mRandomizeOffset = true; - LineTexLayer(int layer) { + LineTexBucket(int layer) { super(TEXLINE); this.level = layer; @@ -261,7 +261,7 @@ public final class LineTexLayer extends RenderElement { /* factor to normalize extrusion vector and scale to coord scale */ private final static float COORD_SCALE_BY_DIR_SCALE = - MapRenderer.COORD_SCALE / LineLayer.DIR_SCALE; + MapRenderer.COORD_SCALE / LineBucket.DIR_SCALE; private static int mVertexFlipID; @@ -299,8 +299,8 @@ public final class LineTexLayer extends RenderElement { private final static int STRIDE = 12; private final static int LEN_OFFSET = 8; - public static RenderElement draw(RenderElement curLayer, GLViewport v, - float div, ElementLayers layers) { + public static RenderBucket draw(RenderBucket curLayer, GLViewport v, + float div, RenderBuckets layers) { //if (shader == 0) // return curLayer.next; @@ -341,9 +341,9 @@ public final class LineTexLayer extends RenderElement { //GL.glBindTexture(GL20.GL_TEXTURE_2D, mTexID[0]); - RenderElement l = curLayer; + RenderBucket l = curLayer; for (; l != null && l.type == TEXLINE; l = l.next) { - LineTexLayer ll = (LineTexLayer) l; + LineTexBucket ll = (LineTexBucket) l; LineStyle line = ll.line.current(); GLUtils.setColor(shader.uColor, line.stippleColor, 1); diff --git a/vtm/src/org/oscim/renderer/elements/MeshLayer.java b/vtm/src/org/oscim/renderer/bucket/MeshBucket.java similarity index 92% rename from vtm/src/org/oscim/renderer/elements/MeshLayer.java rename to vtm/src/org/oscim/renderer/bucket/MeshBucket.java index c4300315..e82345dc 100644 --- a/vtm/src/org/oscim/renderer/elements/MeshLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/MeshBucket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import static org.oscim.backend.GL20.GL_LINES; import static org.oscim.backend.GL20.GL_SHORT; @@ -29,15 +29,15 @@ import org.oscim.renderer.GLState; import org.oscim.renderer.GLUtils; import org.oscim.renderer.GLViewport; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.VertexData.Chunk; +import org.oscim.renderer.bucket.VertexData.Chunk; import org.oscim.theme.styles.AreaStyle; import org.oscim.utils.ColorUtil; import org.oscim.utils.TessJNI; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class MeshLayer extends RenderElement { - static final Logger log = LoggerFactory.getLogger(MeshLayer.class); +public class MeshBucket extends RenderBucket { + static final Logger log = LoggerFactory.getLogger(MeshBucket.class); static final boolean dbgRender = false; public AreaStyle area; @@ -45,8 +45,8 @@ public class MeshLayer extends RenderElement { TessJNI tess = new TessJNI(8); - public MeshLayer(int level) { - super(RenderElement.MESH); + public MeshBucket(int level) { + super(RenderBucket.MESH); this.level = level; } @@ -127,7 +127,7 @@ public class MeshLayer extends RenderElement { } } - public static RenderElement draw(RenderElement l, GLViewport v) { + public static RenderBucket draw(RenderBucket l, GLViewport v) { GLState.blend(true); Shader s = shader; @@ -141,7 +141,7 @@ public class MeshLayer extends RenderElement { GL.glUniform1f(s.uHeight, heightOffset); for (; l != null && l.type == MESH; l = l.next) { - MeshLayer ml = (MeshLayer) l; + MeshBucket ml = (MeshBucket) l; //if (ml.indicesVbo == null) // continue; diff --git a/vtm/src/org/oscim/renderer/elements/PolygonLayer.java b/vtm/src/org/oscim/renderer/bucket/PolygonBucket.java similarity index 94% rename from vtm/src/org/oscim/renderer/elements/PolygonLayer.java rename to vtm/src/org/oscim/renderer/bucket/PolygonBucket.java index 4f22d504..170eb3bc 100644 --- a/vtm/src/org/oscim/renderer/elements/PolygonLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/PolygonBucket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import static org.oscim.backend.GL20.GL_ALWAYS; import static org.oscim.backend.GL20.GL_EQUAL; @@ -48,9 +48,9 @@ import org.slf4j.LoggerFactory; /** * Special Renderer for drawing tile polygons using the stencil buffer method */ -public final class PolygonLayer extends RenderElement { +public final class PolygonBucket extends RenderBucket { - static final Logger log = LoggerFactory.getLogger(PolygonLayer.class); + static final Logger log = LoggerFactory.getLogger(PolygonBucket.class); public final static int CLIP_STENCIL = 1; public final static int CLIP_DEPTH = 2; @@ -62,8 +62,8 @@ public final class PolygonLayer extends RenderElement { public AreaStyle area; - PolygonLayer(int layer) { - super(RenderElement.POLYGON); + PolygonBucket(int layer) { + super(RenderBucket.POLYGON); level = layer; } @@ -183,7 +183,7 @@ public final class PolygonLayer extends RenderElement { private static final float FADE_START = 1.3f; - private static PolygonLayer[] mAreaLayer; + private static PolygonBucket[] mAreaLayer; private static Shader polyShader; private static Shader texShader; @@ -192,7 +192,7 @@ public final class PolygonLayer extends RenderElement { polyShader = new Shader("base_shader"); texShader = new Shader("polygon_layer_tex"); - mAreaLayer = new PolygonLayer[STENCIL_BITS]; + mAreaLayer = new PolygonBucket[STENCIL_BITS]; return true; } @@ -208,7 +208,7 @@ public final class PolygonLayer extends RenderElement { Shader s; for (int i = start; i < end; i++) { - PolygonLayer l = mAreaLayer[i]; + PolygonBucket l = mAreaLayer[i]; AreaStyle a = l.area.current(); boolean useTexture = enableTexture && a.texture != null; @@ -271,17 +271,17 @@ public final class PolygonLayer extends RenderElement { GLState.blend(true); - HairLineLayer.Renderer.shader.set(v); + HairLineBucket.Renderer.shader.set(v); - GLUtils.setColor(HairLineLayer.Renderer.shader.uColor, + GLUtils.setColor(HairLineBucket.Renderer.shader.uColor, l.area.strokeColor, 1); - GL.glVertexAttribPointer(HairLineLayer.Renderer.shader.aPos, + GL.glVertexAttribPointer(HairLineBucket.Renderer.shader.aPos, 2, GL_SHORT, false, 0, // 4 bytes per vertex l.vertexOffset << 2); - GL.glUniform1f(HairLineLayer.Renderer.shader.uWidth, + GL.glUniform1f(HairLineBucket.Renderer.shader.uWidth, a.strokeWidth); GL.glDrawElements(GL_LINES, @@ -304,8 +304,10 @@ public final class PolygonLayer extends RenderElement { private static Shader setShader(Shader shader, GLMatrix mvp, boolean first) { if (shader.useProgram() || first) { GLState.enableVertexArrays(shader.aPos, -1); + GL.glVertexAttribPointer(shader.aPos, 2, GL_SHORT, false, 0, 0); + mvp.setAsUniform(shader.uMVP); } return shader; @@ -336,7 +338,7 @@ public final class PolygonLayer extends RenderElement { * @return * next layer */ - public static RenderElement draw(RenderElement renderElement, GLViewport v, + public static RenderBucket draw(RenderBucket renderElement, GLViewport v, float div, boolean first) { GLState.test(false, true); @@ -359,9 +361,9 @@ public final class PolygonLayer extends RenderElement { byte stencilMask = 0; - RenderElement l = renderElement; + RenderBucket l = renderElement; for (; l != null && l.type == POLYGON; l = l.next) { - PolygonLayer pl = (PolygonLayer) l; + PolygonBucket pl = (PolygonBucket) l; AreaStyle area = pl.area.current(); /* fade out polygon layers (set in RenderTheme) */ @@ -503,7 +505,6 @@ public final class PolygonLayer extends RenderElement { } static void clearStencilRegion() { - //log.debug("clear stencil"); mCount = 0; mClear = false; @@ -516,7 +517,6 @@ public final class PolygonLayer extends RenderElement { /* use clip bit from stencil buffer to clear stencil * 'layer-bits' (0x7f) */ - //GL.glStencilFunc(GL_EQUAL, CLIP_BIT, CLIP_BIT); GL.glStencilFunc(GL_EQUAL, CLIP_BIT, CLIP_BIT); /* set clip bit (0x80) for draw region */ @@ -532,7 +532,7 @@ public final class PolygonLayer extends RenderElement { * and 'alpha' to fake a fade effect. */ public static void drawOver(GLMatrix mvp, int color, float alpha) { - // TODO true could be avoided when same shader and vbo + /* TODO true could be avoided when same shader and vbo */ setShader(polyShader, mvp, true); if (color == 0) { diff --git a/vtm/src/org/oscim/renderer/elements/RenderElement.java b/vtm/src/org/oscim/renderer/bucket/RenderBucket.java similarity index 95% rename from vtm/src/org/oscim/renderer/elements/RenderElement.java rename to vtm/src/org/oscim/renderer/bucket/RenderBucket.java index 8ccc5c26..f20defc2 100644 --- a/vtm/src/org/oscim/renderer/elements/RenderElement.java +++ b/vtm/src/org/oscim/renderer/bucket/RenderBucket.java @@ -14,14 +14,14 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import java.nio.ShortBuffer; import org.oscim.backend.GL20; import org.oscim.utils.pool.Inlist; -public abstract class RenderElement extends Inlist { +public abstract class RenderBucket extends Inlist { protected static GL20 GL; public static final int LINE = 0; @@ -46,7 +46,7 @@ public abstract class RenderElement extends Inlist { protected final VertexData vertexItems = new VertexData(); protected final VertexData indiceItems = new VertexData(); - protected RenderElement(int type) { + protected RenderBucket(int type) { this.type = type; } diff --git a/vtm/src/org/oscim/renderer/elements/ElementLayers.java b/vtm/src/org/oscim/renderer/bucket/RenderBuckets.java similarity index 54% rename from vtm/src/org/oscim/renderer/elements/ElementLayers.java rename to vtm/src/org/oscim/renderer/bucket/RenderBuckets.java index 5a671911..3857ace0 100644 --- a/vtm/src/org/oscim/renderer/elements/ElementLayers.java +++ b/vtm/src/org/oscim/renderer/bucket/RenderBuckets.java @@ -14,13 +14,13 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; -import static org.oscim.renderer.elements.RenderElement.HAIRLINE; -import static org.oscim.renderer.elements.RenderElement.LINE; -import static org.oscim.renderer.elements.RenderElement.MESH; -import static org.oscim.renderer.elements.RenderElement.POLYGON; -import static org.oscim.renderer.elements.RenderElement.TEXLINE; +import static org.oscim.renderer.bucket.RenderBucket.HAIRLINE; +import static org.oscim.renderer.bucket.RenderBucket.LINE; +import static org.oscim.renderer.bucket.RenderBucket.MESH; +import static org.oscim.renderer.bucket.RenderBucket.POLYGON; +import static org.oscim.renderer.bucket.RenderBucket.TEXLINE; import java.nio.ShortBuffer; @@ -39,9 +39,9 @@ import org.slf4j.LoggerFactory; * MapTile. It can be used for other purposes as well but some optimizations * (and limitations) probably wont make sense in different contexts. */ -public class ElementLayers extends TileData { +public class RenderBuckets extends TileData { - static final Logger log = LoggerFactory.getLogger(ElementLayers.class); + static final Logger log = LoggerFactory.getLogger(RenderBuckets.class); public final static int[] VERTEX_SHORT_CNT = { 4, // LINE_VERTEX @@ -55,11 +55,11 @@ public class ElementLayers extends TileData { private final static int TEXTURE_VERTEX_SHORTS = 6; private final static int SHORT_BYTES = 2; - /** mixed Polygon- and LineLayer */ - private RenderElement baseLayers; + /** mixed Polygon- and LineBuckets */ + private RenderBucket baseBuckets; - /** Text- and SymbolLayer */ - private RenderElement textureLayers; + /** Text- and SymbolBuckets */ + private RenderBucket textureBuckets; /** * VBO holds all vertex data to draw lines and polygons after compilation. @@ -76,18 +76,18 @@ public class ElementLayers extends TileData { * To not need to switch VertexAttribPointer positions all the time: * 1. polygons are packed in VBO at offset 0 * 2. lines afterwards at lineOffset - * 3. other layers keep their byte offset in offset + * 3. other buckets keep their byte offset in offset */ public int[] offset = { 0, 0 }; - private RenderElement mCurLayer; + private RenderBucket mCurBucket; /** - * add the LineLayer for a level with a given Line style. Levels are + * add the LineBucket for a level with a given Line style. Levels are * ordered from bottom (0) to top */ - public LineLayer addLineLayer(int level, LineStyle style) { - LineLayer l = (LineLayer) getLayer(level, LINE); + public LineBucket addLineBucket(int level, LineStyle style) { + LineBucket l = (LineBucket) getBucket(level, LINE); if (l == null) return null; // FIXME l.scale = style.width; @@ -96,24 +96,24 @@ public class ElementLayers extends TileData { return l; } - public PolygonLayer addPolygonLayer(int level, AreaStyle style) { - PolygonLayer l = (PolygonLayer) getLayer(level, POLYGON); + public PolygonBucket addPolygonBucket(int level, AreaStyle style) { + PolygonBucket l = (PolygonBucket) getBucket(level, POLYGON); if (l == null) return null; l.area = style; return l; } - public MeshLayer addMeshLayer(int level, AreaStyle style) { - MeshLayer l = (MeshLayer) getLayer(level, MESH); + public MeshBucket addMeshBucket(int level, AreaStyle style) { + MeshBucket l = (MeshBucket) getBucket(level, MESH); if (l == null) return null; l.area = style; return l; } - public HairLineLayer addHairLineLayer(int level, LineStyle style) { - HairLineLayer ll = getHairLineLayer(level); + public HairLineBucket addHairLineBucket(int level, LineStyle style) { + HairLineBucket ll = getHairLineBucket(level); if (ll == null) return null; ll.line = style; @@ -122,162 +122,162 @@ public class ElementLayers extends TileData { } /** - * Get or add the LineLayer for a level. Levels are ordered from + * Get or add the LineBucket for a level. Levels are ordered from * bottom (0) to top */ - public LineLayer getLineLayer(int level) { - return (LineLayer) getLayer(level, LINE); + public LineBucket getLineBucket(int level) { + return (LineBucket) getBucket(level, LINE); } /** - * Get or add the MeshLayer for a level. Levels are ordered from + * Get or add the MeshBucket for a level. Levels are ordered from * bottom (0) to top */ - public MeshLayer getMeshLayer(int level) { - return (MeshLayer) getLayer(level, MESH); + public MeshBucket getMeshBucket(int level) { + return (MeshBucket) getBucket(level, MESH); } /** - * Get or add the PolygonLayer for a level. Levels are ordered from + * Get or add the PolygonBucket for a level. Levels are ordered from * bottom (0) to top */ - public PolygonLayer getPolygonLayer(int level) { - return (PolygonLayer) getLayer(level, POLYGON); + public PolygonBucket getPolygonBucket(int level) { + return (PolygonBucket) getBucket(level, POLYGON); } /** - * Get or add the TexLineLayer for a level. Levels are ordered from + * Get or add the TexLineBucket for a level. Levels are ordered from * bottom (0) to top */ - public LineTexLayer getLineTexLayer(int level) { - return (LineTexLayer) getLayer(level, TEXLINE); + public LineTexBucket getLineTexBucket(int level) { + return (LineTexBucket) getBucket(level, TEXLINE); } /** - * Get or add the TexLineLayer for a level. Levels are ordered from + * Get or add the TexLineBucket for a level. Levels are ordered from * bottom (0) to top */ - public HairLineLayer getHairLineLayer(int level) { - return (HairLineLayer) getLayer(level, HAIRLINE); + public HairLineBucket getHairLineBucket(int level) { + return (HairLineBucket) getBucket(level, HAIRLINE); } - public TextLayer addTextLayer(TextLayer textLayer) { - textLayer.next = textureLayers; - textureLayers = textLayer; - return textLayer; + public TextBucket addTextBucket(TextBucket textBucket) { + textBucket.next = textureBuckets; + textureBuckets = textBucket; + return textBucket; } /** - * Set new Base-Layers and clear previous. + * Set new Base-Buckets and clear previous. */ - public void setBaseLayers(RenderElement layers) { - for (RenderElement l = baseLayers; l != null; l = l.next) + public void setBaseBuckets(RenderBucket buckets) { + for (RenderBucket l = baseBuckets; l != null; l = l.next) l.clear(); - baseLayers = layers; + baseBuckets = buckets; } - public RenderElement getBaseLayers() { - return baseLayers; + public RenderBucket getBaseBuckets() { + return baseBuckets; } /** - * Set new TextureLayers and clear previous. + * Set new TextureBuckets and clear previous. */ - public void setTextureLayers(TextureLayer tl) { - for (RenderElement l = textureLayers; l != null; l = l.next) + public void setTextureBuckets(TextureBucket tl) { + for (RenderBucket l = textureBuckets; l != null; l = l.next) l.clear(); - textureLayers = tl; + textureBuckets = tl; } - public RenderElement getTextureLayers() { - return textureLayers; + public RenderBucket getTextureBuckets() { + return textureBuckets; } - private RenderElement getLayer(int level, int type) { - RenderElement layer = null; + private RenderBucket getBucket(int level, int type) { + RenderBucket bucket = null; - if (mCurLayer != null && mCurLayer.level == level) { - layer = mCurLayer; - if (layer.type != type) { - log.error("BUG wrong layer {} {} on layer {}", - Integer.valueOf(layer.type), + if (mCurBucket != null && mCurBucket.level == level) { + bucket = mCurBucket; + if (bucket.type != type) { + log.error("BUG wrong bucket {} {} on level {}", + Integer.valueOf(bucket.type), Integer.valueOf(type), Integer.valueOf(level)); throw new IllegalArgumentException(); } - return layer; + return bucket; } - RenderElement l = baseLayers; - if (l == null || l.level > level) { - /* insert new layer at start */ - l = null; + RenderBucket b = baseBuckets; + if (b == null || b.level > level) { + /* insert new bucket at start */ + b = null; } else { while (true) { - /* found layer */ - if (l.level == level) { - layer = l; + /* found bucket */ + if (b.level == level) { + bucket = b; break; } - /* insert layer between current and next layer */ - if (l.next == null || l.next.level > level) + /* insert bucket between current and next bucket */ + if (b.next == null || b.next.level > level) break; - l = l.next; + b = b.next; } } - if (layer == null) { + if (bucket == null) { /* add a new RenderElement */ if (type == LINE) - layer = new LineLayer(level); + bucket = new LineBucket(level); else if (type == POLYGON) - layer = new PolygonLayer(level); + bucket = new PolygonBucket(level); else if (type == TEXLINE) - layer = new LineTexLayer(level); + bucket = new LineTexBucket(level); else if (type == MESH) - layer = new MeshLayer(level); + bucket = new MeshBucket(level); else if (type == HAIRLINE) - layer = new HairLineLayer(level); + bucket = new HairLineBucket(level); - if (layer == null) + if (bucket == null) throw new IllegalArgumentException(); - if (l == null) { + if (b == null) { /** insert at start */ - layer.next = baseLayers; - baseLayers = layer; + bucket.next = baseBuckets; + baseBuckets = bucket; } else { - layer.next = l.next; - l.next = layer; + bucket.next = b.next; + b.next = bucket; } } - /* check if found layer matches requested type */ - if (layer.type != type) { - log.error("BUG wrong layer {} {} on layer {}", - Integer.valueOf(layer.type), + /* check if found buckets matches requested type */ + if (bucket.type != type) { + log.error("BUG wrong bucket {} {} on level {}", + Integer.valueOf(bucket.type), Integer.valueOf(type), Integer.valueOf(level)); throw new IllegalArgumentException(); } - mCurLayer = layer; + mCurBucket = bucket; - return layer; + return bucket; } private int countVboSize() { int vboShorts = 0; - for (RenderElement l = baseLayers; l != null; l = l.next) + for (RenderBucket l = baseBuckets; l != null; l = l.next) vboShorts += l.numVertices * VERTEX_SHORT_CNT[l.type]; - for (RenderElement l = textureLayers; l != null; l = l.next) + for (RenderBucket l = textureBuckets; l != null; l = l.next) vboShorts += l.numVertices * TEXTURE_VERTEX_SHORTS; return vboShorts; @@ -286,31 +286,31 @@ public class ElementLayers extends TileData { private int countIboSize() { int numIndices = 0; - for (RenderElement l = baseLayers; l != null; l = l.next) + for (RenderBucket l = baseBuckets; l != null; l = l.next) numIndices += l.numIndices; - for (RenderElement l = textureLayers; l != null; l = l.next) + for (RenderBucket l = textureBuckets; l != null; l = l.next) numIndices += l.numIndices; return numIndices; } - public void setFrom(ElementLayers layers) { - setBaseLayers(layers.baseLayers); - setTextureLayers((TextureLayer) layers.textureLayers); + public void setFrom(RenderBuckets buckets) { + setBaseBuckets(buckets.baseBuckets); + setTextureBuckets((TextureBucket) buckets.textureBuckets); - mCurLayer = null; - layers.baseLayers = null; - layers.textureLayers = null; - layers.mCurLayer = null; + mCurBucket = null; + buckets.baseBuckets = null; + buckets.textureBuckets = null; + buckets.mCurBucket = null; } - /** cleanup only when layers are not used by tile or layer anymore! */ + /** cleanup only when buckets are not used by tile or bucket anymore! */ public void clear() { - /* NB: set null calls clear() on each layer! */ - setBaseLayers(null); - setTextureLayers(null); - mCurLayer = null; + /* NB: set null calls clear() on each bucket! */ + setBaseBuckets(null); + setTextureBuckets(null); + mCurBucket = null; vbo = BufferObject.release(vbo); ibo = BufferObject.release(ibo); @@ -322,10 +322,10 @@ public class ElementLayers extends TileData { } public void prepare() { - for (RenderElement l = baseLayers; l != null; l = l.next) + for (RenderBucket l = baseBuckets; l != null; l = l.next) l.prepare(); - for (RenderElement l = textureLayers; l != null; l = l.next) + for (RenderBucket l = textureBuckets; l != null; l = l.next) l.prepare(); } @@ -367,7 +367,7 @@ public class ElementLayers extends TileData { //>>compile(vboData, iboData, addFill); int pos = addFill ? 4 : 0; - for (RenderElement l = baseLayers; l != null; l = l.next) { + for (RenderBucket l = baseBuckets; l != null; l = l.next) { if (l.type == POLYGON) { l.compile(vboData, iboData); @@ -379,7 +379,7 @@ public class ElementLayers extends TileData { offset[LINE] = vboData.position() * SHORT_BYTES; pos = 0; - for (RenderElement l = baseLayers; l != null; l = l.next) { + for (RenderBucket l = baseBuckets; l != null; l = l.next) { if (l.type == LINE) { l.compile(vboData, iboData); @@ -390,13 +390,13 @@ public class ElementLayers extends TileData { //offset[TEXLINE] = size * SHORT_BYTES; - for (RenderElement l = baseLayers; l != null; l = l.next) { + for (RenderBucket l = baseBuckets; l != null; l = l.next) { if (l.type == TEXLINE || l.type == MESH || l.type == HAIRLINE) { l.compile(vboData, iboData); } } - for (RenderElement l = textureLayers; l != null; l = l.next) { + for (RenderBucket l = textureBuckets; l != null; l = l.next) { l.compile(vboData, iboData); } //<< @@ -441,15 +441,15 @@ public class ElementLayers extends TileData { } public static void initRenderer(GL20 gl) { - RenderElement.GL = gl; + RenderBucket.GL = gl; - LineLayer.Renderer.init(); - LineTexLayer.Renderer.init(); - PolygonLayer.Renderer.init(); - TextureLayer.Renderer.init(); - BitmapLayer.Renderer.init(); - MeshLayer.Renderer.init(); - HairLineLayer.Renderer.init(); + LineBucket.Renderer.init(); + LineTexBucket.Renderer.init(); + PolygonBucket.Renderer.init(); + TextureBucket.Renderer.init(); + BitmapBucket.Renderer.init(); + MeshBucket.Renderer.init(); + HairLineBucket.Renderer.init(); TextureItem.init(gl); } diff --git a/vtm/src/org/oscim/renderer/elements/SymbolLayer.java b/vtm/src/org/oscim/renderer/bucket/SymbolBucket.java similarity index 94% rename from vtm/src/org/oscim/renderer/elements/SymbolLayer.java rename to vtm/src/org/oscim/renderer/bucket/SymbolBucket.java index 18246381..e25e64eb 100644 --- a/vtm/src/org/oscim/renderer/elements/SymbolLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/SymbolBucket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import java.nio.ShortBuffer; @@ -25,8 +25,8 @@ import org.oscim.utils.pool.Inlist; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public final class SymbolLayer extends TextureLayer { - static final Logger log = LoggerFactory.getLogger(SymbolLayer.class); +public final class SymbolBucket extends TextureBucket { + static final Logger log = LoggerFactory.getLogger(SymbolBucket.class); private final static float SCALE = 8.0f; private final static int VERTICES_PER_SPRITE = 4; @@ -35,8 +35,8 @@ public final class SymbolLayer extends TextureLayer { private TextureItem prevTextures; private List mSymbols = new List(); - public SymbolLayer() { - super(RenderElement.SYMBOL); + public SymbolBucket() { + super(RenderBucket.SYMBOL); fixed = true; } @@ -160,7 +160,7 @@ public final class SymbolLayer extends TextureLayer { vertexItems.add(tx, ty, x2, y2, u2, v1); /* six elements used to draw the four vertices */ - t.indices += TextureLayer.INDICES_PER_SPRITE; + t.indices += TextureBucket.INDICES_PER_SPRITE; } numIndices += t.indices; } diff --git a/vtm/src/org/oscim/renderer/elements/SymbolItem.java b/vtm/src/org/oscim/renderer/bucket/SymbolItem.java similarity index 98% rename from vtm/src/org/oscim/renderer/elements/SymbolItem.java rename to vtm/src/org/oscim/renderer/bucket/SymbolItem.java index 375ad886..42ae1508 100644 --- a/vtm/src/org/oscim/renderer/elements/SymbolItem.java +++ b/vtm/src/org/oscim/renderer/bucket/SymbolItem.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import org.oscim.backend.canvas.Bitmap; import org.oscim.core.PointF; diff --git a/vtm/src/org/oscim/renderer/elements/TextLayer.java b/vtm/src/org/oscim/renderer/bucket/TextBucket.java similarity index 96% rename from vtm/src/org/oscim/renderer/elements/TextLayer.java rename to vtm/src/org/oscim/renderer/bucket/TextBucket.java index 71b4d281..178c11c4 100644 --- a/vtm/src/org/oscim/renderer/elements/TextLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/TextBucket.java @@ -14,14 +14,14 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import static org.oscim.renderer.MapRenderer.COORD_SCALE; import org.oscim.backend.CanvasAdapter; import org.oscim.backend.canvas.Canvas; -public class TextLayer extends TextureLayer { +public class TextBucket extends TextureBucket { //static final Logger log = LoggerFactory.getLogger(TextureLayer.class); protected final static int LBIT_MASK = 0xfffffffe; @@ -40,8 +40,8 @@ public class TextLayer extends TextureLayer { this.labels = labels; } - public TextLayer() { - super(RenderElement.SYMBOL); + public TextBucket() { + super(RenderBucket.SYMBOL); mCanvas = CanvasAdapter.newCanvas(); fixed = true; } @@ -141,7 +141,7 @@ public class TextLayer extends TextureLayer { addItem(it, width, height, x, y); /* six indices to draw the four vertices */ - numIndices += TextureLayer.INDICES_PER_SPRITE; + numIndices += TextureBucket.INDICES_PER_SPRITE; numVertices += 4; if (it.next == null diff --git a/vtm/src/org/oscim/renderer/elements/TextItem.java b/vtm/src/org/oscim/renderer/bucket/TextItem.java similarity index 98% rename from vtm/src/org/oscim/renderer/elements/TextItem.java rename to vtm/src/org/oscim/renderer/bucket/TextItem.java index 6185d6e2..30da7e21 100644 --- a/vtm/src/org/oscim/renderer/elements/TextItem.java +++ b/vtm/src/org/oscim/renderer/bucket/TextItem.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import org.oscim.theme.styles.TextStyle; import org.oscim.utils.pool.Inlist; diff --git a/vtm/src/org/oscim/renderer/elements/TextureLayer.java b/vtm/src/org/oscim/renderer/bucket/TextureBucket.java similarity index 91% rename from vtm/src/org/oscim/renderer/elements/TextureLayer.java rename to vtm/src/org/oscim/renderer/bucket/TextureBucket.java index 91eb6faa..47578e67 100644 --- a/vtm/src/org/oscim/renderer/elements/TextureLayer.java +++ b/vtm/src/org/oscim/renderer/bucket/TextureBucket.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import static org.oscim.renderer.MapRenderer.COORD_SCALE; @@ -25,13 +25,13 @@ import org.oscim.renderer.GLShader; import org.oscim.renderer.GLState; import org.oscim.renderer.GLViewport; import org.oscim.renderer.MapRenderer; -import org.oscim.renderer.elements.TextureItem.TexturePool; +import org.oscim.renderer.bucket.TextureItem.TexturePool; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class TextureLayer extends RenderElement { +public abstract class TextureBucket extends RenderBucket { - static final Logger log = LoggerFactory.getLogger(TextureLayer.class); + static final Logger log = LoggerFactory.getLogger(TextureBucket.class); public final static int INDICES_PER_SPRITE = 6; final static int VERTICES_PER_SPRITE = 4; @@ -46,7 +46,7 @@ public abstract class TextureLayer extends RenderElement { TEXTURE_WIDTH, TEXTURE_HEIGHT); - protected TextureLayer(int type) { + protected TextureBucket(int type) { super(type); } @@ -111,7 +111,7 @@ public abstract class TextureLayer extends RenderElement { pool.init(0); } - public static RenderElement draw(ElementLayers layers, RenderElement l, + public static RenderBucket draw(RenderBuckets layers, RenderBucket l, GLViewport v, float scale) { GLState.test(false, false); @@ -119,7 +119,7 @@ public abstract class TextureLayer extends RenderElement { shader.useProgram(); - TextureLayer tl = (TextureLayer) l; + TextureBucket tl = (TextureBucket) l; GL.glUniform1f(shader.uScale, tl.fixed ? 1 / scale : 1); v.proj.setAsUniform(shader.uProj); diff --git a/vtm/src/org/oscim/renderer/elements/TextureItem.java b/vtm/src/org/oscim/renderer/bucket/TextureItem.java similarity index 99% rename from vtm/src/org/oscim/renderer/elements/TextureItem.java rename to vtm/src/org/oscim/renderer/bucket/TextureItem.java index d565b40d..4218c0ce 100644 --- a/vtm/src/org/oscim/renderer/elements/TextureItem.java +++ b/vtm/src/org/oscim/renderer/bucket/TextureItem.java @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import java.util.ArrayList; diff --git a/vtm/src/org/oscim/renderer/elements/VertexData.java b/vtm/src/org/oscim/renderer/bucket/VertexData.java similarity index 97% rename from vtm/src/org/oscim/renderer/elements/VertexData.java rename to vtm/src/org/oscim/renderer/bucket/VertexData.java index a9c8aef7..936ffe37 100644 --- a/vtm/src/org/oscim/renderer/elements/VertexData.java +++ b/vtm/src/org/oscim/renderer/bucket/VertexData.java @@ -14,11 +14,11 @@ * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see . */ -package org.oscim.renderer.elements; +package org.oscim.renderer.bucket; import java.nio.ShortBuffer; -import org.oscim.renderer.elements.VertexData.Chunk; +import org.oscim.renderer.bucket.VertexData.Chunk; import org.oscim.utils.pool.Inlist; import org.oscim.utils.pool.SyncPool; import org.slf4j.Logger; @@ -102,6 +102,9 @@ public class VertexData extends Inlist.List { vertices = null; } + /** + * @return sum of elements added + */ public int compile(ShortBuffer sbuf) { if (cur == null) return 0; @@ -114,7 +117,6 @@ public class VertexData extends Inlist.List { sbuf.put(it.vertices, 0, it.used); } dispose(); - //log.debug("compiled {}", size); return size; } diff --git a/vtm/src/org/oscim/theme/XmlThemeBuilder.java b/vtm/src/org/oscim/theme/XmlThemeBuilder.java index 3c7bff0a..a2e24141 100644 --- a/vtm/src/org/oscim/theme/XmlThemeBuilder.java +++ b/vtm/src/org/oscim/theme/XmlThemeBuilder.java @@ -37,7 +37,7 @@ import org.oscim.backend.canvas.Paint.FontStyle; import org.oscim.renderer.atlas.TextureAtlas; import org.oscim.renderer.atlas.TextureAtlas.Rect; import org.oscim.renderer.atlas.TextureRegion; -import org.oscim.renderer.elements.TextureItem; +import org.oscim.renderer.bucket.TextureItem; import org.oscim.theme.IRenderTheme.ThemeException; import org.oscim.theme.rule.Rule; import org.oscim.theme.rule.Rule.Closed; diff --git a/vtm/src/org/oscim/theme/styles/AreaStyle.java b/vtm/src/org/oscim/theme/styles/AreaStyle.java index d13ecbbf..1d61c833 100644 --- a/vtm/src/org/oscim/theme/styles/AreaStyle.java +++ b/vtm/src/org/oscim/theme/styles/AreaStyle.java @@ -19,7 +19,7 @@ package org.oscim.theme.styles; import static org.oscim.backend.canvas.Color.parseColor; import org.oscim.backend.canvas.Color; -import org.oscim.renderer.elements.TextureItem; +import org.oscim.renderer.bucket.TextureItem; import org.oscim.theme.IRenderTheme.Callback; /*TODO diff --git a/vtm/src/org/oscim/utils/Tessellator.java b/vtm/src/org/oscim/utils/Tessellator.java index 84ece4b6..af0a9d3c 100644 --- a/vtm/src/org/oscim/utils/Tessellator.java +++ b/vtm/src/org/oscim/utils/Tessellator.java @@ -18,7 +18,7 @@ package org.oscim.utils; import java.util.Arrays; -import org.oscim.renderer.elements.VertexData; +import org.oscim.renderer.bucket.VertexData; import org.oscim.utils.math.MathUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory;