diff --git a/src/org/oscim/renderer/GLRenderer.java b/src/org/oscim/renderer/GLRenderer.java index 06ca59e1..a25ab142 100644 --- a/src/org/oscim/renderer/GLRenderer.java +++ b/src/org/oscim/renderer/GLRenderer.java @@ -63,7 +63,7 @@ public class GLRenderer implements GLSurfaceView.Renderer { static int CACHE_TILES = CACHE_TILES_MAX; private static MapView mMapView; - static int mWidth, mHeight; + static int screenWidth, screenHeight; private static MapViewPosition mMapViewPosition; private static MapPosition mMapPosition; @@ -589,8 +589,8 @@ public class GLRenderer implements GLSurfaceView.Renderer { if (width <= 0 || height <= 0) return; - mWidth = width; - mHeight = height; + screenWidth = width; + screenHeight = height; mMapViewPosition.getMatrix(null, mMatrices.proj, null); @@ -648,8 +648,8 @@ public class GLRenderer implements GLSurfaceView.Renderer { mBufferMemoryUsage = 0; mDrawTiles = null; - int numTiles = (mWidth / (Tile.TILE_SIZE / 2) + 2) - * (mHeight / (Tile.TILE_SIZE / 2) + 2); + int numTiles = (screenWidth / (Tile.TILE_SIZE / 2) + 2) + * (screenHeight / (Tile.TILE_SIZE / 2) + 2); // Set up vertex buffer objects int numVBO = (CACHE_TILES + (numTiles * 2)); @@ -682,6 +682,7 @@ public class GLRenderer implements GLSurfaceView.Renderer { public static final boolean debugView = false; + void clearBuffer() { mNewSurface = true; } diff --git a/src/org/oscim/renderer/TextureRenderer.java b/src/org/oscim/renderer/TextureRenderer.java index 512403b1..986aea64 100644 --- a/src/org/oscim/renderer/TextureRenderer.java +++ b/src/org/oscim/renderer/TextureRenderer.java @@ -67,7 +67,7 @@ public final class TextureRenderer { else GLES20.glUniform1f(hTextureScale, 1); - GLES20.glUniform1f(hTextureScreenScale, 1f / GLRenderer.mWidth); + GLES20.glUniform1f(hTextureScreenScale, 1f / GLRenderer.screenWidth); m.proj.setAsUniform(hTextureProjMatrix); m.mvp.setAsUniform(hTextureMVMatrix); diff --git a/src/org/oscim/renderer/layer/ExtrusionLayer.java b/src/org/oscim/renderer/layer/ExtrusionLayer.java index 9074e08e..9bc173b9 100644 --- a/src/org/oscim/renderer/layer/ExtrusionLayer.java +++ b/src/org/oscim/renderer/layer/ExtrusionLayer.java @@ -59,8 +59,6 @@ public class ExtrusionLayer extends Layer { public boolean compiled = false; - //private int[] mVboIds; - public ExtrusionLayer(int level) { this.type = Layer.EXTRUSION; this.level = level; @@ -89,12 +87,11 @@ public class ExtrusionLayer extends Layer { // just a guessing to make it look ok if (height == 0) - height = 10; - height = (int) (height * -Math.log(height / 100000f) * 2.0f); - - if (minHeight != 0) - minHeight = (int) (minHeight * -Math.log(minHeight / 100000f) * 2.0f); + height = 14; + float sfactor = GLRenderer.COORD_SCALE * (400f / Tile.TILE_SIZE); + height *= sfactor; + minHeight *= sfactor; int length = 0; for (int ipos = 0, ppos = 0, n = way.geom.index.length; ipos < n; ipos++, ppos += length) { diff --git a/src/org/oscim/renderer/overlays/ExtrusionOverlay.java b/src/org/oscim/renderer/overlays/ExtrusionOverlay.java index 2bb89334..0a9834a2 100644 --- a/src/org/oscim/renderer/overlays/ExtrusionOverlay.java +++ b/src/org/oscim/renderer/overlays/ExtrusionOverlay.java @@ -332,7 +332,7 @@ public class ExtrusionOverlay extends RenderOverlay { scale / GLRenderer.COORD_SCALE); // scale height - m.mvp.setValue(10, scale / (1000f * GLRenderer.COORD_SCALE)); + m.mvp.setValue(10, scale / GLRenderer.COORD_SCALE); m.mvp.multiplyMM(m.viewproj, m.mvp); diff --git a/src/org/oscim/view/MapViewPosition.java b/src/org/oscim/view/MapViewPosition.java index cfaa549f..a9b3602b 100644 --- a/src/org/oscim/view/MapViewPosition.java +++ b/src/org/oscim/view/MapViewPosition.java @@ -416,7 +416,7 @@ public class MapViewPosition { mRotMatrix.multiplyMM(mTmpMatrix, mRotMatrix); // scale to window coordinates - mTmpMatrix.setScale(1 / mWidth, 1 / mWidth, 1); + mTmpMatrix.setScale(1 / mWidth, 1 / mWidth, 1 / mWidth); mViewMatrix.multiplyMM(mRotMatrix, mTmpMatrix);