Set scale value for viewport on mapRenderer #176, closes #177

This commit is contained in:
Longri
2016-09-23 16:24:23 +02:00
committed by Emux
parent d937a4d6bb
commit f19ab87abe

View File

@@ -1,5 +1,6 @@
/*
* Copyright 2012, 2013 Hannes Janetzek
* Copyright 2016 Longri
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
@@ -61,6 +62,8 @@ public class MapRenderer {
private static NativeBufferPool mBufferPool;
private float viewPortScale = 1;
public MapRenderer(Map map) {
mMap = map;
mViewport = new GLViewport();
@@ -76,6 +79,13 @@ public class MapRenderer {
mClearColor = GLUtils.colorToFloat(color);
}
/**
* Set the scale value for map viewport.
*/
public void setViewPortScale(float scale) {
this.viewPortScale = scale;
}
public void onDrawFrame() {
frametime = System.currentTimeMillis();
rerender = false;
@@ -121,6 +131,12 @@ public class MapRenderer {
mViewport.proj.multiplyLhs(mViewport.mvp);
}
if (this.viewPortScale != 1) {
mViewport.mvp.setScale(this.viewPortScale, this.viewPortScale, 1);
mViewport.viewproj.multiplyLhs(mViewport.mvp);
mViewport.proj.multiplyLhs(mViewport.mvp);
}
/* update layers */
LayerRenderer[] layers = mMap.layers().getLayerRenderer();