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.renderer.BufferObject;
|
||||
import org.oscim.renderer.ElementRenderer;
|
||||
import org.oscim.renderer.GLMatrix;
|
||||
import org.oscim.renderer.LayerRenderer;
|
||||
import org.oscim.renderer.MapRenderer;
|
||||
import org.oscim.renderer.MapRenderer.Matrices;
|
||||
@ -68,6 +69,8 @@ public class TileRenderer extends LayerRenderer {
|
||||
// tile twice per frame.
|
||||
private int mDrawSerial;
|
||||
private int mClipMode;
|
||||
|
||||
private GLMatrix mViewProj = new GLMatrix();
|
||||
private Matrices mMatrices;
|
||||
|
||||
/**
|
||||
@ -108,6 +111,15 @@ public class TileRenderer extends LayerRenderer {
|
||||
mRenderAlpha = mAlpha;
|
||||
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;
|
||||
MapTile[] tiles = mDrawTiles.tiles;
|
||||
|
||||
@ -453,7 +465,7 @@ public class TileRenderer extends LayerRenderer {
|
||||
|
||||
Matrices m = mMatrices;
|
||||
m.mvp.setTransScale(x, y, scale / MapRenderer.COORD_SCALE);
|
||||
m.mvp.multiplyLhs(m.viewproj);
|
||||
m.mvp.multiplyLhs(mViewProj);
|
||||
|
||||
boolean clipped = false;
|
||||
int mode = mClipMode;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user