sync viewport

This commit is contained in:
Hannes Janetzek
2014-11-26 18:39:50 +01:00
parent 6f85e24ed9
commit d492358a94
4 changed files with 46 additions and 60 deletions

View File

@@ -340,7 +340,9 @@ public abstract class Map implements TaskQueue {
return mLayers.handleGesture(g, e);
}
/** Called on render thread, use synchronized! */
public abstract void beginFrame();
public abstract void doneFrame();
/** Called on render thread, use synchronized! */
public abstract void doneFrame(boolean needsRedraw);
}

View File

@@ -70,33 +70,22 @@ public class MapRenderer {
mClearColor = GLUtils.colorToFloat(color);
}
private final Runnable renderBegin = new Runnable() {
@Override
public void run() {
mMap.beginFrame();
}
};
private final Runnable renderDone = new Runnable() {
@Override
public void run() {
mMap.doneFrame();
}
};
public void onDrawFrame() {
frametime = System.currentTimeMillis();
rerender = false;
mMap.post(renderBegin);
mMap.beginFrame();
draw();
mMap.post(renderDone);
mMap.doneFrame(rerender);
mBufferPool.releaseBuffers();
TextureItem.disposeTextures();
}
private void draw() {
GLState.setClearColor(mClearColor);
gl.depthMask(true);
@@ -150,10 +139,6 @@ public class MapRenderer {
BufferObject.checkBufferUsage(true);
// FIXME also throw out some textures etc
}
if (rerender) {
mMap.render();
rerender = false;
}
}
public void onSurfaceChanged(int width, int height) {