remove depth-projection from viewproj for tile rendering, again
- fixes issue with flickering when proxy tiles are drawn, where the depth buffer is used to remember previous clipping areas
This commit is contained in:
parent
e0e94f7286
commit
67d1813665
@ -30,6 +30,7 @@ import org.oscim.core.MapPosition;
|
|||||||
import org.oscim.core.Tile;
|
import org.oscim.core.Tile;
|
||||||
import org.oscim.renderer.BufferObject;
|
import org.oscim.renderer.BufferObject;
|
||||||
import org.oscim.renderer.ElementRenderer;
|
import org.oscim.renderer.ElementRenderer;
|
||||||
|
import org.oscim.renderer.GLMatrix;
|
||||||
import org.oscim.renderer.LayerRenderer;
|
import org.oscim.renderer.LayerRenderer;
|
||||||
import org.oscim.renderer.MapRenderer;
|
import org.oscim.renderer.MapRenderer;
|
||||||
import org.oscim.renderer.MapRenderer.Matrices;
|
import org.oscim.renderer.MapRenderer.Matrices;
|
||||||
@ -68,6 +69,8 @@ public class TileRenderer extends LayerRenderer {
|
|||||||
// tile twice per frame.
|
// tile twice per frame.
|
||||||
private int mDrawSerial;
|
private int mDrawSerial;
|
||||||
private int mClipMode;
|
private int mClipMode;
|
||||||
|
|
||||||
|
private GLMatrix mViewProj = new GLMatrix();
|
||||||
private Matrices mMatrices;
|
private Matrices mMatrices;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -108,6 +111,15 @@ public class TileRenderer extends LayerRenderer {
|
|||||||
mRenderAlpha = mAlpha;
|
mRenderAlpha = mAlpha;
|
||||||
mRenderOverdraw = mOverdraw;
|
mRenderOverdraw = mOverdraw;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* discard depth projection from tilt, depth buffer
|
||||||
|
* is used for clipping
|
||||||
|
*/
|
||||||
|
mViewProj.copy(m.proj);
|
||||||
|
mViewProj.setValue(10, 0);
|
||||||
|
mViewProj.setValue(14, 0);
|
||||||
|
mViewProj.multiplyRhs(m.view);
|
||||||
|
|
||||||
int tileCnt = mDrawTiles.cnt;
|
int tileCnt = mDrawTiles.cnt;
|
||||||
MapTile[] tiles = mDrawTiles.tiles;
|
MapTile[] tiles = mDrawTiles.tiles;
|
||||||
|
|
||||||
@ -453,7 +465,7 @@ public class TileRenderer extends LayerRenderer {
|
|||||||
|
|
||||||
Matrices m = mMatrices;
|
Matrices m = mMatrices;
|
||||||
m.mvp.setTransScale(x, y, scale / MapRenderer.COORD_SCALE);
|
m.mvp.setTransScale(x, y, scale / MapRenderer.COORD_SCALE);
|
||||||
m.mvp.multiplyLhs(m.viewproj);
|
m.mvp.multiplyLhs(mViewProj);
|
||||||
|
|
||||||
boolean clipped = false;
|
boolean clipped = false;
|
||||||
int mode = mClipMode;
|
int mode = mClipMode;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user