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();