add ElementLayer/RenderElement prepare()
- used to prepare for compile() when all layer data is added
This commit is contained in:
parent
990e04477c
commit
31a45b0468
@ -162,8 +162,8 @@ public class MarkerRenderer extends ElementRenderer {
|
|||||||
mSymbolLayer.pushSymbol(s);
|
mSymbolLayer.pushSymbol(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
mSymbolLayer.prepare();
|
|
||||||
layers.setTextureLayers(mSymbolLayer);
|
layers.setTextureLayers(mSymbolLayer);
|
||||||
|
layers.prepare();
|
||||||
|
|
||||||
compile();
|
compile();
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,11 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac
|
|||||||
public void completed(QueryResult result) {
|
public void completed(QueryResult result) {
|
||||||
mTileLayer.callHooksComplete(mTile, result == QueryResult.SUCCESS);
|
mTileLayer.callHooksComplete(mTile, result == QueryResult.SUCCESS);
|
||||||
|
|
||||||
|
/* finish layers - tessellate and cleanup on worker-thread */
|
||||||
|
mLayers.prepare();
|
||||||
|
|
||||||
super.completed(result);
|
super.completed(result);
|
||||||
|
|
||||||
clearState();
|
clearState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,11 +122,6 @@ public class BitmapLayer extends TextureLayer {
|
|||||||
sbuf.put(buf);
|
sbuf.put(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean prepare() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void compile(ShortBuffer sbuf) {
|
protected void compile(ShortBuffer sbuf) {
|
||||||
|
|
||||||
|
@ -365,4 +365,12 @@ public class ElementLayers extends TileData {
|
|||||||
|
|
||||||
TextureItem.init(gl);
|
TextureItem.init(gl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void prepare() {
|
||||||
|
for (RenderElement l = baseLayers; l != null; l = l.next)
|
||||||
|
l.prepare();
|
||||||
|
|
||||||
|
for (RenderElement l = textureLayers; l != null; l = l.next)
|
||||||
|
l.prepare();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,15 @@ public abstract class RenderElement extends Inlist<RenderElement> {
|
|||||||
numVertices = 0;
|
numVertices = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** compile vertex data to vbo. */
|
/**
|
||||||
|
* Final preparation of content before compilation
|
||||||
|
* for stuff that should not be done on render-thread.
|
||||||
|
*/
|
||||||
|
protected void prepare() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Compile vertex data to vbo. */
|
||||||
protected void compile(ShortBuffer sbuf) {
|
protected void compile(ShortBuffer sbuf) {
|
||||||
compileVertexItems(sbuf);
|
compileVertexItems(sbuf);
|
||||||
}
|
}
|
||||||
|
@ -196,9 +196,4 @@ public final class SymbolLayer extends TextureLayer {
|
|||||||
super.clear();
|
super.clear();
|
||||||
clearItems();
|
clearItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean prepare() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ public class TextLayer extends TextureLayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean prepare() {
|
public void prepare() {
|
||||||
short numIndices = 0;
|
short numIndices = 0;
|
||||||
short offsetIndices = 0;
|
short offsetIndices = 0;
|
||||||
numVertices = 0;
|
numVertices = 0;
|
||||||
@ -158,8 +158,6 @@ public class TextLayer extends TextureLayer {
|
|||||||
|
|
||||||
t.offset = offsetIndices;
|
t.offset = offsetIndices;
|
||||||
t.indices = (short) (numIndices - offsetIndices);
|
t.indices = (short) (numIndices - offsetIndices);
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addItem(TextItem it,
|
protected void addItem(TextItem it,
|
||||||
|
@ -66,7 +66,6 @@ public abstract class TextureLayer extends RenderElement {
|
|||||||
compileVertexItems(sbuf);
|
compileVertexItems(sbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract public boolean prepare();
|
|
||||||
|
|
||||||
protected void clear() {
|
protected void clear() {
|
||||||
while (textures != null)
|
while (textures != null)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user