diff --git a/vtm/src/org/oscim/renderer/test/AtlasRenderLayer.java b/vtm/src/org/oscim/renderer/test/AtlasRenderLayer.java
deleted file mode 100644
index efb10ee0..00000000
--- a/vtm/src/org/oscim/renderer/test/AtlasRenderLayer.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright 2013 Hannes Janetzek
- *
- * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
- *
- * This program is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License along with
- * this program. If not, see .
- */
-package org.oscim.renderer.test;
-
-import java.util.Arrays;
-
-import org.oscim.backend.canvas.Color;
-import org.oscim.backend.canvas.Paint.Cap;
-import org.oscim.renderer.ElementRenderer;
-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.theme.styles.LineStyle;
-import org.oscim.theme.styles.TextStyle;
-import org.oscim.theme.styles.TextStyle.TextBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class AtlasRenderLayer extends ElementRenderer {
-
- Logger log = LoggerFactory.getLogger(AtlasRenderLayer.class);
-
- public AtlasRenderLayer() {
-
- TextureAtlas mAtlas = TextureAtlas.create(2048, 2048, 1);
-
- LineLayer ll = layers.getLineLayer(0);
- ll.line = new LineStyle(Color.BLUE, 3, Cap.BUTT);
- ll.scale = 1f;
-
- LineLayer ll2 = layers.getLineLayer(1);
- ll2.line = new LineStyle(Color.RED, 3, Cap.BUTT);
- ll2.scale = 1f;
-
- LineLayer ll3 = layers.getLineLayer(2);
- ll3.line = new LineStyle(Color.GREEN, 3, Cap.BUTT);
- ll3.scale = 1f;
-
- TextLayer tl = new TextLayer();
- TextStyle t = new TextBuilder().setFontSize(20).setColor(Color.BLACK).build();
- layers.setTextureLayers(tl);
-
- float[] points = new float[10];
-
- for (int i = 0; i < 400; i++) {
- int w = (int) (20 + Math.random() * 256);
- int h = (int) (20 + Math.random() * 56);
- Rect r = mAtlas.getRegion(w, h);
- if (r == null) {
- log.debug("no space left");
- continue;
- }
- r.x += 1;
- r.y += 1;
-
- points[0] = r.x;
- points[1] = r.y;
- points[2] = r.x + (r.w - 2);
- points[3] = r.y;
- points[4] = r.x + (r.w - 2);
- points[5] = r.y + (r.h - 2);
- points[6] = r.x;
- points[7] = r.y + (r.h - 2);
- points[8] = r.x;
- points[9] = r.y;
- ll.addLine(points, 10, false);
-
- r.x += 1;
- r.y += 1;
- points[0] = r.x;
- points[1] = r.y;
- points[2] = r.x + (w - 4);
- points[3] = r.y;
- points[4] = r.x + (w - 4);
- points[5] = r.y + (h - 4);
- points[6] = r.x;
- points[7] = r.y + (h - 4);
- points[8] = r.x;
- points[9] = r.y;
-
- log.debug("add region: " + Arrays.toString(points));
- ll2.addLine(points, 10, false);
-
- TextItem ti = TextItem.pool.get();
- ti.set(r.x + r.w / 2, r.y + r.h / 2, "" + i, t);
-
- ti.x1 = 0;
- ti.y1 = 1; // (short) (size / 2);
- ti.x2 = 1; // (short) size;
- ti.y2 = 1;
- tl.addText(ti);
- }
-
- for (Slot s = mAtlas.mSlots; s != null; s = s.next) {
- points[0] = s.x;
- points[1] = s.y;
- points[2] = s.x + s.w;
- points[3] = s.y;
- points[4] = s.x + s.w;
- points[5] = 2048;
- points[6] = s.x;
- points[7] = 2048;
- points[8] = s.x;
- points[9] = s.y;
-
- ll3.addLine(points, 10, false);
- }
-
- tl.prepare();
- tl.labels = TextItem.pool.releaseAll(tl.labels);
- }
-
- boolean initial = true;
-
- @Override
- protected void update(GLViewport v) {
-
- if (initial) {
- mMapPosition.copy(v.pos);
- initial = false;
-
- compile();
- }
- }
-}
diff --git a/vtm/src/org/oscim/renderer/test/BezierPathLayer.java b/vtm/src/org/oscim/renderer/test/BezierPathLayer.java
deleted file mode 100644
index adbf422d..00000000
--- a/vtm/src/org/oscim/renderer/test/BezierPathLayer.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.oscim.renderer.test;
-
-import java.util.List;
-
-import org.oscim.backend.canvas.Color;
-import org.oscim.core.GeometryBuffer;
-import org.oscim.core.Point;
-import org.oscim.renderer.ElementRenderer;
-import org.oscim.renderer.GLViewport;
-import org.oscim.renderer.elements.LineLayer;
-import org.oscim.theme.styles.LineStyle;
-import org.oscim.utils.geom.BezierPath;
-
-public class BezierPathLayer extends ElementRenderer {
-
- public BezierPathLayer() {
- mMapPosition.scale = 0;
-
- GeometryBuffer g = new GeometryBuffer(100, 1);
- g.startLine();
-
- Point[] pts = new Point[10];
- for (int i = 0; i < 10; i++) {
- pts[i] = new Point(i * 3, (i * i) % 3 * 4);
- pts[i].x *= 10;
- pts[i].y *= 10;
- // System.out.println(pts[i]);
- g.addPoint(pts[i]);
- }
- LineLayer ll = layers.addLineLayer(0, new LineStyle(Color.BLUE, 2f));
- ll.addLine(g);
-
- List ctrl = BezierPath.cubicSplineControlPoints(pts, 0.1f);
-
- g.clear();
- g.startLine();
- Point p0 = pts[0];
-
- for (int j = 1, k = 0; j < pts.length; j++) {
- Point p1 = ctrl.get(k++);
- Point p2 = ctrl.get(k++);
- Point p3 = pts[j];
- System.out.println(">>> " + p1 + " " + p2);
- for (int i = 0; i < 10; i++) {
- double mu = (i / 10f);
- Point p = BezierPath.cubicBezier(p0, p1, p2, p3, mu);
- g.addPoint(p);
- System.out.println(mu + " " + p);
- }
- p0 = p3;
- }
- ll = layers.addLineLayer(1, new LineStyle(Color.CYAN, 2f));
- ll.addLine(g);
-
- }
-
- public synchronized void clear() {
- layers.clear();
- setReady(false);
- }
-
- @Override
- protected synchronized void update(GLViewport v) {
-
- if (mMapPosition.scale == 0)
- mMapPosition.copy(v.pos);
-
- if (!isReady()) {
- compile();
- }
- }
-}
diff --git a/vtm/src/org/oscim/renderer/test/CustomRenderer.java b/vtm/src/org/oscim/renderer/test/CustomRenderer.java
deleted file mode 100644
index ccadb2fd..00000000
--- a/vtm/src/org/oscim/renderer/test/CustomRenderer.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright 2013 Hannes Janetzek
- *
- * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
- *
- * This program is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License along with
- * this program. If not, see .
- */
-package org.oscim.renderer.test;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.FloatBuffer;
-
-import org.oscim.backend.GL20;
-import org.oscim.core.MapPosition;
-import org.oscim.map.Map;
-import org.oscim.renderer.GLState;
-import org.oscim.renderer.GLUtils;
-import org.oscim.renderer.GLViewport;
-import org.oscim.renderer.LayerRenderer;
-
-/*
- * This is an example how to integrate custom OpenGL drawing routines as map overlay
- *
- * based on chapter 2 from:
- * https://github.com/dalinaum/opengl-es-book-samples/tree/master/Android
- * */
-
-public class CustomRenderer extends LayerRenderer {
-
- private final Map mMap;
- private final MapPosition mMapPosition;
-
- private int mProgramObject;
- private int hVertexPosition;
- private int hMatrixPosition;
-
- private FloatBuffer mVertices;
- private final float[] mVerticesData = {
- -200, -200, 1.0f,
- 200, 200, 0,
- -200, 200, 0.5f,
- 200, -200, 0.5f,
- };
- private boolean mInitialized;
-
- public CustomRenderer(Map map) {
- mMap = map;
- mMapPosition = new MapPosition();
- }
-
- // ---------- everything below runs in GLRender Thread ----------
- @Override
- protected void update(GLViewport v) {
- if (!mInitialized) {
- if (!init())
- return;
-
- mInitialized = true;
-
- // fix current MapPosition
- mMapPosition.copy(v.pos);
-
- compile();
- }
- }
-
- protected void compile() {
- // modify mVerticesData and put in FloatBuffer
-
- mVertices.clear();
- mVertices.put(mVerticesData);
- mVertices.flip();
-
- setReady(true);
- }
-
- @Override
- protected void render(GLViewport v) {
-
- // Use the program object
- GLState.useProgram(mProgramObject);
-
- GLState.blend(true);
- GLState.test(false, false);
-
- // unbind previously bound VBOs
- GL.glBindBuffer(GL20.GL_ARRAY_BUFFER, 0);
-
- // Load the vertex data
- //mVertices.position(0);
- GL.glVertexAttribPointer(hVertexPosition, 3, GL20.GL_FLOAT, false, 0, mVertices);
- //mVertices.position(2);
- //GL.glVertexAttribPointer(hVertexPosition, 2, GL20.GL_FLOAT, false, 4, mVertices);
-
- GLState.enableVertexArrays(hVertexPosition, -1);
-
- /* apply view and projection matrices */
- // set mvp (tmp) matrix relative to mMapPosition
- // i.e. fixed on the map
-
- float ratio = 1f / mMap.getWidth();
-
- v.mvp.setScale(ratio, ratio, 1);
- v.mvp.multiplyLhs(v.proj);
- v.mvp.setAsUniform(hMatrixPosition);
-
- // Draw the triangle
- GL.glDrawArrays(GL20.GL_TRIANGLE_STRIP, 0, 4);
-
- GLUtils.checkGlError("...");
- }
-
- private boolean init() {
- // Load the vertex/fragment shaders
- int programObject = GLUtils.createProgram(vShaderStr, fShaderStr);
-
- if (programObject == 0)
- return false;
-
- // Handle for vertex position in shader
- hVertexPosition = GL.glGetAttribLocation(programObject, "a_pos");
-
- hMatrixPosition = GL.glGetUniformLocation(programObject, "u_mvp");
-
- // Store the program object
- mProgramObject = programObject;
-
- mVertices = ByteBuffer.allocateDirect(mVerticesData.length * 4)
- .order(ByteOrder.nativeOrder()).asFloatBuffer();
-
- return true;
- }
-
- private final static String vShaderStr = "" +
- "precision mediump float;"
- + "uniform mat4 u_mvp;"
- + "attribute vec4 a_pos;"
- + "varying float alpha;"
- + "void main()"
- + "{"
- + " gl_Position = u_mvp * vec4(a_pos.xy, 0.0, 1.0);"
- + " alpha = a_pos.z;"
- + "}";
-
- private final static String fShaderStr = "" +
- "precision mediump float;"
- + "varying float alpha;"
- + "void main()"
- + "{"
- + " gl_FragColor = vec4 (alpha, 1.0-alpha, 0.0, 0.7 );"
- + "}";
-
-}
diff --git a/vtm/src/org/oscim/renderer/test/CustomRenderer2.java b/vtm/src/org/oscim/renderer/test/CustomRenderer2.java
deleted file mode 100644
index afc42452..00000000
--- a/vtm/src/org/oscim/renderer/test/CustomRenderer2.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright 2013 Hannes Janetzek
- *
- * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
- *
- * This program is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License along with
- * this program. If not, see .
- */
-package org.oscim.renderer.test;
-
-import java.nio.FloatBuffer;
-
-import org.oscim.backend.GL20;
-import org.oscim.backend.canvas.Color;
-import org.oscim.renderer.BufferObject;
-import org.oscim.renderer.ElementRenderer;
-import org.oscim.renderer.GLState;
-import org.oscim.renderer.GLUtils;
-import org.oscim.renderer.GLViewport;
-import org.oscim.renderer.MapRenderer;
-import org.oscim.utils.FastMath;
-
-/*
- * This is an example how to integrate custom OpenGL drawing routines as map overlay
- *
- * based on chapter 2 from:
- * https://github.com/dalinaum/opengl-es-book-samples/tree/master/Android
- * */
-
-public class CustomRenderer2 extends ElementRenderer {
-
- private int mProgramObject;
- private int hVertexPosition;
- private int hMatrixPosition;
- private int hColorPosition;
- private int hCenterPosition;
-
- //private FloatBuffer mVertices;
- private boolean mInitialized;
- private BufferObject mVBO;
-
- int mZoom = -1;
- float mCellScale = 60 * MapRenderer.COORD_SCALE;
-
- @Override
- protected void update(GLViewport v) {
- if (!mInitialized) {
- if (!init())
- return;
-
- mInitialized = true;
-
- compile();
- // fix current MapPosition
-
- //mMapPosition.setPosition(53.1, 8.8);
- //mMapPosition.setZoomLevel(14);
-
- }
-
- if (mZoom != v.pos.zoomLevel) {
- mMapPosition.copy(v.pos);
- mZoom = v.pos.zoomLevel;
- }
- }
-
- @Override
- protected void compile() {
-
- float[] vertices = new float[12];
-
- for (int i = 0; i < 6; i++) {
- vertices[i * 2 + 0] = (float) Math.cos(Math.PI * 2 * i / 6) * mCellScale;
- vertices[i * 2 + 1] = (float) Math.sin(Math.PI * 2 * i / 6) * mCellScale;
- }
- FloatBuffer buf = MapRenderer.getFloatBuffer(12);
- buf.put(vertices);
-
- mVBO = BufferObject.get(GL20.GL_ARRAY_BUFFER, 0);
- mVBO.loadBufferData(buf.flip(), 12 * 4);
-
- setReady(true);
- }
-
- @Override
- protected void render(GLViewport v) {
-
- // Use the program object
- GLState.useProgram(mProgramObject);
-
- GLState.blend(true);
- GLState.test(false, false);
-
- // bind VBO data
- mVBO.bind();
-
- // set VBO vertex layout
- GL.glVertexAttribPointer(hVertexPosition, 2, GL20.GL_FLOAT, false, 0, 0);
-
- GLState.enableVertexArrays(hVertexPosition, -1);
-
- /* apply view and projection matrices */
- // set mvp (tmp) matrix relative to mMapPosition
- // i.e. fixed on the map
- setMatrix(v);
- v.mvp.setAsUniform(hMatrixPosition);
-
- final int offset_x = 4;
- final int offset_y = 16;
-
- float h = (float) (Math.sqrt(3) / 2);
- for (int y = -offset_y; y < offset_y; y++) {
- for (int x = -offset_x; x < offset_x; x++) {
- float xx = x * 2 + (y % 2 == 0 ? 1 : 0);
- float yy = y * h + h / 2;
-
- GL.glUniform2f(hCenterPosition, xx * (mCellScale * 1.5f), yy * mCellScale);
-
- //float alpha = 1 + (float) Math.log10(FastMath.clamp(
- // (float) Math.sqrt(xx * xx + yy * yy) / offset_y, 0.0f, 1.0f)) * 2;
-
- float alpha = (float) Math.sqrt(xx * xx + yy * yy) / offset_y;
-
- float fy = (float) (y + offset_y) / (offset_y * 2);
- float fx = (float) (x + offset_x) / (offset_x * 2);
- float fz = FastMath.clamp(
- (float) (x < 0 || y < 0 ? 1 - Math.sqrt(fx * fx + fy * fy)
- : 0),
- 0,
- 1);
-
- int c = 0xff << 24
- | (int) (0xff * fy) << 16
- | (int) (0xff * fx) << 8
- | (int) (0xff * fz);
-
- GLUtils.setColor(hColorPosition, c, alpha);
-
- GL.glDrawArrays(GL20.GL_TRIANGLE_FAN, 0, 6);
- }
- }
-
- GLUtils.setColor(hColorPosition, Color.DKGRAY, 0.3f);
-
- for (int y = -offset_y; y < offset_y; y++) {
- for (int x = -offset_x; x < offset_x; x++) {
- float xx = x * 2 + (y % 2 == 0 ? 1 : 0);
- float yy = y * h + h / 2;
-
- GL.glUniform2f(hCenterPosition, xx * (mCellScale * 1.5f), yy * mCellScale);
- GL.glDrawArrays(GL20.GL_LINE_LOOP, 0, 6);
- }
- }
-
- GLUtils.checkGlError("...");
- }
-
- private boolean init() {
- // Load the vertex/fragment shaders
- int programObject = GLUtils.createProgram(vShaderStr, fShaderStr);
-
- if (programObject == 0)
- return false;
-
- // Handle for vertex position in shader
- hVertexPosition = GL.glGetAttribLocation(programObject, "a_pos");
-
- hMatrixPosition = GL.glGetUniformLocation(programObject, "u_mvp");
-
- hColorPosition = GL.glGetUniformLocation(programObject, "u_color");
-
- hCenterPosition = GL.glGetUniformLocation(programObject, "u_center");
-
- // Store the program object
- mProgramObject = programObject;
-
- return true;
- }
-
- private final static String vShaderStr = "" +
- "precision mediump float;"
- + "uniform mat4 u_mvp;"
- + "uniform vec2 u_center;"
- + "attribute vec2 a_pos;"
- + "void main()"
- + "{"
- + " gl_Position = u_mvp * vec4(u_center + a_pos, 0.0, 1.0);"
- + "}";
-
- private final static String fShaderStr = "" +
- "precision mediump float;"
- + "varying float alpha;"
- + "uniform vec4 u_color;"
- + "void main()"
- + "{"
- + " gl_FragColor = u_color;"
- + "}";
-
-}
diff --git a/vtm/src/org/oscim/renderer/test/SymbolRenderLayer.java b/vtm/src/org/oscim/renderer/test/SymbolRenderLayer.java
deleted file mode 100644
index fd5b7ece..00000000
--- a/vtm/src/org/oscim/renderer/test/SymbolRenderLayer.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2013 Hannes Janetzek
- *
- * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
- *
- * This program is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License along with
- * this program. If not, see .
- */
-package org.oscim.renderer.test;
-
-import org.oscim.backend.CanvasAdapter;
-import org.oscim.renderer.ElementRenderer;
-import org.oscim.renderer.GLViewport;
-import org.oscim.renderer.elements.SymbolItem;
-import org.oscim.renderer.elements.SymbolLayer;
-
-public class SymbolRenderLayer extends ElementRenderer {
- boolean initialize = true;
-
- public SymbolRenderLayer() {
- SymbolLayer l = new SymbolLayer();
- layers.setTextureLayers(l);
-
- SymbolItem it = SymbolItem.pool.get();
- it.billboard = false;
-
- try {
- it.bitmap = CanvasAdapter.g.loadBitmapAsset("jar:symbols/cafe.png");
- } catch (Exception e) {
- e.printStackTrace();
-
- }
- l.addSymbol(it);
- }
-
- @Override
- protected void update(GLViewport v) {
- if (initialize) {
- initialize = false;
- mMapPosition.copy(v.pos);
- compile();
- }
- }
-}